X-Git-Url: https://gerrit.akraino.org/r/gitweb?p=ta%2Fstorage.git;a=blobdiff_plain;f=partfs_rootdisk%2Ftests%2Flocalstorage_test.py;fp=partfs_rootdisk%2Ftests%2Flocalstorage_test.py;h=763e37782b185d514f25680a043fe646a67e2bd5;hp=0000000000000000000000000000000000000000;hb=a42248f49b8b9464e1fdc2e94214292e62c33588;hpb=78268051e6787e95c9a0d508552212326051cb7a diff --git a/partfs_rootdisk/tests/localstorage_test.py b/partfs_rootdisk/tests/localstorage_test.py new file mode 100644 index 0000000..763e377 --- /dev/null +++ b/partfs_rootdisk/tests/localstorage_test.py @@ -0,0 +1,92 @@ +# Copyright 2019 Nokia + +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +import unittest +import json +import jinja2 +from ansible.plugins.filter.core import regex_search + + +class LocalstorageTest(unittest.TestCase): + + def setUp(self): + env = jinja2.Environment( + loader=jinja2.FileSystemLoader('./role/templates') + ) + env.filters['search'] = regex_search + env.tests['search'] = regex_search + self.template = env.get_template('localstorage.j2') + + def ordered(self, obj): + if isinstance(obj, dict): + return sorted((k, self.ordered(v)) for k, v in obj.items()) + if isinstance(obj, list): + return sorted(self.ordered(x) for x in obj) + return obj + + def verify(self, usecase): + with open('./tests/inputs/%s.json' % usecase) as data: + inventory = json.load(data) + rendered = self.template.render(inventory) + actual = json.loads(rendered) + with open('./tests/outputs/%s.json' % usecase) as data: + expected = json.load(data) + self.assertEqual(self.ordered(actual), self.ordered(expected)) + + def test_single_profile(self): + self.verify('single_profile') + + def test_double_profile(self): + self.verify('double_profile') + + def test_triple_profile(self): + self.verify('triple_profile') + + def test_missing_volume(self): + self.verify('missing_volume') + + def test_missing_volume2(self): + self.verify('missing_volume2') + + def test_fewer_partition(self): + self.verify('fewer_partition') + + def test_multinode_hybrid1(self): + self.verify('multinode_hybrid1') + + def test_multinode_hybrid2(self): + self.verify('multinode_hybrid2') + + def test_multinode_hybrid3(self): + self.verify('multinode_hybrid3') + + def test_multinode_hybrid4(self): + self.verify('multinode_hybrid4') + + def test_multinode_hybrid5(self): + self.verify('multinode_hybrid5') + + def test_multinode_hybrid6(self): + self.verify('multinode_hybrid6') + + def test_multinode_hybrid7(self): + self.verify('multinode_hybrid7') + + def test_multinode_hybrid8(self): + self.verify('multinode_hybrid8') + + def test_multinode_hybrid9(self): + self.verify('multinode_hybrid9') + +if __name__ == '__main__': + unittest.main()