def test_reference_add_id(self): gc.collect() elm = Element('a') _id = id(elm) self.assertNotIn(elm, Element._elements_with_id.values()) elm.id = 'a' self.assertIn('a', Element._elements_with_id) self.assertIn(elm, Element._elements_with_id.values()) elm.id = 'b' self.assertNotIn('a', Element._elements_with_id) self.assertIn('b', Element._elements_with_id) self.assertIn(elm, Element._elements_with_id.values()) elm.setAttribute('id', 'c') self.assertNotIn('b', Element._elements_with_id) self.assertIn('c', Element._elements_with_id) self.assertIn(elm, Element._elements_with_id.values()) del elm gc.collect() self.assertNotIn('c', Element._elements_with_id) for elm in Element._elements: assert id(elm) != _id
def test_reference_add_id(self): gc.collect() elm = Element('a') _id = id(elm) self.assertNotIn(elm, Element._elements_with_id.values()) elm.id = 'a' self.assertIn('a', Element._elements_with_id) self.assertIn(elm, Element._elements_with_id.values()) elm.id = 'b' self.assertNotIn('a', Element._elements_with_id) self.assertIn('b', Element._elements_with_id) self.assertIn(elm, Element._elements_with_id.values()) elm.setAttribute('id', 'c') self.assertNotIn('b', Element._elements_with_id) self.assertIn('c', Element._elements_with_id) self.assertIn(elm, Element._elements_with_id.values()) del elm gc.collect() self.assertNotIn('c', Element._elements_with_id) for elm in Element._element_buffer: assert id(elm) != _id