def test_subclass2(self):
        A = make_class("A", fields=('x', 'y'))

        class B(A):
            __fields__ = ('z',)
                
        class C(B):
            pass

        self.assertEqual(type(A), type(B))
        self.assertEqual(type(C), type(B))
        self.assertEqual(C.__dictoffset__, 0)
        self.assertEqual(C.__weakrefoffset__, 0)
        c = C(1,2,3)
        self.assertEqual(repr(c), "C(x=1, y=2, z=3)")
        self.assertEqual(c.x, 1)
        self.assertEqual(c.y, 2)
        self.assertEqual(c.z, 3)
        self.assertEqual(asdict(c), {'x':1, 'y':2, 'z':3})
#         self.assertEqual(sys.getsizeof(c), 40)
        with self.assertRaises(TypeError):     
            weakref.ref(c)
        with self.assertRaises(AttributeError):     
            c.__dict__
        c = None
Example #2
0
    def test_subclass4(self):
        class A(dataobject):
            x: int
            y: int

        class B(A):
            z: int

        class N:
            def norm_1(self):
                return abs(self.x) + abs(self.y) + abs(self.z)

        class C(B, N):
            pass

        self.assertEqual(type(A), type(B))
        self.assertEqual(type(C), type(B))
        self.assertEqual(C.__dictoffset__, 0)
        self.assertEqual(C.__weakrefoffset__, 0)
        c = C(1, 2, 3)
        self.assertEqual(repr(c), "C(x=1, y=2, z=3)")
        self.assertEqual(c.x, 1)
        self.assertEqual(c.y, 2)
        self.assertEqual(c.z, 3)
        self.assertEqual(c.norm_1(), 6)
        self.assertEqual(asdict(c), {'x': 1, 'y': 2, 'z': 3})
        self.assertEqual(C.__annotations__, {'x': int, 'y': int, 'z': int})
        #         self.assertEqual(sys.getsizeof(c), 40)
        with self.assertRaises(TypeError):
            weakref.ref(c)
        with self.assertRaises(AttributeError):
            c.__dict__
Example #3
0
    def test_subclass2(self):
        A = make_class("A", fields=('x', 'y'))

        class B(A):
            __fields__ = ('z', )

        class C(B):
            pass

        self.assertEqual(type(A), type(B))
        self.assertEqual(type(C), type(B))
        self.assertEqual(C.__dictoffset__, 0)
        self.assertEqual(C.__weakrefoffset__, 0)
        c = C(1, 2, 3)
        self.assertEqual(repr(c), "C(x=1, y=2, z=3)")
        self.assertEqual(c.x, 1)
        self.assertEqual(c.y, 2)
        self.assertEqual(c.z, 3)
        self.assertEqual(asdict(c), {'x': 1, 'y': 2, 'z': 3})
        #         self.assertEqual(sys.getsizeof(c), 40)
        with self.assertRaises(TypeError):
            weakref.ref(c)
        with self.assertRaises(AttributeError):
            c.__dict__
        c = None
Example #4
0
    def test_subclass3(self):
        class A(dataobject):
            x: int
            y: int

        class B:
            def norm_1(self):
                return abs(self.x) + abs(self.y)

        class C(A, B):
            pass

        self.assertEqual(type(C), type(A))
        self.assertEqual(C.__dictoffset__, 0)
        self.assertEqual(C.__weakrefoffset__, 0)
        c = C(1, 2)
        self.assertEqual(repr(c), "C(x=1, y=2)")
        self.assertEqual(c.x, 1)
        self.assertEqual(c.y, 2)
        self.assertEqual(c.norm_1(), 3)
        self.assertEqual(asdict(c), {'x': 1, 'y': 2})
        self.assertEqual(C.__annotations__, {'x': int, 'y': int})
        with self.assertRaises(TypeError):
            weakref.ref(c)
        with self.assertRaises(AttributeError):
            c.__dict__
 def test_defaults(self):
     A = make_class("A", fields=('x', 'y', 'z'), defaults=(100, 200, 300))
             
     a1 = A()
     self.assertEqual(repr(a1), "A(x=100, y=200, z=300)")
     self.assertEqual(a1.x, 100)
     self.assertEqual(a1.y, 200)
     self.assertEqual(a1.z, 300)
     self.assertEqual(asdict(a1), {'x':100, 'y':200, 'z':300})
     a2 = A(1,z=400)
     self.assertEqual(repr(a2), "A(x=1, y=200, z=400)")
     self.assertEqual(a2.x, 1)
     self.assertEqual(a2.y, 200)
     self.assertEqual(a2.z, 400)
     self.assertEqual(asdict(a2), {'x':1, 'y':200, 'z':400})
     a3 = A(1,2,z=400)
     self.assertEqual(repr(a3), "A(x=1, y=2, z=400)")
     self.assertEqual(a3.x, 1)
     self.assertEqual(a3.y, 2)
     self.assertEqual(a3.z, 400)
     self.assertEqual(asdict(a3), {'x':1, 'y':2, 'z':400})
