Mercurial > wikked
annotate tests/test_resolver.py @ 83:65f83a9b42f1
Added support for numbered template parameters.
Moved resolver code into its own file.
Added unit tests.
author | Ludovic Chabant <ludovic@chabant.com> |
---|---|
date | Sun, 24 Mar 2013 22:06:50 -0700 |
parents | |
children | ca57fef14d04 |
rev | line source |
---|---|
83
65f83a9b42f1
Added support for numbered template parameters.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
1 from tests import WikkedTest, format_link, format_include |
65f83a9b42f1
Added support for numbered template parameters.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
2 from wikked.page import Page |
65f83a9b42f1
Added support for numbered template parameters.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
3 |
65f83a9b42f1
Added support for numbered template parameters.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
4 |
65f83a9b42f1
Added support for numbered template parameters.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
5 class ResolverTest(WikkedTest): |
65f83a9b42f1
Added support for numbered template parameters.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
6 def testPageInclude(self): |
65f83a9b42f1
Added support for numbered template parameters.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
7 self.wiki = self._getWikiFromStructure({ |
65f83a9b42f1
Added support for numbered template parameters.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
8 'Foo.txt': "A test page.\n{{include: trans-desc}}\n", |
65f83a9b42f1
Added support for numbered template parameters.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
9 'Trans Desc.txt': "BLAH\n" |
65f83a9b42f1
Added support for numbered template parameters.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
10 }) |
65f83a9b42f1
Added support for numbered template parameters.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
11 foo = Page(self.wiki, 'foo') |
65f83a9b42f1
Added support for numbered template parameters.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
12 self.assertEqual({'include': ['trans-desc']}, foo._getLocalMeta()) |
65f83a9b42f1
Added support for numbered template parameters.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
13 self.assertEqual( |
65f83a9b42f1
Added support for numbered template parameters.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
14 "A test page.\n%s" % format_include('trans-desc'), |
65f83a9b42f1
Added support for numbered template parameters.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
15 foo._getFormattedText()) |
65f83a9b42f1
Added support for numbered template parameters.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
16 self.assertEqual("A test page.\nBLAH\n\n", foo.text) |
65f83a9b42f1
Added support for numbered template parameters.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
17 |
65f83a9b42f1
Added support for numbered template parameters.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
18 def testPageIncludeWithMeta(self): |
65f83a9b42f1
Added support for numbered template parameters.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
19 self.wiki = self._getWikiFromStructure({ |
65f83a9b42f1
Added support for numbered template parameters.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
20 'Foo.txt': "A test page.\n{{include: trans-desc}}\n", |
65f83a9b42f1
Added support for numbered template parameters.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
21 'Trans Desc.txt': "BLAH: [[Somewhere]]\n{{bar: 42}}\n{{__secret: love}}\n{{+given: hope}}" |
65f83a9b42f1
Added support for numbered template parameters.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
22 }) |
65f83a9b42f1
Added support for numbered template parameters.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
23 foo = Page(self.wiki, 'foo') |
65f83a9b42f1
Added support for numbered template parameters.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
24 self.assertEqual([], foo._getLocalLinks()) |
65f83a9b42f1
Added support for numbered template parameters.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
25 self.assertEqual({'include': ['trans-desc']}, foo._getLocalMeta()) |
65f83a9b42f1
Added support for numbered template parameters.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
26 self.assertEqual( |
65f83a9b42f1
Added support for numbered template parameters.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
27 "A test page.\n%s" % format_include('trans-desc'), |
65f83a9b42f1
Added support for numbered template parameters.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
28 foo._getFormattedText()) |
65f83a9b42f1
Added support for numbered template parameters.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
29 self.assertEqual( |
65f83a9b42f1
Added support for numbered template parameters.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
30 "A test page.\nBLAH: %s\n\n\n\n" % format_link('Somewhere', 'somewhere', True), |
65f83a9b42f1
Added support for numbered template parameters.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
31 foo.text) |
65f83a9b42f1
Added support for numbered template parameters.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
32 self.assertEqual(['somewhere'], foo.links) |
65f83a9b42f1
Added support for numbered template parameters.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
33 self.assertEqual({'bar': ['42'], 'given': ['hope'], 'include': ['trans-desc']}, foo.meta) |
65f83a9b42f1
Added support for numbered template parameters.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
34 |
65f83a9b42f1
Added support for numbered template parameters.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
35 def testPageIncludeWithNamedTemplating(self): |
65f83a9b42f1
Added support for numbered template parameters.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
36 self.wiki = self._getWikiFromStructure({ |
65f83a9b42f1
Added support for numbered template parameters.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
37 'Foo.txt': "A test page.\n{{include: greeting|name=Dave|what=drink}}\n", |
65f83a9b42f1
Added support for numbered template parameters.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
38 'Greeting.txt': "Hello {{name}}, would you like a {{what}}?" |
65f83a9b42f1
Added support for numbered template parameters.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
39 }) |
65f83a9b42f1
Added support for numbered template parameters.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
40 foo = Page(self.wiki, 'foo') |
65f83a9b42f1
Added support for numbered template parameters.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
41 self.assertEqual( |
65f83a9b42f1
Added support for numbered template parameters.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
42 "A test page.\n%s" % format_include('greeting', 'name=Dave|what=drink'), |
65f83a9b42f1
Added support for numbered template parameters.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
43 foo._getFormattedText()) |
65f83a9b42f1
Added support for numbered template parameters.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
44 self.assertEqual("A test page.\nHello Dave, would you like a drink?\n", foo.text) |
65f83a9b42f1
Added support for numbered template parameters.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
45 |
65f83a9b42f1
Added support for numbered template parameters.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
46 def testPageIncludeWithNumberedTemplating(self): |
65f83a9b42f1
Added support for numbered template parameters.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
47 self.wiki = self._getWikiFromStructure({ |
65f83a9b42f1
Added support for numbered template parameters.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
48 'Foo.txt': "A test page.\n{{include: greeting|Dave|Roger|Tom}}\n", |
65f83a9b42f1
Added support for numbered template parameters.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
49 'Greeting.txt': "Hello {{1}}, {{2}} and {{3}}." |
65f83a9b42f1
Added support for numbered template parameters.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
50 }) |
65f83a9b42f1
Added support for numbered template parameters.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
51 foo = Page(self.wiki, 'foo') |
65f83a9b42f1
Added support for numbered template parameters.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
52 self.assertEqual( |
65f83a9b42f1
Added support for numbered template parameters.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
53 "A test page.\n%s" % format_include('greeting', 'Dave|Roger|Tom'), |
65f83a9b42f1
Added support for numbered template parameters.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
54 foo._getFormattedText()) |
65f83a9b42f1
Added support for numbered template parameters.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
55 self.assertEqual("A test page.\nHello Dave, Roger and Tom.\n", foo.text) |
65f83a9b42f1
Added support for numbered template parameters.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
56 |
65f83a9b42f1
Added support for numbered template parameters.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
57 def testGivenOnlyInclude(self): |
65f83a9b42f1
Added support for numbered template parameters.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
58 self.wiki = self._getWikiFromStructure({ |
65f83a9b42f1
Added support for numbered template parameters.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
59 'Base.txt': "The base page.\n{{include: Template 1}}", |
65f83a9b42f1
Added support for numbered template parameters.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
60 'Template 1.txt': "TEMPLATE!\n{{+include: Template 2}}", |
65f83a9b42f1
Added support for numbered template parameters.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
61 'Template 2.txt': "MORE TEMPLATE!" |
65f83a9b42f1
Added support for numbered template parameters.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
62 }) |
65f83a9b42f1
Added support for numbered template parameters.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
63 tpl1 = Page(self.wiki, 'template-1') |
65f83a9b42f1
Added support for numbered template parameters.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
64 self.assertEqual( |
65f83a9b42f1
Added support for numbered template parameters.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
65 "TEMPLATE!\n%s" % format_include('template-2', mod='+'), |
65f83a9b42f1
Added support for numbered template parameters.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
66 tpl1._getFormattedText()) |
65f83a9b42f1
Added support for numbered template parameters.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
67 self.assertEqual("TEMPLATE!\n\n", tpl1.text) |
65f83a9b42f1
Added support for numbered template parameters.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
68 base = Page(self.wiki, 'base') |
65f83a9b42f1
Added support for numbered template parameters.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
69 self.assertEqual("The base page.\nTEMPLATE!\nMORE TEMPLATE!\n\n", base.text) |
65f83a9b42f1
Added support for numbered template parameters.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
70 |
65f83a9b42f1
Added support for numbered template parameters.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
71 def testDoublePageIncludeWithMeta(self): |
65f83a9b42f1
Added support for numbered template parameters.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
72 return |
65f83a9b42f1
Added support for numbered template parameters.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
73 self.wiki = self._getWikiFromStructure({ |
65f83a9b42f1
Added support for numbered template parameters.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
74 'Base.txt': "The base page.\n{{include: Template 1}}", |
65f83a9b42f1
Added support for numbered template parameters.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
75 'Wrong.txt': "{{include: Template 2}}", |
65f83a9b42f1
Added support for numbered template parameters.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
76 'Template 1.txt': "{{foo: bar}}\n{{+category: blah}}\n{{+include: Template 2}}\n{{__secret1: ssh}}", |
65f83a9b42f1
Added support for numbered template parameters.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
77 'Template 2.txt': "{{+category: yolo}}", |
65f83a9b42f1
Added support for numbered template parameters.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
78 'Query 1.txt': "{{query: category=yolo}}", |
65f83a9b42f1
Added support for numbered template parameters.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
79 'Query 2.txt': "{{query: category=blah}}" |
65f83a9b42f1
Added support for numbered template parameters.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
80 }) |
65f83a9b42f1
Added support for numbered template parameters.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
81 base = Page(self.wiki, 'base') |
65f83a9b42f1
Added support for numbered template parameters.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
82 self.assertEqual({ |
65f83a9b42f1
Added support for numbered template parameters.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
83 'foo': ['bar'], |
65f83a9b42f1
Added support for numbered template parameters.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
84 'category': ['blah', 'yolo'] |
65f83a9b42f1
Added support for numbered template parameters.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
85 }, base.meta) |
65f83a9b42f1
Added support for numbered template parameters.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
86 tpl1 = Page(self.wiki, 'template-1') |
65f83a9b42f1
Added support for numbered template parameters.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
87 self.assertEqual({ |
65f83a9b42f1
Added support for numbered template parameters.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
88 'foo': ['bar'], |
65f83a9b42f1
Added support for numbered template parameters.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
89 '+category': ['blah'], |
65f83a9b42f1
Added support for numbered template parameters.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
90 '+include': ['template-2'], |
65f83a9b42f1
Added support for numbered template parameters.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
91 '__secret': ['ssh'] |
65f83a9b42f1
Added support for numbered template parameters.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
92 }, tpl1.meta) |
65f83a9b42f1
Added support for numbered template parameters.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
93 self.assertEqual( |
65f83a9b42f1
Added support for numbered template parameters.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
94 "\n\n%s\n\n" % format_include('template-2'), |
65f83a9b42f1
Added support for numbered template parameters.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
95 tpl1.text) |
65f83a9b42f1
Added support for numbered template parameters.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
96 q1 = Page(self.wiki, 'query-1') |
65f83a9b42f1
Added support for numbered template parameters.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
97 self.assertEqual( |
65f83a9b42f1
Added support for numbered template parameters.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
98 "<ul>\n<li>%s</li>\n<li>%s</li>\n</ul>" % (format_link('Base', 'base'), format_link('Wrong', 'wrong')), |
65f83a9b42f1
Added support for numbered template parameters.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
99 q1.text) |
65f83a9b42f1
Added support for numbered template parameters.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
100 q2 = Page(self.wiki, 'query-2') |
65f83a9b42f1
Added support for numbered template parameters.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
101 self.assertEqual( |
65f83a9b42f1
Added support for numbered template parameters.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
102 "<ul>\n<li>%s</li>\n</ul>" % format_link('Base', 'base'), |
65f83a9b42f1
Added support for numbered template parameters.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
103 q2.text) |
65f83a9b42f1
Added support for numbered template parameters.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
104 |