Skip to content

Commit 9ea6fec

Browse files
committed
[test/versionConv int] Add yaml test
1 parent 0a69d22 commit 9ea6fec

File tree

2 files changed

+241
-5
lines changed

2 files changed

+241
-5
lines changed
Lines changed: 195 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,195 @@
1+
Document:
2+
author: author
3+
date: '2018-02-02'
4+
repository: http://portal.g-node.org/odml/terminologies/v1.0/terminologies.xml
5+
sections:
6+
- definition: def s1
7+
include: url s1
8+
link: somewhere s1
9+
name: sec_one
10+
properties:
11+
- definition: def prop1
12+
dependency: dep p1
13+
dependency_value: dep val p1
14+
name: prop_one
15+
values:
16+
- dtype: string
17+
- definition: def val 1
18+
dtype: !!python/object/apply:odml.dtypes.DType
19+
- string
20+
filename: filename val 1
21+
reference: ref val 1
22+
uncertainty: 11
23+
unit: arbitrary
24+
value: '1'
25+
- definition: def val 2
26+
dtype: !!python/object/apply:odml.dtypes.DType
27+
- int
28+
filename: filename val 2
29+
reference: ref val 2
30+
uncertainty: 12
31+
unit: arbitrary 2
32+
value: '2'
33+
- definition: def val 3
34+
dtype: !!python/object/apply:odml.dtypes.DType
35+
- string
36+
filename: filename val 3
37+
reference: ref val 3
38+
uncertainty: 13
39+
unit: arbitrary 3
40+
value: '3'
41+
- definition: def prop2
42+
dependency: dep p2
43+
dependency_value: dep val p2
44+
name: prop_two
45+
values:
46+
- dtype: string
47+
- definition: def val 1
48+
dtype: !!python/object/apply:odml.dtypes.DType
49+
- int
50+
filename: filename val 1
51+
reference: ref val 1
52+
uncertainty: 12
53+
unit: arbitrary
54+
value: '1'
55+
- definition: def val 1
56+
dtype: !!python/object/apply:odml.dtypes.DType
57+
- int
58+
filename: filename val 1
59+
reference: ref val 1
60+
uncertainty: 12
61+
unit: arbitrary
62+
value: '2'
63+
- definition: def val 1
64+
dtype: !!python/object/apply:odml.dtypes.DType
65+
- int
66+
filename: filename val 1
67+
reference: ref val 1
68+
uncertainty: 12
69+
unit: arbitrary
70+
value: '3'
71+
- definition: def val 1
72+
dtype: !!python/object/apply:odml.dtypes.DType
73+
- int
74+
filename: filename val 1
75+
reference: ref val 1
76+
uncertainty: 12
77+
unit: arbitrary
78+
value: '4'
79+
- definition: def val 1
80+
dtype: !!python/object/apply:odml.dtypes.DType
81+
- int
82+
filename: filename val 1
83+
reference: ref val 1
84+
uncertainty: 12
85+
unit: arbitrary
86+
value: '4'
87+
- definition: def val 1
88+
dtype: !!python/object/apply:odml.dtypes.DType
89+
- int
90+
filename: filename val 1
91+
reference: ref val 1
92+
uncertainty: 12
93+
unit: arbitrary
94+
value: '4'
95+
- definition: def val 1
96+
dtype: !!python/object/apply:odml.dtypes.DType
97+
- int
98+
filename: filename val 1
99+
reference: ref val 1
100+
uncertainty: 12
101+
unit: arbitrary
102+
value: '4'
103+
- definition: def val 1
104+
dtype: !!python/object/apply:odml.dtypes.DType
105+
- int
106+
filename: filename val 1
107+
reference: ref val 1
108+
uncertainty: 12
109+
unit: arbitrary
110+
value: '4'
111+
- definition: def prop3
112+
dependency: dep p3
113+
dependency_value: dep val p3
114+
name: prop_three
115+
values:
116+
- dtype: string
117+
reference: ref s1
118+
sections:
119+
- definition: def subs1
120+
include: url subs1
121+
link: somewhere subs1
122+
name: subsection one
123+
properties:
124+
- definition: def prop1
125+
dependency: dep p1
126+
dependency_value: dep val p1
127+
name: prop one
128+
values:
129+
- dtype: string
130+
- definition: def prop3
131+
dependency: dep p3
132+
dependency_value: dep val p3
133+
name: prop three
134+
values:
135+
- dtype: string
136+
- definition: def val 1
137+
dtype: !!python/object/apply:odml.dtypes.DType
138+
- int
139+
filename: filename val 1
140+
reference: ref val 1
141+
uncertainty: 12
142+
unit: arbitrary
143+
value: '4'
144+
- definition: def val 1
145+
dtype: !!python/object/apply:odml.dtypes.DType
146+
- int
147+
filename: filename val 1
148+
reference: ref val 1
149+
uncertainty: 12
150+
unit: arbitrary
151+
value: '4'
152+
- definition: def val 1
153+
dtype: !!python/object/apply:odml.dtypes.DType
154+
- int
155+
filename: filename val 1
156+
reference: ref val 1
157+
uncertainty: 12
158+
unit: arbitrary
159+
value: '4'
160+
- definition: def val 1
161+
dtype: !!python/object/apply:odml.dtypes.DType
162+
- int
163+
filename: filename val 1
164+
reference: ref val 1
165+
uncertainty: 12
166+
unit: arbitrary
167+
value: '2'
168+
- definition: def prop2
169+
dependency: dep p2
170+
dependency_value: dep val p2
171+
name: prop two
172+
values:
173+
- dtype: string
174+
reference: ref subs1
175+
sections: []
176+
type: subsec
177+
type: mainsec
178+
- definition: def s2
179+
include: url s2
180+
link: somewhere s2
181+
name: section two
182+
properties: []
183+
reference: ref s2
184+
sections: []
185+
type: mainsec
186+
- definition: def s3
187+
include: url s3
188+
link: somewhere s3
189+
name: section three
190+
properties: []
191+
reference: ref s3
192+
sections: []
193+
type: mainsec
194+
version: v1.13
195+
odml-version: '1'

