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