blob: 9dcba4fe105fbce6b9b8d9fc293bd25772ca5687 [file] [log] [blame]
from datetime import datetime
from nose.tools import assert_equal
from forgeblog import model as M
from forgeblog.tests.unit import BlogTestWithModel
def wrapped(s):
return '<div class="markdown_content"><p>%s</p></div>' % s
class TestHtmlPreview(BlogTestWithModel):
def _make_post(self, text):
post = M.BlogPost()
post.text = text
post.make_slug()
return post
def test_single_long_paragraph(self):
text = ("Lorem ipsum dolor sit amet, consectetur adipisicing elit, "
"sed do eiusmod tempor incididunt ut labore et dolore magna "
"aliqua. Ut enim ad minim veniam, quis nostrud exercitation "
"ullamco laboris nisi ut aliquip ex ea commodo consequat. "
"Duis aute irure dolor in reprehenderit in voluptate velit "
"esse cillum dolore eu fugiat nulla pariatur. Excepteur sint "
"occaecat cupidatat non proident, sunt in culpa qui officia "
"deserunt mollit anim id est laborum.")
assert_equal(self._make_post(text).html_text_preview, wrapped(text))
def test_single_short_paragraph(self):
text = ("Lorem ipsum dolor sit amet, consectetur adipisicing elit, "
"sed do eiusmod tempor incididunt ut labore et dolore magna "
"aliqua. Ut enim ad minim veniam, quis nostrud exercitation "
"ullamco laboris nisi ut aliquip ex ea commodo consequat.")
assert_equal(self._make_post(text).html_text_preview, wrapped(text))
def test_multi_paragraph_short(self):
text = ("Lorem ipsum dolor sit amet, consectetur adipisicing elit, "
"sed do eiusmod tempor incididunt ut labore et dolore magna "
"aliqua."
"\n\n"
"Ut enim ad minim veniam, quis nostrud exercitation "
"ullamco laboris nisi ut aliquip ex ea commodo consequat.")
expected = ('<div class="markdown_content"><p>Lorem ipsum dolor sit '
'amet, consectetur adipisicing elit, sed do eiusmod '
'tempor incididunt ut labore et dolore magna aliqua.</p>\n'
'<p>Ut enim ad minim veniam, quis nostrud exercitation '
'ullamco laboris nisi ut aliquip ex ea commodo '
'consequat.</p></div>')
assert_equal(self._make_post(text).html_text_preview, expected)
def test_multi_paragraph_long(self):
text = ("Lorem ipsum dolor sit amet, consectetur adipisicing elit, "
"sed do eiusmod tempor incididunt ut labore et dolore magna "
"aliqua."
"\n\n"
"Lorem ipsum dolor sit amet, consectetur adipisicing elit, "
"sed do eiusmod tempor incididunt ut labore et dolore magna "
"aliqua. Ut enim ad minim veniam, quis nostrud exercitation "
"ullamco laboris nisi ut aliquip ex ea commodo consequat. "
"Duis aute irure dolor in reprehenderit in voluptate velit "
"esse cillum dolore eu fugiat nulla pariatur. Excepteur sint "
"occaecat cupidatat non proident, sunt in culpa qui officia "
"deserunt mollit anim id est laborum."
"\n\n"
"Ut enim ad minim veniam, quis nostrud exercitation "
"ullamco laboris nisi ut aliquip ex ea commodo consequat.")
now = datetime.utcnow()
expected = ('<div class="markdown_content"><p>Lorem ipsum dolor sit '
'amet, consectetur adipisicing elit, sed do eiusmod '
'tempor incididunt ut labore et dolore magna aliqua.</p>\n'
'<p>Lorem ipsum dolor sit amet, consectetur adipisicing '
'elit, sed do eiusmod tempor incididunt ut labore et '
'dolore magna aliqua. Ut enim ad minim veniam, quis '
'nostrud exercitation ullamco laboris nisi ut aliquip ex '
'ea commodo consequat. Duis aute irure dolor in '
'reprehenderit in voluptate velit esse cillum dolore eu '
'fugiat nulla pariatur. Excepteur sint occaecat cupidatat '
'non proident, sunt in culpa qui officia deserunt mollit '
'anim id est laborum.... '
'<a href="/p/test/blog/%s/%02i/untitled/">read more</a>'
'</p></div>') % (now.year, now.month)
assert_equal(self._make_post(text).html_text_preview, expected)