Add unit test for template_format.py 87/1087/2
authorKristian Hunt <kristian.hunt@gmail.com>
Tue, 28 Jul 2015 08:42:41 +0000 (10:42 +0200)
committerJörgen Karlsson <jorgen.w.karlsson@ericsson.com>
Thu, 20 Aug 2015 11:32:13 +0000 (11:32 +0000)
Unit test file for template_format.py originates from
python-heatclient. Dependency for testscenarios module is removed and
testtools module is replaced with python native unittest module.

Running of unittest from run_test.sh is NOT enabled.

JIRA: -

Change-Id: I14e77ce04763b503cc757fe7098d2c704a7ae22c
Signed-off-by: Kristian Hunt <kristian.hunt@gmail.com>
tests/unit/common/__init__.py [new file with mode: 0644]
tests/unit/common/test_template_format.py [new file with mode: 0644]

diff --git a/tests/unit/common/__init__.py b/tests/unit/common/__init__.py
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/tests/unit/common/test_template_format.py b/tests/unit/common/test_template_format.py
new file mode 100644 (file)
index 0000000..0e1a1a5
--- /dev/null
@@ -0,0 +1,50 @@
+#    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.
+
+# yardstick: this file is copied from python-heatclient and slightly modified
+
+import mock
+import unittest
+import yaml
+
+from yardstick.common import template_format
+
+
+class TemplateFormatTestCase(unittest.TestCase):
+
+    def test_parse_to_value_exception(self):
+
+        with mock.patch.object(yaml, 'load') as yaml_loader:
+            yaml_loader.side_effect = yaml.scanner.ScannerError()
+            self.assertRaises(ValueError, template_format.parse, 'FOOBAR')
+            yaml_loader.side_effect = yaml.parser.ParserError()
+            self.assertRaises(ValueError, template_format.parse, 'FOOBAR')
+            yaml_loader.side_effect = \
+                yaml.reader.ReaderError('', '', '', '', '')
+            self.assertRaises(ValueError, template_format.parse, 'FOOBAR')
+
+    def test_parse_no_version_format(self):
+
+        yaml = ''
+        self.assertRaises(ValueError, template_format.parse, yaml)
+        yaml2 = "Parameters: {}\n" \
+                "Mappings: {}\n" \
+                "Resources: {}\n" \
+                "Outputs: {}"
+        self.assertRaises(ValueError, template_format.parse, yaml2)
+
+
+def main():
+    unittest.main()
+
+if __name__ == '__main__':
+    main()