Mercurial > wikked
diff tests/test_page.py @ 54:9dfbc2a40b71
Formatter changes:
- Refactored `PageResolver` with something that makes more sense.
- Fixed some bugs with advanced include/meta scenarios.
- Added more tests.
author | Ludovic Chabant <ludovic@chabant.com> |
---|---|
date | Sat, 02 Feb 2013 20:16:54 -0800 |
parents | c4e999f55ba9 |
children | 494f3c4660ed |
line wrap: on
line diff
--- a/tests/test_page.py Thu Jan 31 22:41:07 2013 -0800 +++ b/tests/test_page.py Sat Feb 02 20:16:54 2013 -0800 @@ -1,4 +1,4 @@ -from tests import WikkedTest +from tests import WikkedTest, format_link, format_include from mock import MockFileSystem from wikked.page import Page @@ -60,7 +60,11 @@ page = Page(self.wiki, 'test_links') self.assertEqual('test_links', page.url) self.assertEqual("Follow a link to the [[Sandbox]]. Or to [[this page|Other Sandbox]].", page.raw_text) - self.assertEqual("Follow a link to the <a class=\"wiki-link\" data-wiki-url=\"sandbox\">Sandbox</a>. Or to <a class=\"wiki-link missing\" data-wiki-url=\"other-sandbox\">this page</a>.", page.formatted_text) + self.assertEqual( + "Follow a link to the %s. Or to %s." % ( + format_link('Sandbox', 'sandbox'), + format_link('this page', 'other-sandbox', True)), + page.formatted_text) self.assertEqual(set(['sandbox', 'other-sandbox']), set(page.local_links)) def testPageRelativeOutLinks(self): @@ -88,7 +92,9 @@ }) foo = Page(self.wiki, 'foo') self.assertEqual(['trans-desc'], foo.local_includes) - self.assertEqual("A test page.\n<div class=\"wiki-include\" data-wiki-url=\"trans-desc\"></div>\n", foo.formatted_text) + self.assertEqual( + "A test page.\n%s" % format_include('trans-desc'), + foo.formatted_text) self.assertEqual("A test page.\nBLAH\n\n", foo.text) def testPageIncludeWithMeta(self): @@ -100,8 +106,12 @@ self.assertEqual(['trans-desc'], foo.local_includes) self.assertEqual([], foo.local_links) self.assertEqual({'include': 'trans-desc'}, foo.local_meta) - self.assertEqual("A test page.\n<div class=\"wiki-include\" data-wiki-url=\"trans-desc\"></div>\n", foo.formatted_text) - self.assertEqual("A test page.\nBLAH: <a class=\"wiki-link missing\" data-wiki-url=\"somewhere\">Somewhere</a>\n\n\n\n", foo.text) + self.assertEqual( + "A test page.\n%s" % format_include('trans-desc'), + foo.formatted_text) + self.assertEqual( + "A test page.\nBLAH: %s\n\n\n\n" % format_link('Somewhere', 'somewhere', True), + foo.text) self.assertEqual(['trans-desc'], foo.all_includes) self.assertEqual(['somewhere'], foo.all_links) self.assertEqual({'bar': '42', 'given': 'hope', 'include': 'trans-desc'}, foo.all_meta) @@ -112,6 +122,56 @@ 'Greeting.txt': "Hello {{name}}, would you like a {{what}}?" }) foo = Page(self.wiki, 'foo') - self.assertEqual("A test page.\n<div class=\"wiki-include\" data-wiki-url=\"greeting\">name=Dave|what=drink</div>\n", foo.formatted_text) + self.assertEqual( + "A test page.\n%s" % format_include('greeting', 'name=Dave|what=drink'), + foo.formatted_text) self.assertEqual("A test page.\nHello Dave, would you like a drink?\n", foo.text) + def testGivenOnlyInclude(self): + self.wiki = self._getWikiFromStructure({ + 'Base.txt': "The base page.\n{{include: Template 1}}", + 'Template 1.txt': "TEMPLATE!\n{{+include: Template 2}}", + 'Template 2.txt': "MORE TEMPLATE!" + }) + tpl1 = Page(self.wiki, 'template-1') + self.assertEqual( + "TEMPLATE!\n%s" % format_include('template-2', mod='+'), + tpl1.formatted_text) + self.assertEqual("TEMPLATE!\n\n", tpl1.text) + base = Page(self.wiki, 'base') + self.assertEqual("The base page.\nTEMPLATE!\nMORE TEMPLATE!\n\n", base.text) + + def testDoublePageIncludeWithMeta(self): + return + self.wiki = self._getWikiFromStructure({ + 'Base.txt': "The base page.\n{{include: Template 1}}", + 'Wrong.txt': "{{include: Template 2}}", + 'Template 1.txt': "{{foo: bar}}\n{{+category: blah}}\n{{+include: Template 2}}\n{{__secret1: ssh}}", + 'Template 2.txt': "{{+category: yolo}}", + 'Query 1.txt': "{{query: category=yolo}}", + 'Query 2.txt': "{{query: category=blah}}" + }) + base = Page(self.wiki, 'base') + self.assertEqual({ + 'foo': 'bar', + 'category': ['blah', 'yolo'] + }, base.all_meta) + tpl1 = Page(self.wiki, 'template-1') + self.assertEqual({ + 'foo': 'bar', + '+category': 'blah', + '+include': 'template-2', + '__secret': 'ssh' + }, tpl1.all_meta) + self.assertEqual( + "\n\n%s\n\n" % format_include('template-2'), + tpl1.text) + q1 = Page(self.wiki, 'query-1') + self.assertEqual( + "<ul>\n<li>%s</li>\n<li>%s</li>\n</ul>" % (format_link('Base', 'base'), format_link('Wrong', 'wrong')), + q1.text) + q2 = Page(self.wiki, 'query-2') + self.assertEqual( + "<ul>\n<li>%s</li>\n</ul>" % format_link('Base', 'base'), + q2.text) +