diff options
author | Daniel Neuhäuser <ich@danielneuhaeuser.de> | 2010-08-14 11:11:50 +0200 |
---|---|---|
committer | Daniel Neuhäuser <ich@danielneuhaeuser.de> | 2010-08-14 11:11:50 +0200 |
commit | 07db8c03d2fa7eef1cba868adc64a01a88557ddc (patch) | |
tree | 6b841acc9693e8d7d339f4e0cd37df7d62d4ca92 /tests/test_versioning.py | |
parent | 24979fbde15096d3e39f2cfafdb8d6cba83cb668 (diff) | |
download | sphinx-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.py | 17 |
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)) |