33from datetime import datetime
44
55import pytest
6- import tests
76from lxml import etree
7+ from xmlschema import XMLSchema
8+
9+ import tests
810from xmlgenerator .configuration import GeneratorConfig
911from xmlgenerator .generator import XmlGenerator
1012from xmlgenerator .randomization import Randomizer
1113from xmlgenerator .substitution import Substitutor
12- from xmlschema import XMLSchema
1314
1415os .chdir (os .path .dirname (os .path .abspath (tests .__file__ )))
1516
@@ -75,7 +76,7 @@ def test_string(self, generator, config):
7576 log_xml (generated_xml )
7677 generated_value = generated_xml .xpath ("/root/text()" )
7778 assert generated_value
78- assert re .match (" \ \ w+" , generated_value [0 ])
79+ assert re .match (r" \w+" , generated_value [0 ])
7980
8081 def test_boolean (self , generator , config ):
8182 """Проверяет генерацию булевых значений."""
@@ -84,43 +85,99 @@ def test_boolean(self, generator, config):
8485 log_xml (generated_xml )
8586 generated_value = generated_xml .xpath ("/root/text()" )
8687 assert generated_value
87- assert re .match ("true|false" , generated_value [0 ])
88+ assert re .match (r "true|false" , generated_value [0 ])
8889
8990 def test_decimal (self , generator , config ):
9091 xsd_schema = XMLSchema (f"data/simple/types_built_in/decimal.xsd" )
9192 generated_xml = generator .generate_xml (xsd_schema , config )
9293 log_xml (generated_xml )
9394 generated_value = generated_xml .xpath ("/root/text()" )
9495 assert generated_value
95- assert re .match ("[0-9-.]+" , generated_value [0 ])
96+ assert re .match (r "[0-9-.]+" , generated_value [0 ])
9697
9798 def test_float (self , generator , config ):
9899 xsd_schema = XMLSchema (f"data/simple/types_built_in/float.xsd" )
99100 generated_xml = generator .generate_xml (xsd_schema , config )
100101 log_xml (generated_xml )
101102 generated_value = generated_xml .xpath ("/root/text()" )
102103 assert generated_value
103- assert re .match ("[0-9-.]+" , generated_value [0 ])
104+ assert re .match (r "[0-9-.]+" , generated_value [0 ])
104105
105106 def test_double (self , generator , config ):
106107 xsd_schema = XMLSchema (f"data/simple/types_built_in/double.xsd" )
107108 generated_xml = generator .generate_xml (xsd_schema , config )
108109 log_xml (generated_xml )
109110 generated_value = generated_xml .xpath ("/root/text()" )
110111 assert generated_value
111- assert re .match ("[0-9-.]+" , generated_value [0 ])
112+ assert re .match (r"[0-9-.]+" , generated_value [0 ])
113+
114+ def test_datetime (self , generator , config ):
115+ xsd_schema = XMLSchema (f"data/simple/types_built_in/datetime.xsd" )
116+ generated_xml = generator .generate_xml (xsd_schema , config )
117+ log_xml (generated_xml )
118+ generated_value = generated_xml .xpath ("/root/text()" )
119+ assert generated_value
120+ assert re .match (r"[1,2][9,0]\d\d-\d\d-\d\dT\d\d:\d\d:\d\d$" , generated_value [0 ])
121+
122+ def test_date (self , generator , config ):
123+ xsd_schema = XMLSchema (f"data/simple/types_built_in/date.xsd" )
124+ generated_xml = generator .generate_xml (xsd_schema , config )
125+ log_xml (generated_xml )
126+ generated_value = generated_xml .xpath ("/root/text()" )
127+ assert generated_value
128+ assert re .match (r"[1,2][9,0]\d\d-\d\d-\d\d$" , generated_value [0 ])
129+
130+ def test_time (self , generator , config ):
131+ xsd_schema = XMLSchema (f"data/simple/types_built_in/time.xsd" )
132+ generated_xml = generator .generate_xml (xsd_schema , config )
133+ log_xml (generated_xml )
134+ generated_value = generated_xml .xpath ("/root/text()" )
135+ assert generated_value
136+ assert re .match (r"^\d\d:\d\d:\d\d$" , generated_value [0 ])
137+
138+ def test_gyearmonth (self , generator , config ):
139+ xsd_schema = XMLSchema (f"data/simple/types_built_in/gyearmonth.xsd" )
140+ generated_xml = generator .generate_xml (xsd_schema , config )
141+ log_xml (generated_xml )
142+ generated_value = generated_xml .xpath ("/root/text()" )
143+ assert generated_value
144+ assert re .match (r"^\d\d\d\d-\d\d$" , generated_value [0 ])
145+
146+ def test_gyear (self , generator , config ):
147+ xsd_schema = XMLSchema (f"data/simple/types_built_in/gyear.xsd" )
148+ generated_xml = generator .generate_xml (xsd_schema , config )
149+ log_xml (generated_xml )
150+ generated_value = generated_xml .xpath ("/root/text()" )
151+ assert generated_value
152+ assert re .match (r"^\d\d\d\d$" , generated_value [0 ])
153+
154+ def test_gmonthday (self , generator , config ):
155+ xsd_schema = XMLSchema (f"data/simple/types_built_in/gmonthday.xsd" )
156+ generated_xml = generator .generate_xml (xsd_schema , config )
157+ log_xml (generated_xml )
158+ generated_value = generated_xml .xpath ("/root/text()" )
159+ assert generated_value
160+ assert re .match (r"^--\d\d-\d\d$" , generated_value [0 ])
161+
162+ def test_gday (self , generator , config ):
163+ xsd_schema = XMLSchema (f"data/simple/types_built_in/gday.xsd" )
164+ generated_xml = generator .generate_xml (xsd_schema , config )
165+ log_xml (generated_xml )
166+ generated_value = generated_xml .xpath ("/root/text()" )
167+ assert generated_value
168+ assert re .match (r"^---\d\d$" , generated_value [0 ])
169+
170+ def test_gmonth (self , generator , config ):
171+ xsd_schema = XMLSchema (f"data/simple/types_built_in/gmonth.xsd" )
172+ generated_xml = generator .generate_xml (xsd_schema , config )
173+ log_xml (generated_xml )
174+ generated_value = generated_xml .xpath ("/root/text()" )
175+ assert generated_value
176+ assert re .match (r"^--\d\d--$" , generated_value [0 ])
112177
113178 @pytest .mark .skip (reason = "not yet implemented" )
114179 @pytest .mark .parametrize ("xsd" , [
115180 'duration.xsd' ,
116- 'datetime.xsd' ,
117- 'time.xsd' ,
118- 'date.xsd' ,
119- 'gyearmonth.xsd' ,
120- 'gyear.xsd' ,
121- 'gmonthday.xsd' ,
122- 'gday.xsd' ,
123- 'gmonth.xsd' ,
124181 'hexbinary.xsd' ,
125182 'base64binary.xsd' ,
126183 'anyuri.xsd' ,
@@ -146,51 +203,107 @@ def test_string(self, generator, config):
146203 log_xml (generated_xml )
147204 generated_value = generated_xml .xpath ("/root/@attributeValue" )
148205 assert generated_value
149- assert re .match (" \ \ w+" , generated_value [0 ])
206+ assert re .match (r" \w+" , generated_value [0 ])
150207
151208 def test_boolean (self , generator , config ):
152209 xsd_schema = XMLSchema ("data/complex/attributes/types_built_in/boolean.xsd" )
153210 generated_xml = generator .generate_xml (xsd_schema , config )
154211 log_xml (generated_xml )
155212 generated_value = generated_xml .xpath ("/root/@attributeValue" )
156213 assert generated_value
157- assert re .match ("true|false" , generated_value [0 ])
214+ assert re .match (r "true|false" , generated_value [0 ])
158215
159216 def test_decimal (self , generator , config ):
160217 xsd_schema = XMLSchema ("data/complex/attributes/types_built_in/decimal.xsd" )
161218 generated_xml = generator .generate_xml (xsd_schema , config )
162219 log_xml (generated_xml )
163220 generated_value = generated_xml .xpath ("/root/@attributeValue" )
164221 assert generated_value
165- assert re .match ("[0-9-.]+" , generated_value [0 ])
222+ assert re .match (r "[0-9-.]+" , generated_value [0 ])
166223
167224 def test_float (self , generator , config ):
168225 xsd_schema = XMLSchema ("data/complex/attributes/types_built_in/float.xsd" )
169226 generated_xml = generator .generate_xml (xsd_schema , config )
170227 log_xml (generated_xml )
171228 generated_value = generated_xml .xpath ("/root/@attributeValue" )
172229 assert generated_value
173- assert re .match ("[0-9-.]+" , generated_value [0 ])
230+ assert re .match (r "[0-9-.]+" , generated_value [0 ])
174231
175232 def test_double (self , generator , config ):
176233 xsd_schema = XMLSchema ("data/complex/attributes/types_built_in/double.xsd" )
177234 generated_xml = generator .generate_xml (xsd_schema , config )
178235 log_xml (generated_xml )
179236 generated_value = generated_xml .xpath ("/root/@attributeValue" )
180237 assert generated_value
181- assert re .match ("[0-9-.]+" , generated_value [0 ])
238+ assert re .match (r"[0-9-.]+" , generated_value [0 ])
239+
240+ def test_datetime (self , generator , config ):
241+ xsd_schema = XMLSchema (f"data/complex/attributes/types_built_in/datetime.xsd" )
242+ generated_xml = generator .generate_xml (xsd_schema , config )
243+ log_xml (generated_xml )
244+ generated_value = generated_xml .xpath ("/root/@attributeValue" )
245+ assert generated_value
246+ assert re .match (r"[1,2][9,0]\d\d-\d\d-\d\dT\d\d:\d\d:\d\d$" , generated_value [0 ])
247+
248+ def test_date (self , generator , config ):
249+ xsd_schema = XMLSchema (f"data/complex/attributes/types_built_in/date.xsd" )
250+ generated_xml = generator .generate_xml (xsd_schema , config )
251+ log_xml (generated_xml )
252+ generated_value = generated_xml .xpath ("/root/@attributeValue" )
253+ assert generated_value
254+ assert re .match (r"[1,2][9,0]\d\d-\d\d-\d\d$" , generated_value [0 ])
255+
256+ def test_time (self , generator , config ):
257+ xsd_schema = XMLSchema (f"data/complex/attributes/types_built_in/time.xsd" )
258+ generated_xml = generator .generate_xml (xsd_schema , config )
259+ log_xml (generated_xml )
260+ generated_value = generated_xml .xpath ("/root/@attributeValue" )
261+ assert generated_value
262+ assert re .match (r"^\d\d:\d\d:\d\d$" , generated_value [0 ])
263+
264+ def test_gyearmonth (self , generator , config ):
265+ xsd_schema = XMLSchema (f"data/complex/attributes/types_built_in/gyearmonth.xsd" )
266+ generated_xml = generator .generate_xml (xsd_schema , config )
267+ log_xml (generated_xml )
268+ generated_value = generated_xml .xpath ("/root/@attributeValue" )
269+ assert generated_value
270+ assert re .match (r"^\d\d\d\d-\d\d$" , generated_value [0 ])
271+
272+ def test_gyear (self , generator , config ):
273+ xsd_schema = XMLSchema (f"data/complex/attributes/types_built_in/gyear.xsd" )
274+ generated_xml = generator .generate_xml (xsd_schema , config )
275+ log_xml (generated_xml )
276+ generated_value = generated_xml .xpath ("/root/@attributeValue" )
277+ assert generated_value
278+ assert re .match (r"^\d\d\d\d$" , generated_value [0 ])
279+
280+ def test_gmonthday (self , generator , config ):
281+ xsd_schema = XMLSchema (f"data/complex/attributes/types_built_in/gmonthday.xsd" )
282+ generated_xml = generator .generate_xml (xsd_schema , config )
283+ log_xml (generated_xml )
284+ generated_value = generated_xml .xpath ("/root/@attributeValue" )
285+ assert generated_value
286+ assert re .match (r"^--\d\d-\d\d$" , generated_value [0 ])
287+
288+ def test_gday (self , generator , config ):
289+ xsd_schema = XMLSchema (f"data/complex/attributes/types_built_in/gday.xsd" )
290+ generated_xml = generator .generate_xml (xsd_schema , config )
291+ log_xml (generated_xml )
292+ generated_value = generated_xml .xpath ("/root/@attributeValue" )
293+ assert generated_value
294+ assert re .match (r"^---\d\d$" , generated_value [0 ])
295+
296+ def test_gmonth (self , generator , config ):
297+ xsd_schema = XMLSchema (f"data/complex/attributes/types_built_in/gmonth.xsd" )
298+ generated_xml = generator .generate_xml (xsd_schema , config )
299+ log_xml (generated_xml )
300+ generated_value = generated_xml .xpath ("/root/@attributeValue" )
301+ assert generated_value
302+ assert re .match (r"^--\d\d--$" , generated_value [0 ])
182303
183304 @pytest .mark .skip (reason = "not yet implemented" )
184305 @pytest .mark .parametrize ("xsd" , [
185306 'duration.xsd' ,
186- 'datetime.xsd' ,
187- 'time.xsd' ,
188- 'date.xsd' ,
189- 'gyearmonth.xsd' ,
190- 'gyear.xsd' ,
191- 'gmonthday.xsd' ,
192- 'gday.xsd' ,
193- 'gmonth.xsd' ,
194307 'hexbinary.xsd' ,
195308 'base64binary.xsd' ,
196309 'anyuri.xsd' ,
@@ -630,7 +743,7 @@ def test_group_1_unbounded__element_1_1__0_1(self, generator, config):
630743
631744 assert min (counts_by_occurs_item_opt ) == 0
632745 assert max (counts_by_occurs_item_opt ) <= 10
633- assert len (counts_by_occurs_item_opt ) < 10
746+ assert len (counts_by_occurs_item_opt ) <= 10
634747
635748 def test_group_1_1__element_0_0__0_1 (self , generator , config ):
636749 xsd_schema = XMLSchema ("data/complex/sequence/scenario_07_forbidden_element.xsd" )
0 commit comments