Skip to content

Commit 842d110

Browse files
committed
[test/versionConv int] Add json test
1 parent 9ea6fec commit 842d110

File tree

2 files changed

+296
-0
lines changed

2 files changed

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

test/test_version_converter_integration.py

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ def setUp(self):
1717
# Set up test environment
1818
dir_path = os.path.dirname(os.path.realpath(__file__))
1919

20+
self.jsonfile = os.path.join(dir_path, "resources", "version_conversion_int.json")
2021
self.xmlfile = os.path.join(dir_path, "resources", "version_conversion_int.xml")
2122
self.yamlfile = os.path.join(dir_path, "resources", "version_conversion_int.yaml")
2223

@@ -102,3 +103,43 @@ def test_convert_yaml(self):
102103

103104
prop = sec.properties["prop_three"]
104105
self.assertEqual(len(prop.value), 0)
106+
107+
def test_convert_json(self):
108+
with self.assertRaises(Exception):
109+
VC(self.jsonfile).write_to_file(self.outfile)
110+
111+
VC(self.jsonfile).write_to_file(self.outfile, "JSON")
112+
self.assertTrue(os.path.exists(self.outfile))
113+
114+
doc = load(self.outfile)
115+
116+
# Test document attribute export
117+
self.assertEqual(doc.author, "author")
118+
self.assertEqual(doc.version, "v1.13")
119+
repo = "http://portal.g-node.org/odml/terminologies/v1.1/terminologies.xml"
120+
self.assertEqual(doc.repository, repo)
121+
self.assertEqual(len(doc.sections), 3)
122+
123+
sec = doc.sections["sec_one"]
124+
self.assertEqual(sec.definition, "def s1")
125+
self.assertEqual(sec.reference, "ref s1")
126+
self.assertEqual(sec.type, "mainsec")
127+
self.assertEqual(len(sec.sections), 1)
128+
self.assertEqual(len(sec.properties), 3)
129+
130+
prop = sec.properties["prop_one"]
131+
self.assertEqual(prop.definition, "def prop1")
132+
self.assertEqual(prop.dependency, "dep p1")
133+
self.assertEqual(prop.dependency_value, "dep val p1")
134+
self.assertEqual(prop.reference, "ref val 1")
135+
self.assertEqual(prop.uncertainty, "11")
136+
self.assertEqual(prop.unit, "arbitrary")
137+
self.assertEqual(prop.value_origin, "filename val 1")
138+
self.assertEqual(prop.dtype, "string")
139+
self.assertEqual(len(prop.value), 3)
140+
141+
prop = sec.properties["prop_two"]
142+
self.assertEqual(len(prop.value), 8)
143+
144+
prop = sec.properties["prop_three"]
145+
self.assertEqual(len(prop.value), 0)

0 commit comments

Comments
 (0)