annotate tests/test_page.py @ 64:0b4f4c23770a

Removed specific "include"-related properties from the code and DB. (they can already be accessed via the meta) Fixed a bug with handling includes in queries. Better code in some places in the formatter.
author Ludovic Chabant <ludovic@chabant.com>
date Thu, 07 Feb 2013 22:34:13 -0800
parents 494f3c4660ed
children 9afe4a1dbd1e
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
54
9dfbc2a40b71 Formatter changes:
Ludovic Chabant <ludovic@chabant.com>
parents: 53
diff changeset
1 from tests import WikkedTest, format_link, format_include
51
2733871775cd More unit tests.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
2 from mock import MockFileSystem
2733871775cd More unit tests.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
3 from wikked.page import Page
2733871775cd More unit tests.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
4
2733871775cd More unit tests.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
5
2733871775cd More unit tests.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
6 class PageTest(WikkedTest):
53
c4e999f55ba9 Include changes:
Ludovic Chabant <ludovic@chabant.com>
parents: 51
diff changeset
7 def _getWikiFromStructure(self, structure):
c4e999f55ba9 Include changes:
Ludovic Chabant <ludovic@chabant.com>
parents: 51
diff changeset
8 wiki = self.getWiki(use_db=False, fs_factory=lambda cfg: MockFileSystem(structure))
c4e999f55ba9 Include changes:
Ludovic Chabant <ludovic@chabant.com>
parents: 51
diff changeset
9 wiki.start()
c4e999f55ba9 Include changes:
Ludovic Chabant <ludovic@chabant.com>
parents: 51
diff changeset
10 return wiki
c4e999f55ba9 Include changes:
Ludovic Chabant <ludovic@chabant.com>
parents: 51
diff changeset
11
51
2733871775cd More unit tests.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
12 def testSimplePage(self):
2733871775cd More unit tests.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
13 self.wiki = self._getWikiFromStructure({
2733871775cd More unit tests.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
14 'foo.txt': 'A test page.'
2733871775cd More unit tests.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
15 })
2733871775cd More unit tests.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
16 page = Page(self.wiki, 'foo')
2733871775cd More unit tests.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
17 self.assertEqual('foo', page.url)
2733871775cd More unit tests.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
18 self.assertEqual('A test page.', page.raw_text)
2733871775cd More unit tests.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
19 self.assertEqual('A test page.', page.formatted_text)
2733871775cd More unit tests.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
20 self.assertEqual('foo', page.title)
2733871775cd More unit tests.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
21 self.assertEqual('A test page.', page.text)
2733871775cd More unit tests.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
22 self.assertEqual({}, page.local_meta)
2733871775cd More unit tests.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
23 self.assertEqual([], page.local_links)
2733871775cd More unit tests.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
24
2733871775cd More unit tests.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
25 def testPageMeta(self):
2733871775cd More unit tests.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
26 self.wiki = self._getWikiFromStructure({
2733871775cd More unit tests.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
27 'foo.txt': "A page with simple meta.\n{{bar: baz}}\n{{is_test: }}"
2733871775cd More unit tests.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
28 })
2733871775cd More unit tests.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
29 page = Page(self.wiki, 'foo')
2733871775cd More unit tests.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
30 self.assertEqual('foo', page.url)
2733871775cd More unit tests.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
31 self.assertEqual("A page with simple meta.\n{{bar: baz}}\n{{is_test: }}", page.raw_text)
2733871775cd More unit tests.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
32 self.assertEqual('A page with simple meta.\n\n', page.formatted_text)
2733871775cd More unit tests.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
33 self.assertEqual('foo', page.title)
2733871775cd More unit tests.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
34 self.assertEqual('A page with simple meta.\n\n', page.text)
2733871775cd More unit tests.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
35 self.assertEqual({'bar': 'baz', 'is_test': True}, page.local_meta)
2733871775cd More unit tests.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
36 self.assertEqual([], page.local_links)
2733871775cd More unit tests.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
37
2733871775cd More unit tests.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
38 def testPageTitleMeta(self):
2733871775cd More unit tests.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
39 self.wiki = self._getWikiFromStructure({
2733871775cd More unit tests.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
40 'test_title.txt': "A page with a custom title.\n{{title: TEST-TITLE}}"
2733871775cd More unit tests.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
41 })
2733871775cd More unit tests.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
42 page = Page(self.wiki, 'test_title')
2733871775cd More unit tests.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
43 self.assertEqual('test_title', page.url)
2733871775cd More unit tests.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
44 self.assertEqual("A page with a custom title.\n{{title: TEST-TITLE}}", page.raw_text)
2733871775cd More unit tests.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
45 self.assertEqual('A page with a custom title.\n', page.formatted_text)
2733871775cd More unit tests.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
46 self.assertEqual('TEST-TITLE', page.title)
2733871775cd More unit tests.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
47 self.assertEqual('A page with a custom title.\n', page.text)
2733871775cd More unit tests.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
48 self.assertEqual({'title': 'TEST-TITLE'}, page.local_meta)
2733871775cd More unit tests.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
49 self.assertEqual([], page.local_links)
2733871775cd More unit tests.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
50
2733871775cd More unit tests.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
51 def testPageOutLinks(self):
2733871775cd More unit tests.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
52 self.wiki = self._getWikiFromStructure({
2733871775cd More unit tests.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
53 'test_links.txt': "Follow a link to the [[Sandbox]]. Or to [[this page|Other Sandbox]].",
2733871775cd More unit tests.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
54 'sandbox.txt': "This is just a placeholder."
2733871775cd More unit tests.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
55 })
2733871775cd More unit tests.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
56 self.assertTrue(self.wiki.pageExists('sandbox', from_db=False))
2733871775cd More unit tests.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
57 page = Page(self.wiki, 'test_links')
2733871775cd More unit tests.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
58 self.assertEqual('test_links', page.url)
2733871775cd More unit tests.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
59 self.assertEqual("Follow a link to the [[Sandbox]]. Or to [[this page|Other Sandbox]].", page.raw_text)
54
9dfbc2a40b71 Formatter changes:
Ludovic Chabant <ludovic@chabant.com>
parents: 53
diff changeset
60 self.assertEqual(
9dfbc2a40b71 Formatter changes:
Ludovic Chabant <ludovic@chabant.com>
parents: 53
diff changeset
61 "Follow a link to the %s. Or to %s." % (
9dfbc2a40b71 Formatter changes:
Ludovic Chabant <ludovic@chabant.com>
parents: 53
diff changeset
62 format_link('Sandbox', 'sandbox'),
9dfbc2a40b71 Formatter changes:
Ludovic Chabant <ludovic@chabant.com>
parents: 53
diff changeset
63 format_link('this page', 'other-sandbox', True)),
9dfbc2a40b71 Formatter changes:
Ludovic Chabant <ludovic@chabant.com>
parents: 53
diff changeset
64 page.formatted_text)
51
2733871775cd More unit tests.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
65 self.assertEqual(set(['sandbox', 'other-sandbox']), set(page.local_links))
2733871775cd More unit tests.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
66
2733871775cd More unit tests.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
67 def testPageRelativeOutLinks(self):
2733871775cd More unit tests.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
68 self.wiki = self._getWikiFromStructure({
2733871775cd More unit tests.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
69 'first.txt': "Go to [[First Sibling]].",
2733871775cd More unit tests.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
70 'first-sibling.txt': "Go back to [[First]], or to [[sub_dir/Second]].",
2733871775cd More unit tests.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
71 'sub_dir': {
2733871775cd More unit tests.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
72 'second.txt': "Go back to [[../First]], or to [[Second Sibling]].",
2733871775cd More unit tests.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
73 'second-sibling.txt': "Go back to [[Second]]."
2733871775cd More unit tests.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
74 }
2733871775cd More unit tests.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
75 })
2733871775cd More unit tests.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
76 first = Page(self.wiki, 'first')
2733871775cd More unit tests.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
77 self.assertEqual(['first-sibling'], first.local_links)
2733871775cd More unit tests.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
78 first2 = Page(self.wiki, 'first-sibling')
2733871775cd More unit tests.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
79 self.assertEqual(['first', 'sub_dir/second'], first2.local_links)
2733871775cd More unit tests.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
80 second = Page(self.wiki, 'sub_dir/second')
2733871775cd More unit tests.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
81 self.assertEqual(['first', 'sub_dir/second-sibling'], second.local_links)
2733871775cd More unit tests.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
82 second2 = Page(self.wiki, 'sub_dir/second-sibling')
2733871775cd More unit tests.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
83 self.assertEqual(['sub_dir/second'], second2.local_links)
2733871775cd More unit tests.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
84
55
494f3c4660ed Various changes:
Ludovic Chabant <ludovic@chabant.com>
parents: 54
diff changeset
85 def testGenericUrl(self):
494f3c4660ed Various changes:
Ludovic Chabant <ludovic@chabant.com>
parents: 54
diff changeset
86 self.wiki = self._getWikiFromStructure({
494f3c4660ed Various changes:
Ludovic Chabant <ludovic@chabant.com>
parents: 54
diff changeset
87 'foo.txt': "URL: [[url:/blah/boo/image.png]]"
494f3c4660ed Various changes:
Ludovic Chabant <ludovic@chabant.com>
parents: 54
diff changeset
88 })
494f3c4660ed Various changes:
Ludovic Chabant <ludovic@chabant.com>
parents: 54
diff changeset
89 foo = Page(self.wiki, 'foo')
494f3c4660ed Various changes:
Ludovic Chabant <ludovic@chabant.com>
parents: 54
diff changeset
90 self.assertEqual("URL: /files/blah/boo/image.png", foo.formatted_text)
494f3c4660ed Various changes:
Ludovic Chabant <ludovic@chabant.com>
parents: 54
diff changeset
91
53
c4e999f55ba9 Include changes:
Ludovic Chabant <ludovic@chabant.com>
parents: 51
diff changeset
92 def testPageInclude(self):
c4e999f55ba9 Include changes:
Ludovic Chabant <ludovic@chabant.com>
parents: 51
diff changeset
93 self.wiki = self._getWikiFromStructure({
c4e999f55ba9 Include changes:
Ludovic Chabant <ludovic@chabant.com>
parents: 51
diff changeset
94 'Foo.txt': "A test page.\n{{include: trans-desc}}\n",
c4e999f55ba9 Include changes:
Ludovic Chabant <ludovic@chabant.com>
parents: 51
diff changeset
95 'Trans Desc.txt': "BLAH\n"
c4e999f55ba9 Include changes:
Ludovic Chabant <ludovic@chabant.com>
parents: 51
diff changeset
96 })
c4e999f55ba9 Include changes:
Ludovic Chabant <ludovic@chabant.com>
parents: 51
diff changeset
97 foo = Page(self.wiki, 'foo')
64
0b4f4c23770a Removed specific "include"-related properties from the code and DB.
Ludovic Chabant <ludovic@chabant.com>
parents: 55
diff changeset
98 self.assertEqual({'include': 'trans-desc'}, foo.local_meta)
54
9dfbc2a40b71 Formatter changes:
Ludovic Chabant <ludovic@chabant.com>
parents: 53
diff changeset
99 self.assertEqual(
9dfbc2a40b71 Formatter changes:
Ludovic Chabant <ludovic@chabant.com>
parents: 53
diff changeset
100 "A test page.\n%s" % format_include('trans-desc'),
9dfbc2a40b71 Formatter changes:
Ludovic Chabant <ludovic@chabant.com>
parents: 53
diff changeset
101 foo.formatted_text)
53
c4e999f55ba9 Include changes:
Ludovic Chabant <ludovic@chabant.com>
parents: 51
diff changeset
102 self.assertEqual("A test page.\nBLAH\n\n", foo.text)
c4e999f55ba9 Include changes:
Ludovic Chabant <ludovic@chabant.com>
parents: 51
diff changeset
103
c4e999f55ba9 Include changes:
Ludovic Chabant <ludovic@chabant.com>
parents: 51
diff changeset
104 def testPageIncludeWithMeta(self):
c4e999f55ba9 Include changes:
Ludovic Chabant <ludovic@chabant.com>
parents: 51
diff changeset
105 self.wiki = self._getWikiFromStructure({
c4e999f55ba9 Include changes:
Ludovic Chabant <ludovic@chabant.com>
parents: 51
diff changeset
106 'Foo.txt': "A test page.\n{{include: trans-desc}}\n",
c4e999f55ba9 Include changes:
Ludovic Chabant <ludovic@chabant.com>
parents: 51
diff changeset
107 'Trans Desc.txt': "BLAH: [[Somewhere]]\n{{bar: 42}}\n{{__secret: love}}\n{{+given: hope}}"
c4e999f55ba9 Include changes:
Ludovic Chabant <ludovic@chabant.com>
parents: 51
diff changeset
108 })
c4e999f55ba9 Include changes:
Ludovic Chabant <ludovic@chabant.com>
parents: 51
diff changeset
109 foo = Page(self.wiki, 'foo')
c4e999f55ba9 Include changes:
Ludovic Chabant <ludovic@chabant.com>
parents: 51
diff changeset
110 self.assertEqual([], foo.local_links)
c4e999f55ba9 Include changes:
Ludovic Chabant <ludovic@chabant.com>
parents: 51
diff changeset
111 self.assertEqual({'include': 'trans-desc'}, foo.local_meta)
54
9dfbc2a40b71 Formatter changes:
Ludovic Chabant <ludovic@chabant.com>
parents: 53
diff changeset
112 self.assertEqual(
9dfbc2a40b71 Formatter changes:
Ludovic Chabant <ludovic@chabant.com>
parents: 53
diff changeset
113 "A test page.\n%s" % format_include('trans-desc'),
9dfbc2a40b71 Formatter changes:
Ludovic Chabant <ludovic@chabant.com>
parents: 53
diff changeset
114 foo.formatted_text)
9dfbc2a40b71 Formatter changes:
Ludovic Chabant <ludovic@chabant.com>
parents: 53
diff changeset
115 self.assertEqual(
9dfbc2a40b71 Formatter changes:
Ludovic Chabant <ludovic@chabant.com>
parents: 53
diff changeset
116 "A test page.\nBLAH: %s\n\n\n\n" % format_link('Somewhere', 'somewhere', True),
9dfbc2a40b71 Formatter changes:
Ludovic Chabant <ludovic@chabant.com>
parents: 53
diff changeset
117 foo.text)
53
c4e999f55ba9 Include changes:
Ludovic Chabant <ludovic@chabant.com>
parents: 51
diff changeset
118 self.assertEqual(['somewhere'], foo.all_links)
c4e999f55ba9 Include changes:
Ludovic Chabant <ludovic@chabant.com>
parents: 51
diff changeset
119 self.assertEqual({'bar': '42', 'given': 'hope', 'include': 'trans-desc'}, foo.all_meta)
c4e999f55ba9 Include changes:
Ludovic Chabant <ludovic@chabant.com>
parents: 51
diff changeset
120
c4e999f55ba9 Include changes:
Ludovic Chabant <ludovic@chabant.com>
parents: 51
diff changeset
121 def testPageIncludeWithTemplating(self):
c4e999f55ba9 Include changes:
Ludovic Chabant <ludovic@chabant.com>
parents: 51
diff changeset
122 self.wiki = self._getWikiFromStructure({
c4e999f55ba9 Include changes:
Ludovic Chabant <ludovic@chabant.com>
parents: 51
diff changeset
123 'Foo.txt': "A test page.\n{{include: greeting|name=Dave|what=drink}}\n",
c4e999f55ba9 Include changes:
Ludovic Chabant <ludovic@chabant.com>
parents: 51
diff changeset
124 'Greeting.txt': "Hello {{name}}, would you like a {{what}}?"
c4e999f55ba9 Include changes:
Ludovic Chabant <ludovic@chabant.com>
parents: 51
diff changeset
125 })
c4e999f55ba9 Include changes:
Ludovic Chabant <ludovic@chabant.com>
parents: 51
diff changeset
126 foo = Page(self.wiki, 'foo')
54
9dfbc2a40b71 Formatter changes:
Ludovic Chabant <ludovic@chabant.com>
parents: 53
diff changeset
127 self.assertEqual(
9dfbc2a40b71 Formatter changes:
Ludovic Chabant <ludovic@chabant.com>
parents: 53
diff changeset
128 "A test page.\n%s" % format_include('greeting', 'name=Dave|what=drink'),
9dfbc2a40b71 Formatter changes:
Ludovic Chabant <ludovic@chabant.com>
parents: 53
diff changeset
129 foo.formatted_text)
53
c4e999f55ba9 Include changes:
Ludovic Chabant <ludovic@chabant.com>
parents: 51
diff changeset
130 self.assertEqual("A test page.\nHello Dave, would you like a drink?\n", foo.text)
c4e999f55ba9 Include changes:
Ludovic Chabant <ludovic@chabant.com>
parents: 51
diff changeset
131
54
9dfbc2a40b71 Formatter changes:
Ludovic Chabant <ludovic@chabant.com>
parents: 53
diff changeset
132 def testGivenOnlyInclude(self):
9dfbc2a40b71 Formatter changes:
Ludovic Chabant <ludovic@chabant.com>
parents: 53
diff changeset
133 self.wiki = self._getWikiFromStructure({
9dfbc2a40b71 Formatter changes:
Ludovic Chabant <ludovic@chabant.com>
parents: 53
diff changeset
134 'Base.txt': "The base page.\n{{include: Template 1}}",
9dfbc2a40b71 Formatter changes:
Ludovic Chabant <ludovic@chabant.com>
parents: 53
diff changeset
135 'Template 1.txt': "TEMPLATE!\n{{+include: Template 2}}",
9dfbc2a40b71 Formatter changes:
Ludovic Chabant <ludovic@chabant.com>
parents: 53
diff changeset
136 'Template 2.txt': "MORE TEMPLATE!"
9dfbc2a40b71 Formatter changes:
Ludovic Chabant <ludovic@chabant.com>
parents: 53
diff changeset
137 })
9dfbc2a40b71 Formatter changes:
Ludovic Chabant <ludovic@chabant.com>
parents: 53
diff changeset
138 tpl1 = Page(self.wiki, 'template-1')
9dfbc2a40b71 Formatter changes:
Ludovic Chabant <ludovic@chabant.com>
parents: 53
diff changeset
139 self.assertEqual(
9dfbc2a40b71 Formatter changes:
Ludovic Chabant <ludovic@chabant.com>
parents: 53
diff changeset
140 "TEMPLATE!\n%s" % format_include('template-2', mod='+'),
9dfbc2a40b71 Formatter changes:
Ludovic Chabant <ludovic@chabant.com>
parents: 53
diff changeset
141 tpl1.formatted_text)
9dfbc2a40b71 Formatter changes:
Ludovic Chabant <ludovic@chabant.com>
parents: 53
diff changeset
142 self.assertEqual("TEMPLATE!\n\n", tpl1.text)
9dfbc2a40b71 Formatter changes:
Ludovic Chabant <ludovic@chabant.com>
parents: 53
diff changeset
143 base = Page(self.wiki, 'base')
9dfbc2a40b71 Formatter changes:
Ludovic Chabant <ludovic@chabant.com>
parents: 53
diff changeset
144 self.assertEqual("The base page.\nTEMPLATE!\nMORE TEMPLATE!\n\n", base.text)
9dfbc2a40b71 Formatter changes:
Ludovic Chabant <ludovic@chabant.com>
parents: 53
diff changeset
145
9dfbc2a40b71 Formatter changes:
Ludovic Chabant <ludovic@chabant.com>
parents: 53
diff changeset
146 def testDoublePageIncludeWithMeta(self):
9dfbc2a40b71 Formatter changes:
Ludovic Chabant <ludovic@chabant.com>
parents: 53
diff changeset
147 return
9dfbc2a40b71 Formatter changes:
Ludovic Chabant <ludovic@chabant.com>
parents: 53
diff changeset
148 self.wiki = self._getWikiFromStructure({
9dfbc2a40b71 Formatter changes:
Ludovic Chabant <ludovic@chabant.com>
parents: 53
diff changeset
149 'Base.txt': "The base page.\n{{include: Template 1}}",
9dfbc2a40b71 Formatter changes:
Ludovic Chabant <ludovic@chabant.com>
parents: 53
diff changeset
150 'Wrong.txt': "{{include: Template 2}}",
9dfbc2a40b71 Formatter changes:
Ludovic Chabant <ludovic@chabant.com>
parents: 53
diff changeset
151 'Template 1.txt': "{{foo: bar}}\n{{+category: blah}}\n{{+include: Template 2}}\n{{__secret1: ssh}}",
9dfbc2a40b71 Formatter changes:
Ludovic Chabant <ludovic@chabant.com>
parents: 53
diff changeset
152 'Template 2.txt': "{{+category: yolo}}",
9dfbc2a40b71 Formatter changes:
Ludovic Chabant <ludovic@chabant.com>
parents: 53
diff changeset
153 'Query 1.txt': "{{query: category=yolo}}",
9dfbc2a40b71 Formatter changes:
Ludovic Chabant <ludovic@chabant.com>
parents: 53
diff changeset
154 'Query 2.txt': "{{query: category=blah}}"
9dfbc2a40b71 Formatter changes:
Ludovic Chabant <ludovic@chabant.com>
parents: 53
diff changeset
155 })
9dfbc2a40b71 Formatter changes:
Ludovic Chabant <ludovic@chabant.com>
parents: 53
diff changeset
156 base = Page(self.wiki, 'base')
9dfbc2a40b71 Formatter changes:
Ludovic Chabant <ludovic@chabant.com>
parents: 53
diff changeset
157 self.assertEqual({
9dfbc2a40b71 Formatter changes:
Ludovic Chabant <ludovic@chabant.com>
parents: 53
diff changeset
158 'foo': 'bar',
9dfbc2a40b71 Formatter changes:
Ludovic Chabant <ludovic@chabant.com>
parents: 53
diff changeset
159 'category': ['blah', 'yolo']
9dfbc2a40b71 Formatter changes:
Ludovic Chabant <ludovic@chabant.com>
parents: 53
diff changeset
160 }, base.all_meta)
9dfbc2a40b71 Formatter changes:
Ludovic Chabant <ludovic@chabant.com>
parents: 53
diff changeset
161 tpl1 = Page(self.wiki, 'template-1')
9dfbc2a40b71 Formatter changes:
Ludovic Chabant <ludovic@chabant.com>
parents: 53
diff changeset
162 self.assertEqual({
9dfbc2a40b71 Formatter changes:
Ludovic Chabant <ludovic@chabant.com>
parents: 53
diff changeset
163 'foo': 'bar',
9dfbc2a40b71 Formatter changes:
Ludovic Chabant <ludovic@chabant.com>
parents: 53
diff changeset
164 '+category': 'blah',
9dfbc2a40b71 Formatter changes:
Ludovic Chabant <ludovic@chabant.com>
parents: 53
diff changeset
165 '+include': 'template-2',
9dfbc2a40b71 Formatter changes:
Ludovic Chabant <ludovic@chabant.com>
parents: 53
diff changeset
166 '__secret': 'ssh'
9dfbc2a40b71 Formatter changes:
Ludovic Chabant <ludovic@chabant.com>
parents: 53
diff changeset
167 }, tpl1.all_meta)
9dfbc2a40b71 Formatter changes:
Ludovic Chabant <ludovic@chabant.com>
parents: 53
diff changeset
168 self.assertEqual(
9dfbc2a40b71 Formatter changes:
Ludovic Chabant <ludovic@chabant.com>
parents: 53
diff changeset
169 "\n\n%s\n\n" % format_include('template-2'),
9dfbc2a40b71 Formatter changes:
Ludovic Chabant <ludovic@chabant.com>
parents: 53
diff changeset
170 tpl1.text)
9dfbc2a40b71 Formatter changes:
Ludovic Chabant <ludovic@chabant.com>
parents: 53
diff changeset
171 q1 = Page(self.wiki, 'query-1')
9dfbc2a40b71 Formatter changes:
Ludovic Chabant <ludovic@chabant.com>
parents: 53
diff changeset
172 self.assertEqual(
9dfbc2a40b71 Formatter changes:
Ludovic Chabant <ludovic@chabant.com>
parents: 53
diff changeset
173 "<ul>\n<li>%s</li>\n<li>%s</li>\n</ul>" % (format_link('Base', 'base'), format_link('Wrong', 'wrong')),
9dfbc2a40b71 Formatter changes:
Ludovic Chabant <ludovic@chabant.com>
parents: 53
diff changeset
174 q1.text)
9dfbc2a40b71 Formatter changes:
Ludovic Chabant <ludovic@chabant.com>
parents: 53
diff changeset
175 q2 = Page(self.wiki, 'query-2')
9dfbc2a40b71 Formatter changes:
Ludovic Chabant <ludovic@chabant.com>
parents: 53
diff changeset
176 self.assertEqual(
9dfbc2a40b71 Formatter changes:
Ludovic Chabant <ludovic@chabant.com>
parents: 53
diff changeset
177 "<ul>\n<li>%s</li>\n</ul>" % format_link('Base', 'base'),
9dfbc2a40b71 Formatter changes:
Ludovic Chabant <ludovic@chabant.com>
parents: 53
diff changeset
178 q2.text)
9dfbc2a40b71 Formatter changes:
Ludovic Chabant <ludovic@chabant.com>
parents: 53
diff changeset
179