diff options
| author | wiemann <wiemann@929543f6-e4f2-0310-98a6-ba3bd3dd1d04> | 2005-10-11 19:34:52 +0000 |
|---|---|---|
| committer | wiemann <wiemann@929543f6-e4f2-0310-98a6-ba3bd3dd1d04> | 2005-10-11 19:34:52 +0000 |
| commit | aea07799ca44170f123876f194d2dbb5d69d9ce4 (patch) | |
| tree | ab5844ffa731798ce2eb92d7bb0395c2431f540b /docutils/test/test_nodes.py | |
| parent | 1d78b5e1057fc44bebf44cfdeccac95de912ea0c (diff) | |
| download | docutils-aea07799ca44170f123876f194d2dbb5d69d9ce4.tar.gz | |
added Node.deepcopy(); fixed bug with doubly-indirect substitutions
git-svn-id: http://svn.code.sf.net/p/docutils/code/trunk@3935 929543f6-e4f2-0310-98a6-ba3bd3dd1d04
Diffstat (limited to 'docutils/test/test_nodes.py')
| -rwxr-xr-x | docutils/test/test_nodes.py | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/docutils/test/test_nodes.py b/docutils/test/test_nodes.py index 42a64ad49..4471b3a15 100755 --- a/docutils/test/test_nodes.py +++ b/docutils/test/test_nodes.py @@ -242,6 +242,28 @@ class MiscTests(unittest.TestCase): def not_in_testlist(self, x): return x not in self.testlist + 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') + class TreeCopyVisitorTests(unittest.TestCase): |
