def test_specialize_generic_type(self): scope = Scope() GT = DataType("GT") A = DataType("A", access=AccessLevel.internal) scope.add_child(Scope(None, A)) B = DataType("B", generic_types={GT: None}) self.assertDictEqual(scope.specialize_type(B).generic_types, {GT: A})
def test_specialize_generic_type_filter(self): scope = Scope() GT = DataType("GT") A = DataType("A", access=AccessLevel.internal) B = DataType("B", access=AccessLevel.public) scope.add_child(Scope(None, A)) scope.add_child(Scope(None, B)) C = DataType("C", generic_types={GT: None}) self.assertDictEqual( scope.specialize_type(C, at_least=AccessLevel.public).generic_types, {GT: B} )