def test_copy(self): grandchild = nodes.Text('rawsource') child = nodes.emphasis('rawsource', grandchild, att='child') e = nodes.Element('rawsource', child, att='e') # Shallow copy: e_copy = e.copy() self.assert_(e is not e_copy) # Internal attributes (like `rawsource`) are not copied. self.assertEquals(e.rawsource, 'rawsource') self.assertEquals(e_copy.rawsource, '') self.assertEquals(e_copy['att'], 'e') # Children are not copied. self.assertEquals(len(e_copy), 0) # Deep copy: e_deepcopy = e.deepcopy() self.assertEquals(e_deepcopy.rawsource, '') self.assertEquals(e_deepcopy['att'], 'e') # Children are copied recursively. self.assertEquals(e_deepcopy[0][0], grandchild) self.assert_(e_deepcopy[0][0] is not grandchild) self.assertEquals(e_deepcopy[0]['att'], 'child')
def test_copy(self): grandchild = nodes.Text('rawsource') child = nodes.emphasis('rawsource', grandchild, att='child') e = nodes.Element('rawsource', child, att='e') # Shallow copy: e_copy = e.copy() self.assertTrue(e is not e_copy) # Internal attributes (like `rawsource`) are also copied. self.assertEqual(e.rawsource, 'rawsource') self.assertEqual(e_copy.rawsource, e.rawsource) self.assertEqual(e_copy['att'], 'e') # Children are not copied. self.assertEqual(len(e_copy), 0) # Deep copy: e_deepcopy = e.deepcopy() self.assertEqual(e_deepcopy.rawsource, e.rawsource) self.assertEqual(e_deepcopy['att'], 'e') # Children are copied recursively. self.assertEqual(e_deepcopy[0][0], grandchild) self.assertTrue(e_deepcopy[0][0] is not grandchild) self.assertEqual(e_deepcopy[0]['att'], 'child')