@@ -255,8 +255,9 @@ def test_final_class_with_more_fields(generate, dir_param):
255
255
256
256
def test_empty_class_with_derived (generate ):
257
257
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" ]),
260
261
]) == dbscheme .Scheme (
261
262
src = schema_file ,
262
263
includes = [],
@@ -265,6 +266,14 @@ def test_empty_class_with_derived(generate):
265
266
lhs = "@base" ,
266
267
rhs = ["@left" , "@right" ],
267
268
),
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
+ ),
268
277
],
269
278
)
270
279
@@ -278,6 +287,8 @@ def test_class_with_derived_and_single_property(generate, dir_param):
278
287
properties = [
279
288
schema .SingleProperty ("single" , "Prop" ),
280
289
]),
290
+ schema .Class (name = "Left" , bases = ["Base" ]),
291
+ schema .Class (name = "Right" , bases = ["Base" ]),
281
292
]) == dbscheme .Scheme (
282
293
src = schema_file ,
283
294
includes = [],
@@ -294,7 +305,15 @@ def test_class_with_derived_and_single_property(generate, dir_param):
294
305
dbscheme .Column ('single' , '@prop' ),
295
306
],
296
307
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
+ ),
298
317
],
299
318
)
300
319
@@ -308,6 +327,8 @@ def test_class_with_derived_and_optional_property(generate, dir_param):
308
327
properties = [
309
328
schema .OptionalProperty ("opt" , "Prop" ),
310
329
]),
330
+ schema .Class (name = "Left" , bases = ["Base" ]),
331
+ schema .Class (name = "Right" , bases = ["Base" ]),
311
332
]) == dbscheme .Scheme (
312
333
src = schema_file ,
313
334
includes = [],
@@ -324,7 +345,15 @@ def test_class_with_derived_and_optional_property(generate, dir_param):
324
345
dbscheme .Column ('opt' , '@prop' ),
325
346
],
326
347
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
+ ),
328
357
],
329
358
)
330
359
@@ -338,6 +367,8 @@ def test_class_with_derived_and_repeated_property(generate, dir_param):
338
367
properties = [
339
368
schema .RepeatedProperty ("rep" , "Prop" ),
340
369
]),
370
+ schema .Class (name = "Left" , bases = ["Base" ]),
371
+ schema .Class (name = "Right" , bases = ["Base" ]),
341
372
]) == dbscheme .Scheme (
342
373
src = schema_file ,
343
374
includes = [],
@@ -355,7 +386,15 @@ def test_class_with_derived_and_repeated_property(generate, dir_param):
355
386
dbscheme .Column ('rep' , '@prop' ),
356
387
],
357
388
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
+ ),
359
398
],
360
399
)
361
400
@@ -469,5 +508,37 @@ def test_null_class(generate):
469
508
)
470
509
471
510
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
+
472
543
if __name__ == '__main__' :
473
544
sys .exit (pytest .main ([__file__ ] + sys .argv [1 :]))
0 commit comments