@@ -13,7 +13,7 @@ class data:
1313 pass
1414
1515 assert data .classes == {}
16- assert data .includes == set ()
16+ assert data .includes == []
1717 assert data .null is None
1818 assert data .null_class is None
1919
@@ -805,5 +805,51 @@ class C(Root):
805805 pass
806806
807807
808+ def test_include_dbscheme ():
809+ @load
810+ class data :
811+ defs .include ("foo.dbscheme" )
812+ defs .include ("bar.dbscheme" )
813+
814+ assert data .includes == ["foo.dbscheme" , "bar.dbscheme" ]
815+
816+
817+ def test_include_source (tmp_path ):
818+ (tmp_path / "foo.py" ).write_text ("""
819+ class A(Root):
820+ pass
821+ """ )
822+ (tmp_path / "bar.py" ).write_text ("""
823+ class C(Root):
824+ pass
825+ """ )
826+
827+ @load
828+ class data :
829+ class Root :
830+ pass
831+
832+ defs .include (str (tmp_path / "foo.py" ))
833+
834+ class B (Root ):
835+ pass
836+
837+ defs .include (str (tmp_path / "bar.py" ))
838+
839+ assert data .classes == {
840+ "Root" : schema .Class ("Root" , derived = set ("ABC" )),
841+ "A" : schema .Class ("A" , bases = ["Root" ]),
842+ "B" : schema .Class ("B" , bases = ["Root" ]),
843+ "C" : schema .Class ("C" , bases = ["Root" ]),
844+ }
845+
846+
847+ def test_include_not_supported (tmp_path ):
848+ with pytest .raises (schema .Error ):
849+ @load
850+ class data :
851+ defs .include ("foo.bar" )
852+
853+
808854if __name__ == '__main__' :
809855 sys .exit (pytest .main ([__file__ ] + sys .argv [1 :]))
0 commit comments