summaryrefslogtreecommitdiff
path: root/tests/test_versioning.py
diff options
context:
space:
mode:
authorDaniel Neuhäuser <ich@danielneuhaeuser.de>2010-08-14 11:11:50 +0200
committerDaniel Neuhäuser <ich@danielneuhaeuser.de>2010-08-14 11:11:50 +0200
commit07db8c03d2fa7eef1cba868adc64a01a88557ddc (patch)
tree6b841acc9693e8d7d339f4e0cd37df7d62d4ca92 /tests/test_versioning.py
parent24979fbde15096d3e39f2cfafdb8d6cba83cb668 (diff)
downloadsphinx-git-07db8c03d2fa7eef1cba868adc64a01a88557ddc.tar.gz
Added a test to make sure pickled doctrees still have their uids
Diffstat (limited to 'tests/test_versioning.py')
-rw-r--r--tests/test_versioning.py17
1 files changed, 17 insertions, 0 deletions
diff --git a/tests/test_versioning.py b/tests/test_versioning.py
index 77306580c..54a48f4ad 100644
--- a/tests/test_versioning.py
+++ b/tests/test_versioning.py
@@ -8,10 +8,14 @@
:copyright: Copyright 2007-2010 by the Sphinx team, see AUTHORS.
:license: BSD, see LICENSE for details.
"""
+import pickle
+
from util import *
from docutils.statemachine import ViewList
+from docutils.parsers.rst.directives.html import MetaBody
+from sphinx import addnodes
from sphinx.versioning import make_diff, add_uids, merge_doctrees
def setup_module():
@@ -50,6 +54,19 @@ def is_paragraph(node):
def test_add_uids():
assert len(original_uids) == 3
+def test_picklablility():
+ # we have to modify the doctree so we can pickle it
+ copy = original.copy()
+ copy.reporter = None
+ copy.transformer = None
+ copy.settings.warning_stream = None
+ copy.settings.env = None
+ copy.settings.record_dependencies = None
+ for metanode in copy.traverse(MetaBody.meta):
+ metanode.__class__ = addnodes.meta
+ loaded = pickle.loads(pickle.dumps(copy, pickle.HIGHEST_PROTOCOL))
+ assert all(getattr(n, 'uid', False) for n in loaded.traverse(is_paragraph))
+
def test_modified():
modified = doctrees['versioning/modified']
new_nodes = list(merge_doctrees(original, modified, is_paragraph))