Example #6
0
    def test_defaults(self):
        A = make_class("A", fields=('x', 'y', 'z'), defaults=(100, 200, 300))

        a1 = A()
        self.assertEqual(repr(a1), "A(x=100, y=200, z=300)")
        self.assertEqual(a1.x, 100)
        self.assertEqual(a1.y, 200)
        self.assertEqual(a1.z, 300)
        self.assertEqual(asdict(a1), {'x': 100, 'y': 200, 'z': 300})
        a2 = A(1, z=400)
        self.assertEqual(repr(a2), "A(x=1, y=200, z=400)")
        self.assertEqual(a2.x, 1)
        self.assertEqual(a2.y, 200)
        self.assertEqual(a2.z, 400)
        self.assertEqual(asdict(a2), {'x': 1, 'y': 200, 'z': 400})
        a3 = A(1, 2, z=400)
        self.assertEqual(repr(a3), "A(x=1, y=2, z=400)")
        self.assertEqual(a3.x, 1)
        self.assertEqual(a3.y, 2)
        self.assertEqual(a3.z, 400)
        self.assertEqual(asdict(a3), {'x': 1, 'y': 2, 'z': 400})
    def test_datatype_dict(self):
        A = make_class("A", fields=('x', 'y'), use_dict=True, use_weakref=True)

        a = A(1,2)
        self.assertEqual(repr(a), "A(x=1, y=2)")
        self.assertEqual(a.x, 1)
        self.assertEqual(a.y, 2)
        self.assertEqual(asdict(a), {'x':1, 'y':2})
#         self.assertEqual(sys.getsizeof(a), 48)
#         self.assertEqual(A.__dictoffset__, 32)
#         self.assertEqual(A.__weakrefoffset__, 40)
        weakref.ref(a)
        self.assertEqual(a.__dict__, {})
        
        a.z = 3
        self.assertEqual(a.z, a.__dict__['z'])
        a = None
Example #8
0
    def test_datatype_dict(self):
        A = make_class("A", fields=('x', 'y'), use_dict=True, use_weakref=True)

        a = A(1, 2)
        self.assertEqual(repr(a), "A(x=1, y=2)")
        self.assertEqual(a.x, 1)
        self.assertEqual(a.y, 2)
        self.assertEqual(asdict(a), {'x': 1, 'y': 2})
        #         self.assertEqual(sys.getsizeof(a), 48)
        #         self.assertEqual(A.__dictoffset__, 32)
        #         self.assertEqual(A.__weakrefoffset__, 40)
        weakref.ref(a)
        self.assertEqual(a.__dict__, {})

        a.z = 3
        self.assertEqual(a.z, a.__dict__['z'])
        a = None
    def test_datatype(self):
        A = make_class("A", fields=('x', 'y'))

        a = A(1,2)
        self.assertEqual(repr(a), "A(x=1, y=2)")
        self.assertEqual(a.x, 1)
        self.assertEqual(a.y, 2)
        self.assertEqual(asdict(a), {'x':1, 'y':2})
#         self.assertEqual(sys.getsizeof(a), 32)
        with self.assertRaises(TypeError):     
            weakref.ref(a)
        with self.assertRaises(AttributeError):     
            a.__dict__
        with self.assertRaises(AttributeError):     
            a.z = 3
        with self.assertRaises(AttributeError):     
            a.z            
        a = None
