Mercurial > wikked
comparison tests/test_resolver.py @ 225:ebb12ff21cb2
Updated unit tests to be able to run.
author | Ludovic Chabant <ludovic@chabant.com> |
---|---|
date | Wed, 12 Mar 2014 23:02:40 -0700 |
parents | ca57fef14d04 |
children | 666a9d0981bb |
comparison
equal
deleted
inserted
replaced
224:d45450a0256a | 225:ebb12ff21cb2 |
---|---|
1 from tests import WikkedTest, format_link, format_include | 1 from tests import WikkedTest, format_link, format_include |
2 from wikked.page import Page | |
3 | 2 |
4 | 3 |
5 class ResolverTest(WikkedTest): | 4 class ResolverTest(WikkedTest): |
6 def testPageInclude(self): | 5 def testPageInclude(self): |
7 self.wiki = self._getWikiFromStructure({ | 6 wiki = self._getWikiFromStructure({ |
8 'Foo.txt': "A test page.\n{{include: trans-desc}}\n", | 7 '/foo.txt': "A test page.\n{{include: trans-desc}}\n", |
9 'Trans Desc.txt': "BLAH\n" | 8 '/trans-desc.txt': "BLAH\n" |
10 }) | 9 }) |
11 foo = Page(self.wiki, 'foo') | 10 foo = wiki.getPage('/foo') |
12 self.assertEqual({'include': ['trans-desc']}, foo._getLocalMeta()) | 11 self.assertEqual({'include': ['trans-desc']}, foo.getLocalMeta()) |
13 self.assertEqual( | 12 self.assertEqual( |
14 "A test page.\n%s" % format_include('trans-desc'), | 13 "A test page.\n%s" % format_include('trans-desc'), |
15 foo._getFormattedText()) | 14 foo.getFormattedText()) |
16 self.assertEqual("A test page.\nBLAH", foo.text) | 15 self.assertEqual("A test page.\nBLAH", foo.text) |
17 | 16 |
18 def testPageIncludeWithMeta(self): | 17 def testPageIncludeWithMeta(self): |
19 self.wiki = self._getWikiFromStructure({ | 18 wiki = self._getWikiFromStructure({ |
20 'Foo.txt': "A test page.\n{{include: trans-desc}}\n", | 19 '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}}" | 20 'trans-desc.txt': "BLAH: [[Somewhere]]\n{{bar: 42}}\n{{__secret: love}}\n{{+given: hope}}" |
22 }) | 21 }) |
23 foo = Page(self.wiki, 'foo') | 22 foo = wiki.getPage('/foo') |
24 self.assertEqual([], foo._getLocalLinks()) | 23 self.assertEqual([], foo.getLocalLinks()) |
25 self.assertEqual({'include': ['trans-desc']}, foo._getLocalMeta()) | 24 self.assertEqual({'include': ['trans-desc']}, foo.getLocalMeta()) |
26 self.assertEqual( | 25 self.assertEqual( |
27 "A test page.\n%s" % format_include('trans-desc'), | 26 "A test page.\n%s" % format_include('trans-desc'), |
28 foo._getFormattedText()) | 27 foo.getFormattedText()) |
29 self.assertEqual( | 28 self.assertEqual( |
30 "A test page.\nBLAH: %s\n\n" % format_link('Somewhere', 'somewhere', True), | 29 "A test page.\nBLAH: %s\n\n" % format_link('Somewhere', '/Somewhere', True), |
31 foo.text) | 30 foo.text) |
32 self.assertEqual(['somewhere'], foo.links) | 31 self.assertEqual(['/Somewhere'], foo.links) |
33 self.assertEqual({'bar': ['42'], 'given': ['hope'], 'include': ['trans-desc']}, foo.meta) | 32 self.assertEqual({'bar': ['42'], 'given': ['hope'], 'include': ['trans-desc']}, foo.getMeta()) |
34 | 33 |
35 def testPageIncludeWithNamedTemplating(self): | 34 def testPageIncludeWithNamedTemplating(self): |
36 self.wiki = self._getWikiFromStructure({ | 35 wiki = self._getWikiFromStructure({ |
37 'Foo.txt': "A test page.\n{{include: greeting|name=Dave|what=drink}}\n", | 36 'foo.txt': "A test page.\n{{include: greeting|name=Dave|what=drink}}\n", |
38 'Greeting.txt': "Hello {{name}}, would you like a {{what}}?" | 37 'greeting.txt': "Hello {{name}}, would you like a {{what}}?" |
39 }) | 38 }) |
40 foo = Page(self.wiki, 'foo') | 39 foo = wiki.getPage('/foo') |
41 self.assertEqual( | 40 self.assertEqual( |
42 "A test page.\n%s" % format_include('greeting', 'name=Dave|what=drink'), | 41 "A test page.\n%s" % format_include( |
43 foo._getFormattedText()) | 42 'greeting', |
43 '<div class="wiki-param" data-name="name">Dave</div><div class="wiki-param" data-name="what">drink</div>'), | |
44 foo.getFormattedText()) | |
44 self.assertEqual("A test page.\nHello Dave, would you like a drink?", foo.text) | 45 self.assertEqual("A test page.\nHello Dave, would you like a drink?", foo.text) |
45 | 46 |
46 def testPageIncludeWithNumberedTemplating(self): | 47 def testPageIncludeWithNumberedTemplating(self): |
47 self.wiki = self._getWikiFromStructure({ | 48 wiki = self._getWikiFromStructure({ |
48 'Foo.txt': "A test page.\n{{include: greeting|Dave|Roger|Tom}}\n", | 49 'foo.txt': "A test page.\n{{include: greeting|Dave|Roger|Tom}}\n", |
49 'Greeting.txt': "Hello {{__args[0]}}, {{__args[1]}} and {{__args[2]}}." | 50 'greeting.txt': "Hello {{__args[0]}}, {{__args[1]}} and {{__args[2]}}." |
50 }) | 51 }) |
51 foo = Page(self.wiki, 'foo') | 52 foo = wiki.getPage('/foo') |
52 self.assertEqual( | 53 self.assertEqual( |
53 "A test page.\n%s" % format_include('greeting', 'Dave|Roger|Tom'), | 54 "A test page.\n%s" % format_include( |
54 foo._getFormattedText()) | 55 'greeting', |
56 '<div class="wiki-param" data-name="">Dave</div><div class="wiki-param" data-name="">Roger</div><div class="wiki-param" data-name="">Tom</div>'), | |
57 foo.getFormattedText()) | |
55 self.assertEqual("A test page.\nHello Dave, Roger and Tom.", foo.text) | 58 self.assertEqual("A test page.\nHello Dave, Roger and Tom.", foo.text) |
56 | 59 |
57 def testIncludeWithPageReferenceTemplating(self): | 60 def testIncludeWithPageReferenceTemplating(self): |
58 self.wiki =self._getWikiFromStructure({ | 61 wiki =self._getWikiFromStructure({ |
59 'SelfRef.txt': "Here is {{read_url(__page.url, __page.title)}}!", | 62 'selfref.txt': "Here is {{read_url(__page.url, __page.title)}}!", |
60 'Foo.txt': "Hello here.\n{{include: selfref}}\n" | 63 'foo.txt': "Hello here.\n{{include: selfref}}\n" |
61 }) | 64 }) |
62 foo = Page(self.wiki, 'foo') | 65 foo = wiki.getPage('/foo') |
63 self.assertEqual( | 66 self.assertEqual( |
64 'Hello here.\nHere is <a class="wiki-link" data-wiki-url="foo">Foo</a>!', | 67 'Hello here.\nHere is <a class="wiki-link" data-wiki-url="/foo">foo</a>!', |
65 foo.text | 68 foo.text |
66 ) | 69 ) |
67 | 70 |
68 def testGivenOnlyInclude(self): | 71 def testGivenOnlyInclude(self): |
69 self.wiki = self._getWikiFromStructure({ | 72 wiki = self._getWikiFromStructure({ |
70 'Base.txt': "The base page.\n{{include: Template 1}}", | 73 'Base.txt': "The base page.\n{{include: Template 1}}", |
71 'Template 1.txt': "TEMPLATE!\n{{+include: Template 2}}", | 74 'Template 1.txt': "TEMPLATE!\n{{+include: Template 2}}", |
72 'Template 2.txt': "MORE TEMPLATE!" | 75 'Template 2.txt': "MORE TEMPLATE!" |
73 }) | 76 }) |
74 tpl1 = Page(self.wiki, 'template-1') | 77 tpl1 = wiki.getPage('/Template 1') |
75 self.assertEqual( | 78 self.assertEqual( |
76 "TEMPLATE!\n%s" % format_include('template-2', mod='+'), | 79 "TEMPLATE!\n%s" % format_include('Template 2', mod='+'), |
77 tpl1._getFormattedText()) | 80 tpl1.getFormattedText()) |
78 self.assertEqual("TEMPLATE!\n", tpl1.text) | 81 self.assertEqual("TEMPLATE!\n", tpl1.text) |
79 base = Page(self.wiki, 'base') | 82 base = wiki.getPage('/Base') |
80 self.assertEqual("The base page.\nTEMPLATE!\nMORE TEMPLATE!", base.text) | 83 self.assertEqual("The base page.\nTEMPLATE!\nMORE TEMPLATE!", base.text) |
81 | 84 |
82 def testDoublePageIncludeWithMeta(self): | 85 def testDoublePageIncludeWithMeta(self): |
83 return | 86 return |
84 self.wiki = self._getWikiFromStructure({ | 87 wiki = self._getWikiFromStructure({ |
85 'Base.txt': "The base page.\n{{include: Template 1}}", | 88 'Base.txt': "The base page.\n{{include: Template 1}}", |
86 'Wrong.txt': "{{include: Template 2}}", | 89 'Wrong.txt': "{{include: Template 2}}", |
87 'Template 1.txt': "{{foo: bar}}\n{{+category: blah}}\n{{+include: Template 2}}\n{{__secret1: ssh}}", | 90 'Template 1.txt': "{{foo: bar}}\n{{+category: blah}}\n{{+include: Template 2}}\n{{__secret1: ssh}}", |
88 'Template 2.txt': "{{+category: yolo}}", | 91 'Template 2.txt': "{{+category: yolo}}", |
89 'Query 1.txt': "{{query: category=yolo}}", | 92 'Query 1.txt': "{{query: category=yolo}}", |
90 'Query 2.txt': "{{query: category=blah}}" | 93 'Query 2.txt': "{{query: category=blah}}" |
91 }) | 94 }) |
92 base = Page(self.wiki, 'base') | 95 base = wiki.getPage('/Base') |
93 self.assertEqual({ | 96 self.assertEqual({ |
94 'foo': ['bar'], | 97 'foo': ['bar'], |
95 'category': ['blah', 'yolo'] | 98 'category': ['blah', 'yolo'] |
96 }, base.meta) | 99 }, base.getMeta()) |
97 tpl1 = Page(self.wiki, 'template-1') | 100 tpl1 = wiki.getPage('/Template 1') |
98 self.assertEqual({ | 101 self.assertEqual({ |
99 'foo': ['bar'], | 102 'foo': ['bar'], |
100 '+category': ['blah'], | 103 '+category': ['blah'], |
101 '+include': ['template-2'], | 104 '+include': ['Template 1'], |
102 '__secret': ['ssh'] | 105 '__secret': ['ssh'] |
103 }, tpl1.meta) | 106 }, tpl1.getMeta()) |
104 self.assertEqual( | 107 self.assertEqual( |
105 "\n\n%s\n\n" % format_include('template-2'), | 108 "\n\n%s\n\n" % format_include('/Template 2'), |
106 tpl1.text) | 109 tpl1.text) |
107 q1 = Page(self.wiki, 'query-1') | 110 q1 = wiki.getPage('query-1') |
108 self.assertEqual( | 111 self.assertEqual( |
109 "<ul>\n<li>%s</li>\n<li>%s</li>\n</ul>" % (format_link('Base', 'base'), format_link('Wrong', 'wrong')), | 112 "<ul>\n<li>%s</li>\n<li>%s</li>\n</ul>" % (format_link('Base', '/Base'), format_link('Wrong', '/Wrong')), |
110 q1.text) | 113 q1.text) |
111 q2 = Page(self.wiki, 'query-2') | 114 q2 = wiki.getPage('query-2') |
112 self.assertEqual( | 115 self.assertEqual( |
113 "<ul>\n<li>%s</li>\n</ul>" % format_link('Base', 'base'), | 116 "<ul>\n<li>%s</li>\n</ul>" % format_link('Base', '/Base'), |
114 q2.text) | 117 q2.text) |
115 | 118 |