Ejemplo n.º 1
0
    def test_simple_fields_are_required(self):
        T = UniversalObjectType({
        })

        S = UniversalObjectType({
            "foo": IntegerType()
        })

        self.assertTrue(T.is_copyable_from(S, DUMMY_REASONER))
        self.assertFalse(S.is_copyable_from(T, DUMMY_REASONER))
Ejemplo n.º 2
0
    def test_const_allows_broader_types(self):
        T = UniversalObjectType({
            "foo": Const(AnyType())
        })

        S = UniversalObjectType({
            "foo": IntegerType()
        })

        self.assertTrue(T.is_copyable_from(S, DUMMY_REASONER))
        self.assertFalse(S.is_copyable_from(T, DUMMY_REASONER))
Ejemplo n.º 3
0
    def test_broad_type_assignments_blocked(self):
        T = UniversalObjectType({
            "foo": AnyType()
        })

        S = UniversalObjectType({
            "foo": IntegerType()
        })

        self.assertFalse(T.is_copyable_from(S, DUMMY_REASONER))
        self.assertFalse(S.is_copyable_from(T, DUMMY_REASONER))
Ejemplo n.º 4
0
    def test_basic_class(self):
        T = UniversalObjectType({
            "foo": IntegerType()
        })

        S = UniversalObjectType({
            "foo": IntegerType(),
            "bar": StringType()
        })

        self.assertTrue(T.is_copyable_from(S, DUMMY_REASONER))
        self.assertFalse(S.is_copyable_from(T, DUMMY_REASONER))