test/test_version_converter_integration.py

Lines changed: 46 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -16,21 +16,22 @@ class TestVersionConverterIntegration(unittest.TestCase):
1616
def setUp(self):
1717
# Set up test environment
1818
dir_path = os.path.dirname(os.path.realpath(__file__))
19+
1920
self.xmlfile = os.path.join(dir_path, "resources", "version_conversion_int.xml")
21+
self.yamlfile = os.path.join(dir_path, "resources", "version_conversion_int.yaml")
2022

2123
self.tmp_dir = tempfile.mkdtemp(suffix=".odml")
24+
self.outfile = os.path.join(self.tmp_dir, "version_conversion.xml")
2225

2326
def tearDown(self):
2427
if os.path.exists(self.tmp_dir):
2528
shutil.rmtree(self.tmp_dir)
2629

2730
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))
31+
VC(self.xmlfile).write_to_file(self.outfile)
32+
self.assertTrue(os.path.exists(self.outfile))
3233

33-
doc = load(outfile)
34+
doc = load(self.outfile)
3435

3536
repo = "http://portal.g-node.org/odml/terminologies/v1.1/terminologies.xml"
3637
self.assertEqual(doc.repository, repo)
@@ -61,3 +62,43 @@ def test_convert_xml(self):
6162

6263
prop = sec.properties["prop_three"]
6364
self.assertEqual(len(prop.value), 0)
65+
66+
def test_convert_yaml(self):
67+
with self.assertRaises(Exception):
68+
VC(self.yamlfile).write_to_file(self.outfile)
69+
70+
VC(self.yamlfile).write_to_file(self.outfile, "YAML")
71+
self.assertTrue(os.path.exists(self.outfile))
72+
73+
doc = load(self.outfile)
74+
75+
# Test document attribute export
76+
self.assertEqual(doc.author, "author")
77+
self.assertEqual(doc.version, "v1.13")
78+
repo = "http://portal.g-node.org/odml/terminologies/v1.1/terminologies.xml"
79+
self.assertEqual(doc.repository, repo)
80+
self.assertEqual(len(doc.sections), 3)
81+
82+
sec = doc.sections["sec_one"]
83+
self.assertEqual(sec.definition, "def s1")
84+
self.assertEqual(sec.reference, "ref s1")
85+
self.assertEqual(sec.type, "mainsec")
86+
self.assertEqual(len(sec.sections), 1)
87+
self.assertEqual(len(sec.properties), 3)
88+
89+
prop = sec.properties["prop_one"]
90+
self.assertEqual(prop.definition, "def prop1")
91+
self.assertEqual(prop.dependency, "dep p1")
92+
self.assertEqual(prop.dependency_value, "dep val p1")
93+
self.assertEqual(prop.reference, "ref val 1")
94+
self.assertEqual(prop.uncertainty, "11")
95+
self.assertEqual(prop.unit, "arbitrary")
96+
self.assertEqual(prop.value_origin, "filename val 1")
97+
self.assertEqual(prop.dtype, "string")
98+
self.assertEqual(len(prop.value), 3)
99+
100+
prop = sec.properties["prop_two"]
101+
self.assertEqual(len(prop.value), 8)
102+
103+
prop = sec.properties["prop_three"]
104+
self.assertEqual(len(prop.value), 0)

0 commit comments

Comments
 (0)