mirror of
https://github.com/sphinx-doc/sphinx.git
synced 2025-02-25 18:55:22 -06:00
Added a test to make sure pickled doctrees still have their uids
This commit is contained in:
parent
24979fbde1
commit
07db8c03d2
@ -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))
|
||||
|
Loading…
Reference in New Issue
Block a user