Esempio n. 1
0
    def test_splittable_setattr_after_pop(self):
        """setattr must not convert combined table into split table"""
        # Issue 28147
        import _testcapi

        class C:
            pass
        a = C()
        a.a = 2
        self.assertTrue(_testcapi.dict_hassplittable(a.__dict__))
        # dict.popitem() convert it to combined table
        a.__dict__.popitem()
        self.assertFalse(_testcapi.dict_hassplittable(a.__dict__))
        # But C should not convert a.__dict__ to split table again.
        a.a = 3
        self.assertFalse(_testcapi.dict_hassplittable(a.__dict__))
Esempio n. 2
0
    def test_splittable_setattr_after_pop(self):
        """setattr must not convert combined table into split table"""
        # Issue 28147
        import _testcapi

        class C:
            pass
        a = C()
        a.a = 2
        self.assertTrue(_testcapi.dict_hassplittable(a.__dict__))
        # dict.popitem() convert it to combined table
        a.__dict__.popitem()
        self.assertFalse(_testcapi.dict_hassplittable(a.__dict__))
        # But C should not convert a.__dict__ to split table again.
        a.a = 3
        self.assertFalse(_testcapi.dict_hassplittable(a.__dict__))
Esempio n. 3
0
    def test_splittable_setattr_after_pop(self):
        """setattr() must not convert combined table into split table."""
        import _testcapi

        class C:
            pass

        a = C()
        a.a = 1
        self.assertTrue(_testcapi.dict_hassplittable(a.__dict__))
        a.__dict__.pop('a')
        self.assertFalse(_testcapi.dict_hassplittable(a.__dict__))
        a.a = 1
        self.assertFalse(_testcapi.dict_hassplittable(a.__dict__))
        a = C()
        a.a = 2
        self.assertTrue(_testcapi.dict_hassplittable(a.__dict__))
        a.__dict__.popitem()
        self.assertFalse(_testcapi.dict_hassplittable(a.__dict__))
        a.a = 3
        self.assertFalse(_testcapi.dict_hassplittable(a.__dict__))