4 # Copyright 2016 RIFT.IO Inc
6 # Licensed under the Apache License, Version 2.0 (the "License");
7 # you may not use this file except in compliance with the License.
8 # You may obtain a copy of the License at
10 # http://www.apache.org/licenses/LICENSE-2.0
12 # Unless required by applicable law or agreed to in writing, software
13 # distributed under the License is distributed on an "AS IS" BASIS,
14 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 # See the License for the specific language governing permissions and
16 # limitations under the License.
29 from rift
.tasklets
.rwstagingmgr
.store
import StagingFileStore
32 gi
.require_version('RwStagingMgmtYang', '1.0')
33 from gi
.repository
import (
37 class TestSerializer(unittest
.TestCase
):
39 def test_staging_area_create(self
):
41 1. Verify a valid id is created
42 2. if the folder and meta files were created.
43 3. Verify if the meta file has been created.
46 tmp_dir
= tempfile
.mkdtemp()
47 store
= StagingFileStore(root_dir
=tmp_dir
)
49 mock_model
= RwStagingMgmtYang
.StagingArea
.from_dict({})
50 stg
= store
.create_staging_area(mock_model
)
51 mock_id
= stg
.model
.area_id
53 assert mock_id
== store
.get_staging_area(mock_id
).model
.area_id
54 area_path
= os
.path
.join(store
.root_dir
, mock_id
)
56 assert os
.path
.isdir(area_path
)
58 def test_staging_area_remove(self
):
60 1. Verify a valid id is created
61 2. if the folder and meta files were created.
62 3. Verify if the meta file has been created.
65 tmp_dir
= tempfile
.mkdtemp()
66 store
= StagingFileStore(root_dir
=tmp_dir
)
68 mock_model
= RwStagingMgmtYang
.StagingArea
.from_dict({})
69 # get the wrapped mock model
70 mock_model
= store
.create_staging_area(mock_model
)
71 mock_id
= mock_model
.model
.area_id
72 area_path
= os
.path
.join(store
.root_dir
, mock_id
)
74 # check if dir actually exists
75 assert os
.path
.isdir(area_path
)
76 store
.remove_staging_area(mock_model
)
78 assert not os
.path
.isdir(area_path
)
80 def main(argv
=sys
.argv
[1:]):
81 logging
.basicConfig(format
='TEST %(message)s')
83 runner
= xmlrunner
.XMLTestRunner(output
=os
.environ
["RIFT_MODULE_TEST"])
84 parser
= argparse
.ArgumentParser()
85 parser
.add_argument('-v', '--verbose', action
='store_true')
86 parser
.add_argument('-n', '--no-runner', action
='store_true')
88 args
, unknown
= parser
.parse_known_args(argv
)
92 # Set the global logging level
93 logging
.getLogger().setLevel(logging
.DEBUG
if args
.verbose
else logging
.ERROR
)
95 # The unittest framework requires a program name, so use the name of this
96 # file instead (we do not want to have to pass a fake program name to main
97 # when this is called from the interpreter).
98 unittest
.main(argv
=[__file__
] + unknown
+ ["-v"], testRunner
=runner
)
100 if __name__
== '__main__':