@@ -255,8 +255,9 @@ def test_final_class_with_more_fields(generate, dir_param):
255255
256256def test_empty_class_with_derived (generate ):
257257 assert generate ([
258- schema .Class (
259- name = "Base" , derived = {"Left" , "Right" }),
258+ schema .Class (name = "Base" , derived = {"Left" , "Right" }),
259+ schema .Class (name = "Left" , bases = ["Base" ]),
260+ schema .Class (name = "Right" , bases = ["Base" ]),
260261 ]) == dbscheme .Scheme (
261262 src = schema_file ,
262263 includes = [],
@@ -265,6 +266,14 @@ def test_empty_class_with_derived(generate):
265266 lhs = "@base" ,
266267 rhs = ["@left" , "@right" ],
267268 ),
269+ dbscheme .Table (
270+ name = "lefts" ,
271+ columns = [dbscheme .Column ("id" , "@left" , binding = True )],
272+ ),
273+ dbscheme .Table (
274+ name = "rights" ,
275+ columns = [dbscheme .Column ("id" , "@right" , binding = True )],
276+ ),
268277 ],
269278 )
270279
@@ -278,6 +287,8 @@ def test_class_with_derived_and_single_property(generate, dir_param):
278287 properties = [
279288 schema .SingleProperty ("single" , "Prop" ),
280289 ]),
290+ schema .Class (name = "Left" , bases = ["Base" ]),
291+ schema .Class (name = "Right" , bases = ["Base" ]),
281292 ]) == dbscheme .Scheme (
282293 src = schema_file ,
283294 includes = [],
@@ -294,7 +305,15 @@ def test_class_with_derived_and_single_property(generate, dir_param):
294305 dbscheme .Column ('single' , '@prop' ),
295306 ],
296307 dir = dir_param .expected ,
297- )
308+ ),
309+ dbscheme .Table (
310+ name = "lefts" ,
311+ columns = [dbscheme .Column ("id" , "@left" , binding = True )],
312+ ),
313+ dbscheme .Table (
314+ name = "rights" ,
315+ columns = [dbscheme .Column ("id" , "@right" , binding = True )],
316+ ),
298317 ],
299318 )
300319
@@ -308,6 +327,8 @@ def test_class_with_derived_and_optional_property(generate, dir_param):
308327 properties = [
309328 schema .OptionalProperty ("opt" , "Prop" ),
310329 ]),
330+ schema .Class (name = "Left" , bases = ["Base" ]),
331+ schema .Class (name = "Right" , bases = ["Base" ]),
311332 ]) == dbscheme .Scheme (
312333 src = schema_file ,
313334 includes = [],
@@ -324,7 +345,15 @@ def test_class_with_derived_and_optional_property(generate, dir_param):
324345 dbscheme .Column ('opt' , '@prop' ),
325346 ],
326347 dir = dir_param .expected ,
327- )
348+ ),
349+ dbscheme .Table (
350+ name = "lefts" ,
351+ columns = [dbscheme .Column ("id" , "@left" , binding = True )],
352+ ),
353+ dbscheme .Table (
354+ name = "rights" ,
355+ columns = [dbscheme .Column ("id" , "@right" , binding = True )],
356+ ),
328357 ],
329358 )
330359
@@ -338,6 +367,8 @@ def test_class_with_derived_and_repeated_property(generate, dir_param):
338367 properties = [
339368 schema .RepeatedProperty ("rep" , "Prop" ),
340369 ]),
370+ schema .Class (name = "Left" , bases = ["Base" ]),
371+ schema .Class (name = "Right" , bases = ["Base" ]),
341372 ]) == dbscheme .Scheme (
342373 src = schema_file ,
343374 includes = [],
@@ -355,7 +386,15 @@ def test_class_with_derived_and_repeated_property(generate, dir_param):
355386 dbscheme .Column ('rep' , '@prop' ),
356387 ],
357388 dir = dir_param .expected ,
358- )
389+ ),
390+ dbscheme .Table (
391+ name = "lefts" ,
392+ columns = [dbscheme .Column ("id" , "@left" , binding = True )],
393+ ),
394+ dbscheme .Table (
395+ name = "rights" ,
396+ columns = [dbscheme .Column ("id" , "@right" , binding = True )],
397+ ),
359398 ],
360399 )
361400
@@ -469,5 +508,37 @@ def test_null_class(generate):
469508 )
470509
471510
511+ def test_ipa_classes_ignored (generate ):
512+ assert generate ([
513+ schema .Class (name = "A" , ipa = schema .IpaInfo ()),
514+ schema .Class (name = "B" , ipa = schema .IpaInfo (from_class = "A" )),
515+ schema .Class (name = "C" , ipa = schema .IpaInfo (on_arguments = {"x" : "A" })),
516+ ]) == dbscheme .Scheme (
517+ src = schema_file ,
518+ includes = [],
519+ declarations = [],
520+ )
521+
522+
523+ def test_ipa_derived_classes_ignored (generate ):
524+ assert generate ([
525+ schema .Class (name = "A" , derived = {"B" , "C" }),
526+ schema .Class (name = "B" , bases = ["A" ], ipa = schema .IpaInfo ()),
527+ schema .Class (name = "C" , bases = ["A" ]),
528+ ]) == dbscheme .Scheme (
529+ src = schema_file ,
530+ includes = [],
531+ declarations = [
532+ dbscheme .Union ("@a" , ["@c" ]),
533+ dbscheme .Table (
534+ name = "cs" ,
535+ columns = [
536+ dbscheme .Column ("id" , "@c" , binding = True ),
537+ ],
538+ )
539+ ],
540+ )
541+
542+
472543if __name__ == '__main__' :
473544 sys .exit (pytest .main ([__file__ ] + sys .argv [1 :]))
0 commit comments