mirror of
https://github.com/sphinx-doc/sphinx.git
synced 2025-02-25 18:55:22 -06:00
added more test coverage.
This commit is contained in:
parent
248c01af3e
commit
75ae087f7a
@ -21,7 +21,7 @@ class CombinedHtmlDiff(object):
|
|||||||
next = next[2:]
|
next = next[2:]
|
||||||
new_text = []
|
new_text = []
|
||||||
start = 0
|
start = 0
|
||||||
for match in highlight_regex.finditer(next):
|
for match in self.highlight_regex.finditer(next):
|
||||||
new_text.append(text[start:match.start()])
|
new_text.append(text[start:match.start()])
|
||||||
new_text.append('<%s>' % tag)
|
new_text.append('<%s>' % tag)
|
||||||
new_text.append(text[match.start():match.end()])
|
new_text.append(text[match.start():match.end()])
|
||||||
@ -30,7 +30,7 @@ class CombinedHtmlDiff(object):
|
|||||||
new_text.append(text[start:])
|
new_text.append(text[start:])
|
||||||
return ''.join(new_text)
|
return ''.join(new_text)
|
||||||
|
|
||||||
def _handle_line(line, next=None):
|
def _handle_line(self, line, next=None):
|
||||||
prefix = line[0]
|
prefix = line[0]
|
||||||
text = line[2:]
|
text = line[2:]
|
||||||
|
|
||||||
|
@ -42,6 +42,7 @@ class SQLAlchemyStorage(StorageBackend):
|
|||||||
session = Session()
|
session = Session()
|
||||||
|
|
||||||
if node_id and proposal:
|
if node_id and proposal:
|
||||||
|
node = session.query(Node).filter(Node.id == node_id).one()
|
||||||
differ = CombinedHtmlDiff()
|
differ = CombinedHtmlDiff()
|
||||||
proposal_diff = differ.make_html(node.source, proposal)
|
proposal_diff = differ.make_html(node.source, proposal)
|
||||||
else:
|
else:
|
||||||
|
@ -59,7 +59,9 @@ def search_adapter_helper(adapter):
|
|||||||
assert len(results) == 1, \
|
assert len(results) == 1, \
|
||||||
'%s search adapter returned %s search result(s), should have been 1'\
|
'%s search adapter returned %s search result(s), should have been 1'\
|
||||||
% (adapter, len(results))
|
% (adapter, len(results))
|
||||||
|
# Make sure it works through the WebSupport API
|
||||||
|
html = support.get_search_results(u'SomeLongRandomWord')
|
||||||
|
|
||||||
|
|
||||||
def test_xapian():
|
def test_xapian():
|
||||||
# Don't run tests if xapian is not installed.
|
# Don't run tests if xapian is not installed.
|
||||||
|
@ -14,7 +14,9 @@ from StringIO import StringIO
|
|||||||
|
|
||||||
from sphinx.websupport import WebSupport
|
from sphinx.websupport import WebSupport
|
||||||
from sphinx.websupport.errors import *
|
from sphinx.websupport.errors import *
|
||||||
from sphinx.websupport.comments.sqlalchemystorage import Session
|
from sphinx.websupport.comments.differ import CombinedHtmlDiff
|
||||||
|
from sphinx.websupport.comments.sqlalchemystorage import Session, \
|
||||||
|
SQLAlchemyStorage
|
||||||
from sphinx.websupport.comments.db import Node
|
from sphinx.websupport.comments.db import Node
|
||||||
from util import *
|
from util import *
|
||||||
|
|
||||||
@ -25,6 +27,10 @@ except ImportError:
|
|||||||
wraps = lambda f: (lambda w: w)
|
wraps = lambda f: (lambda w: w)
|
||||||
|
|
||||||
|
|
||||||
|
default_settings = {'outdir': os.path.join(test_root, 'websupport'),
|
||||||
|
'status': StringIO(),
|
||||||
|
'warning': StringIO()}
|
||||||
|
|
||||||
def teardown_module():
|
def teardown_module():
|
||||||
(test_root / 'generated').rmtree(True)
|
(test_root / 'generated').rmtree(True)
|
||||||
(test_root / 'websupport').rmtree(True)
|
(test_root / 'websupport').rmtree(True)
|
||||||
@ -32,9 +38,7 @@ def teardown_module():
|
|||||||
|
|
||||||
def with_support(*args, **kwargs):
|
def with_support(*args, **kwargs):
|
||||||
"""Make a WebSupport object and pass it the test."""
|
"""Make a WebSupport object and pass it the test."""
|
||||||
settings = {'outdir': os.path.join(test_root, 'websupport'),
|
settings = default_settings.copy()
|
||||||
'status': StringIO(),
|
|
||||||
'warning': StringIO()}
|
|
||||||
settings.update(kwargs)
|
settings.update(kwargs)
|
||||||
|
|
||||||
def generator(func):
|
def generator(func):
|
||||||
@ -104,8 +108,17 @@ def test_comments(support):
|
|||||||
assert len(children) == 1
|
assert len(children) == 1
|
||||||
assert children[0]['text'] == 'Child test comment'
|
assert children[0]['text'] == 'Child test comment'
|
||||||
|
|
||||||
|
|
||||||
|
@with_support()
|
||||||
|
def test_voting(support):
|
||||||
|
session = Session()
|
||||||
|
nodes = session.query(Node).all()
|
||||||
|
node = nodes[0]
|
||||||
|
|
||||||
|
comment = support.get_comments(str(node.id))['comments'][0]
|
||||||
|
|
||||||
def check_rating(val):
|
def check_rating(val):
|
||||||
data = support.get_comments(str(first_node.id))
|
data = support.get_comments(str(node.id))
|
||||||
comment = data['comments'][0]
|
comment = data['comments'][0]
|
||||||
assert comment['rating'] == val, '%s != %s' % (comment['rating'], val)
|
assert comment['rating'] == val, '%s != %s' % (comment['rating'], val)
|
||||||
|
|
||||||
@ -124,6 +137,29 @@ def test_comments(support):
|
|||||||
|
|
||||||
# Make sure past voting data is associated with comments when they are
|
# Make sure past voting data is associated with comments when they are
|
||||||
# fetched.
|
# fetched.
|
||||||
data = support.get_comments(str(first_node.id), username='user_two')
|
data = support.get_comments(str(node.id), username='user_two')
|
||||||
comment = data['comments'][0]
|
comment = data['comments'][0]
|
||||||
assert comment['vote'] == 1, '%s != 1' % comment['vote']
|
assert comment['vote'] == 1, '%s != 1' % comment['vote']
|
||||||
|
|
||||||
|
@with_support()
|
||||||
|
def test_proposals(support):
|
||||||
|
session = Session()
|
||||||
|
nodes = session.query(Node).all()
|
||||||
|
node = nodes[0]
|
||||||
|
|
||||||
|
data = support.get_comments(str(node.id))
|
||||||
|
|
||||||
|
source = data['source']
|
||||||
|
proposal = source[:5] + source[10:15] + 'asdf' + source[15:]
|
||||||
|
|
||||||
|
comment = support.add_comment('Proposal comment',
|
||||||
|
node_id=str(node.id),
|
||||||
|
proposal=proposal)
|
||||||
|
|
||||||
|
def test_differ():
|
||||||
|
differ = CombinedHtmlDiff()
|
||||||
|
source = 'Lorem ipsum dolor sit amet,\nconsectetur adipisicing elit,\n' \
|
||||||
|
'sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.'
|
||||||
|
prop = 'Lorem dolor sit amet,\nconsectetur nihil adipisicing elit,\n' \
|
||||||
|
'sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.'
|
||||||
|
differ.make_html(source, prop)
|
||||||
|
Loading…
Reference in New Issue
Block a user