test_parser_yaml.py 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. import os
  2. import unittest
  3. import yaml
  4. from odml.tools import dict_parser
  5. from odml.tools.parser_utils import ParserException, InvalidVersionException
  6. class TestYAMLParser(unittest.TestCase):
  7. def setUp(self):
  8. dir_path = os.path.dirname(os.path.realpath(__file__))
  9. self.basepath = os.path.join(dir_path, "resources")
  10. self.yaml_reader = dict_parser.DictReader()
  11. def test_missing_root(self):
  12. filename = "missing_root.yaml"
  13. message = "Missing root element"
  14. with open(os.path.join(self.basepath, filename)) as raw_data:
  15. parsed_doc = yaml.load(raw_data)
  16. with self.assertRaises(ParserException) as exc:
  17. _ = self.yaml_reader.to_odml(parsed_doc)
  18. self.assertIn(message, str(exc.exception))
  19. def test_missing_version(self):
  20. filename = "missing_version.yaml"
  21. message = "Could not find odml-version"
  22. with open(os.path.join(self.basepath, filename)) as raw_data:
  23. parsed_doc = yaml.load(raw_data)
  24. with self.assertRaises(ParserException) as exc:
  25. _ = self.yaml_reader.to_odml(parsed_doc)
  26. self.assertIn(message, str(exc.exception))
  27. def test_invalid_version(self):
  28. filename = "invalid_version.yaml"
  29. with open(os.path.join(self.basepath, filename)) as raw_data:
  30. parsed_doc = yaml.load(raw_data)
  31. with self.assertRaises(InvalidVersionException):
  32. _ = self.yaml_reader.to_odml(parsed_doc)