Example #10
0
    def test_datatype(self):
        A = make_class("A", fields=('x', 'y'))

        a = A(1, 2)
        self.assertEqual(repr(a), "A(x=1, y=2)")
        self.assertEqual(a.x, 1)
        self.assertEqual(a.y, 2)
        self.assertEqual(asdict(a), {'x': 1, 'y': 2})
        #         self.assertEqual(sys.getsizeof(a), 32)
        with self.assertRaises(TypeError):
            weakref.ref(a)
        with self.assertRaises(AttributeError):
            a.__dict__
        with self.assertRaises(AttributeError):
            a.z = 3
        with self.assertRaises(AttributeError):
            a.z
        a = None
    def test_subclass(self):
        A = make_class("A", fields=('x', 'y'))
                
        class B(A):
            pass

        self.assertEqual(type(A), type(B))
        self.assertEqual(B.__dictoffset__, 0)
        self.assertEqual(B.__weakrefoffset__, 0)
        b = B(1,2)
        self.assertEqual(repr(b), "B(x=1, y=2)")
        self.assertEqual(b.x, 1)
        self.assertEqual(b.y, 2)
        self.assertEqual(asdict(b), {'x':1, 'y':2})
#         self.assertEqual(sys.getsizeof(a), 32)
        self.assertEqual(A.__basicsize__, B.__basicsize__)
        with self.assertRaises(TypeError):     
            weakref.ref(b)
        with self.assertRaises(AttributeError):     
            b.__dict__        
Example #12
0
    def test_subclass(self):
        A = make_class("A", fields=('x', 'y'))

        class B(A):
            pass

        self.assertEqual(type(A), type(B))
        self.assertEqual(B.__dictoffset__, 0)
        self.assertEqual(B.__weakrefoffset__, 0)
        b = B(1, 2)
        self.assertEqual(repr(b), "B(x=1, y=2)")
        self.assertEqual(b.x, 1)
        self.assertEqual(b.y, 2)
        self.assertEqual(asdict(b), {'x': 1, 'y': 2})
        #         self.assertEqual(sys.getsizeof(a), 32)
        self.assertEqual(A.__basicsize__, B.__basicsize__)
        with self.assertRaises(TypeError):
            weakref.ref(b)
        with self.assertRaises(AttributeError):
            b.__dict__
Example #13
0
    def test_datatype_dict(self):
        class A(dataobject):
            __fields__ = 'x', 'y'
            __options__ = {'dict': True, 'weakref': True}
            x: int
            y: int

        a = A(1, 2)
        self.assertEqual(repr(a), "A(x=1, y=2)")
        self.assertEqual(a.x, 1)
        self.assertEqual(a.y, 2)
        self.assertEqual(asdict(a), {'x': 1, 'y': 2})
        self.assertEqual(A.__annotations__, {'x': int, 'y': int})
        #         self.assertEqual(sys.getsizeof(a), 48)
        #         self.assertEqual(A.__dictoffset__, 32)
        #         self.assertEqual(A.__weakrefoffset__, 40)
        weakref.ref(a)
        self.assertEqual(a.__dict__, {})

        a.z = 3
        self.assertEqual(a.z, a.__dict__['z'])
Example #14
0
    def test_datatype2(self):
        class A(dataobject):
            x: int
            y: int

        a = A(1, 2)
        self.assertEqual(repr(a), "A(x=1, y=2)")
        self.assertEqual(a.x, 1)
        self.assertEqual(a.y, 2)
        self.assertEqual(asdict(a), {'x': 1, 'y': 2})
        self.assertEqual(A.__annotations__, {'x': int, 'y': int})
        self.assertEqual(A.__fields__, ('x', 'y'))
        #         self.assertEqual(sys.getsizeof(a), 32)
        with self.assertRaises(TypeError):
            weakref.ref(a)
        with self.assertRaises(AttributeError):
            a.__dict__
        with self.assertRaises(AttributeError):
            a.z = 3
        with self.assertRaises(AttributeError):
            a.z
        a = None
Example #15
0
    def test_subclass(self):
        class A(dataobject):
            __fields__ = 'x', 'y'
            x: int
            y: int

        class B(A):
            pass

        self.assertEqual(type(A), type(B))
        self.assertEqual(B.__dictoffset__, 0)
        self.assertEqual(B.__weakrefoffset__, 0)
        b = B(1, 2)
        self.assertEqual(repr(b), "B(x=1, y=2)")
        self.assertEqual(b.x, 1)
        self.assertEqual(b.y, 2)
        self.assertEqual(asdict(b), {'x': 1, 'y': 2})
        self.assertEqual(B.__annotations__, {'x': int, 'y': int})
        #         self.assertEqual(sys.getsizeof(a), 32)
        self.assertEqual(A.__basicsize__, B.__basicsize__)
        with self.assertRaises(TypeError):
            weakref.ref(b)
        with self.assertRaises(AttributeError):
            b.__dict__