|
8 | 8 | import tempfile
|
9 | 9 | import unittest
|
10 | 10 |
|
| 11 | +from odml import load |
| 12 | +from odml.tools.version_converter import VersionConverter as VC |
| 13 | + |
11 | 14 |
|
12 | 15 | class TestVersionConverterIntegration(unittest.TestCase):
|
13 | 16 | def setUp(self):
|
14 | 17 | # Set up test environment
|
| 18 | + dir_path = os.path.dirname(os.path.realpath(__file__)) |
| 19 | + self.xmlfile = os.path.join(dir_path, "resources", "version_conversion_int.xml") |
| 20 | + |
15 | 21 | self.tmp_dir = tempfile.mkdtemp(suffix=".odml")
|
16 | 22 |
|
17 | 23 | def tearDown(self):
|
18 | 24 | if os.path.exists(self.tmp_dir):
|
19 | 25 | shutil.rmtree(self.tmp_dir)
|
| 26 | + |
| 27 | + def test_convert_xml(self): |
| 28 | + outfile = os.path.join(self.tmp_dir, "version_conversion.xml") |
| 29 | + |
| 30 | + VC(self.xmlfile).write_to_file(outfile) |
| 31 | + self.assertTrue(os.path.exists(outfile)) |
| 32 | + |
| 33 | + doc = load(outfile) |
| 34 | + |
| 35 | + repo = "http://portal.g-node.org/odml/terminologies/v1.1/terminologies.xml" |
| 36 | + self.assertEqual(doc.repository, repo) |
| 37 | + self.assertEqual(doc.author, "author") |
| 38 | + self.assertEqual(doc.version, "v1.13") |
| 39 | + self.assertEqual(len(doc.sections), 3) |
| 40 | + |
| 41 | + sec = doc.sections["sec_one"] |
| 42 | + self.assertEqual(sec.definition, "def s1") |
| 43 | + self.assertEqual(sec.reference, "ref s1") |
| 44 | + self.assertEqual(sec.type, "mainsec") |
| 45 | + self.assertEqual(len(sec.sections), 1) |
| 46 | + self.assertEqual(len(sec.properties), 3) |
| 47 | + |
| 48 | + prop = sec.properties["prop_one"] |
| 49 | + self.assertEqual(prop.definition, "def prop1") |
| 50 | + self.assertEqual(prop.dependency, "dep p1") |
| 51 | + self.assertEqual(prop.dependency_value, "dep val p1") |
| 52 | + self.assertEqual(prop.reference, "ref val 1") |
| 53 | + self.assertEqual(prop.uncertainty, "11") |
| 54 | + self.assertEqual(prop.unit, "arbitrary") |
| 55 | + self.assertEqual(prop.value_origin, "filename val 1") |
| 56 | + self.assertEqual(prop.dtype, "string") |
| 57 | + self.assertEqual(len(prop.value), 3) |
| 58 | + |
| 59 | + prop = sec.properties["prop_two"] |
| 60 | + self.assertEqual(len(prop.value), 8) |
| 61 | + |
| 62 | + prop = sec.properties["prop_three"] |
| 63 | + self.assertEqual(len(prop.value), 0) |
0 commit comments