Example #1
0
File: tests.py Project: aleien/deal
    def test_patched_invariants_instance(self):
        class A:
            x = 2

        PatchedA = deal.inv(lambda obj: obj.x > 0)(A)  # noQA
        a = PatchedA()
        assert isinstance(a, PatchedA)
        assert isinstance(a, A)

        PatchedA2 = deal.inv(lambda obj: obj.x > 0)(PatchedA)  # noQA
        a = PatchedA2()
        assert isinstance(a, PatchedA)
        assert isinstance(a, PatchedA2)
        assert isinstance(a, A)

        assert a.__class__.__name__.count('Invarianted') == 1
Example #2
0
    def test_instance(self):
        class A:
            x = 2

        PatchedA = deal.inv(lambda obj: obj.x > 0)(A)  # noQA
        a = PatchedA()
        with self.subTest(text='isinstance'):
            self.assertIsInstance(a, PatchedA)
            self.assertIsInstance(a, A)

        PatchedA2 = deal.inv(lambda obj: obj.x > 0)(PatchedA)  # noQA
        a = PatchedA2()
        with self.subTest(text='isinstance'):
            self.assertIsInstance(a, PatchedA)
            self.assertIsInstance(a, PatchedA2)
            self.assertIsInstance(a, A)
        with self.subTest(text='class name'):
            self.assertEqual(a.__class__.__name__.count('Invarianted'), 1)