Mercurial > wikked
comparison tests/test_resolver.py @ 84:ca57fef14d04
Formatter/resolver changes:
- Formatting is done after resolving.
- Resolving includes passing text through the template engine.
- Using Jinja2 for templating now.
- Added unit tests.
author | Ludovic Chabant <ludovic@chabant.com> |
---|---|
date | Wed, 03 Apr 2013 23:30:23 -0700 |
parents | 65f83a9b42f1 |
children | ebb12ff21cb2 |
comparison
equal
deleted
inserted
replaced
83:65f83a9b42f1 | 84:ca57fef14d04 |
---|---|
11 foo = Page(self.wiki, 'foo') | 11 foo = Page(self.wiki, 'foo') |
12 self.assertEqual({'include': ['trans-desc']}, foo._getLocalMeta()) | 12 self.assertEqual({'include': ['trans-desc']}, foo._getLocalMeta()) |
13 self.assertEqual( | 13 self.assertEqual( |
14 "A test page.\n%s" % format_include('trans-desc'), | 14 "A test page.\n%s" % format_include('trans-desc'), |
15 foo._getFormattedText()) | 15 foo._getFormattedText()) |
16 self.assertEqual("A test page.\nBLAH\n\n", foo.text) | 16 self.assertEqual("A test page.\nBLAH", foo.text) |
17 | 17 |
18 def testPageIncludeWithMeta(self): | 18 def testPageIncludeWithMeta(self): |
19 self.wiki = self._getWikiFromStructure({ | 19 self.wiki = self._getWikiFromStructure({ |
20 'Foo.txt': "A test page.\n{{include: trans-desc}}\n", | 20 'Foo.txt': "A test page.\n{{include: trans-desc}}\n", |
21 'Trans Desc.txt': "BLAH: [[Somewhere]]\n{{bar: 42}}\n{{__secret: love}}\n{{+given: hope}}" | 21 'Trans Desc.txt': "BLAH: [[Somewhere]]\n{{bar: 42}}\n{{__secret: love}}\n{{+given: hope}}" |
25 self.assertEqual({'include': ['trans-desc']}, foo._getLocalMeta()) | 25 self.assertEqual({'include': ['trans-desc']}, foo._getLocalMeta()) |
26 self.assertEqual( | 26 self.assertEqual( |
27 "A test page.\n%s" % format_include('trans-desc'), | 27 "A test page.\n%s" % format_include('trans-desc'), |
28 foo._getFormattedText()) | 28 foo._getFormattedText()) |
29 self.assertEqual( | 29 self.assertEqual( |
30 "A test page.\nBLAH: %s\n\n\n\n" % format_link('Somewhere', 'somewhere', True), | 30 "A test page.\nBLAH: %s\n\n" % format_link('Somewhere', 'somewhere', True), |
31 foo.text) | 31 foo.text) |
32 self.assertEqual(['somewhere'], foo.links) | 32 self.assertEqual(['somewhere'], foo.links) |
33 self.assertEqual({'bar': ['42'], 'given': ['hope'], 'include': ['trans-desc']}, foo.meta) | 33 self.assertEqual({'bar': ['42'], 'given': ['hope'], 'include': ['trans-desc']}, foo.meta) |
34 | 34 |
35 def testPageIncludeWithNamedTemplating(self): | 35 def testPageIncludeWithNamedTemplating(self): |
39 }) | 39 }) |
40 foo = Page(self.wiki, 'foo') | 40 foo = Page(self.wiki, 'foo') |
41 self.assertEqual( | 41 self.assertEqual( |
42 "A test page.\n%s" % format_include('greeting', 'name=Dave|what=drink'), | 42 "A test page.\n%s" % format_include('greeting', 'name=Dave|what=drink'), |
43 foo._getFormattedText()) | 43 foo._getFormattedText()) |
44 self.assertEqual("A test page.\nHello Dave, would you like a drink?\n", foo.text) | 44 self.assertEqual("A test page.\nHello Dave, would you like a drink?", foo.text) |
45 | 45 |
46 def testPageIncludeWithNumberedTemplating(self): | 46 def testPageIncludeWithNumberedTemplating(self): |
47 self.wiki = self._getWikiFromStructure({ | 47 self.wiki = self._getWikiFromStructure({ |
48 'Foo.txt': "A test page.\n{{include: greeting|Dave|Roger|Tom}}\n", | 48 'Foo.txt': "A test page.\n{{include: greeting|Dave|Roger|Tom}}\n", |
49 'Greeting.txt': "Hello {{1}}, {{2}} and {{3}}." | 49 'Greeting.txt': "Hello {{__args[0]}}, {{__args[1]}} and {{__args[2]}}." |
50 }) | 50 }) |
51 foo = Page(self.wiki, 'foo') | 51 foo = Page(self.wiki, 'foo') |
52 self.assertEqual( | 52 self.assertEqual( |
53 "A test page.\n%s" % format_include('greeting', 'Dave|Roger|Tom'), | 53 "A test page.\n%s" % format_include('greeting', 'Dave|Roger|Tom'), |
54 foo._getFormattedText()) | 54 foo._getFormattedText()) |
55 self.assertEqual("A test page.\nHello Dave, Roger and Tom.\n", foo.text) | 55 self.assertEqual("A test page.\nHello Dave, Roger and Tom.", foo.text) |
56 | |
57 def testIncludeWithPageReferenceTemplating(self): | |
58 self.wiki =self._getWikiFromStructure({ | |
59 'SelfRef.txt': "Here is {{read_url(__page.url, __page.title)}}!", | |
60 'Foo.txt': "Hello here.\n{{include: selfref}}\n" | |
61 }) | |
62 foo = Page(self.wiki, 'foo') | |
63 self.assertEqual( | |
64 'Hello here.\nHere is <a class="wiki-link" data-wiki-url="foo">Foo</a>!', | |
65 foo.text | |
66 ) | |
56 | 67 |
57 def testGivenOnlyInclude(self): | 68 def testGivenOnlyInclude(self): |
58 self.wiki = self._getWikiFromStructure({ | 69 self.wiki = self._getWikiFromStructure({ |
59 'Base.txt': "The base page.\n{{include: Template 1}}", | 70 'Base.txt': "The base page.\n{{include: Template 1}}", |
60 'Template 1.txt': "TEMPLATE!\n{{+include: Template 2}}", | 71 'Template 1.txt': "TEMPLATE!\n{{+include: Template 2}}", |
62 }) | 73 }) |
63 tpl1 = Page(self.wiki, 'template-1') | 74 tpl1 = Page(self.wiki, 'template-1') |
64 self.assertEqual( | 75 self.assertEqual( |
65 "TEMPLATE!\n%s" % format_include('template-2', mod='+'), | 76 "TEMPLATE!\n%s" % format_include('template-2', mod='+'), |
66 tpl1._getFormattedText()) | 77 tpl1._getFormattedText()) |
67 self.assertEqual("TEMPLATE!\n\n", tpl1.text) | 78 self.assertEqual("TEMPLATE!\n", tpl1.text) |
68 base = Page(self.wiki, 'base') | 79 base = Page(self.wiki, 'base') |
69 self.assertEqual("The base page.\nTEMPLATE!\nMORE TEMPLATE!\n\n", base.text) | 80 self.assertEqual("The base page.\nTEMPLATE!\nMORE TEMPLATE!", base.text) |
70 | 81 |
71 def testDoublePageIncludeWithMeta(self): | 82 def testDoublePageIncludeWithMeta(self): |
72 return | 83 return |
73 self.wiki = self._getWikiFromStructure({ | 84 self.wiki = self._getWikiFromStructure({ |
74 'Base.txt': "The base page.\n{{include: Template 1}}", | 85 'Base.txt': "The base page.\n{{include: Template 1}}", |
78 'Query 1.txt': "{{query: category=yolo}}", | 89 'Query 1.txt': "{{query: category=yolo}}", |
79 'Query 2.txt': "{{query: category=blah}}" | 90 'Query 2.txt': "{{query: category=blah}}" |
80 }) | 91 }) |
81 base = Page(self.wiki, 'base') | 92 base = Page(self.wiki, 'base') |
82 self.assertEqual({ | 93 self.assertEqual({ |
83 'foo': ['bar'], | 94 'foo': ['bar'], |
84 'category': ['blah', 'yolo'] | 95 'category': ['blah', 'yolo'] |
85 }, base.meta) | 96 }, base.meta) |
86 tpl1 = Page(self.wiki, 'template-1') | 97 tpl1 = Page(self.wiki, 'template-1') |
87 self.assertEqual({ | 98 self.assertEqual({ |
88 'foo': ['bar'], | 99 'foo': ['bar'], |