annotate tests/test_page.py @ 183:f940cdefe537

Code cleanup.
author Ludovic Chabant <ludovic@chabant.com>
date Sat, 01 Feb 2014 14:04:13 -0800
parents ca57fef14d04
children ebb12ff21cb2
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
83
65f83a9b42f1 Added support for numbered template parameters.
Ludovic Chabant <ludovic@chabant.com>
parents: 82
diff changeset
1 from tests import WikkedTest, format_link
51
2733871775cd More unit tests.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
2 from wikked.page import Page
2733871775cd More unit tests.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
3
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 class PageTest(WikkedTest):
2733871775cd More unit tests.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
6 def testSimplePage(self):
2733871775cd More unit tests.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
7 self.wiki = self._getWikiFromStructure({
2733871775cd More unit tests.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
8 'foo.txt': 'A test page.'
2733871775cd More unit tests.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
9 })
2733871775cd More unit tests.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
10 page = Page(self.wiki, 'foo')
2733871775cd More unit tests.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
11 self.assertEqual('foo', page.url)
84
ca57fef14d04 Formatter/resolver changes:
Ludovic Chabant <ludovic@chabant.com>
parents: 83
diff changeset
12 self.assertEqual('foo.txt', page.path)
ca57fef14d04 Formatter/resolver changes:
Ludovic Chabant <ludovic@chabant.com>
parents: 83
diff changeset
13 self.assertEqual('foo', page.filename)
ca57fef14d04 Formatter/resolver changes:
Ludovic Chabant <ludovic@chabant.com>
parents: 83
diff changeset
14 self.assertEqual('txt', page.extension)
51
2733871775cd More unit tests.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
15 self.assertEqual('A test page.', page.raw_text)
82
9afe4a1dbd1e Refactoring of core wiki classes:
Ludovic Chabant <ludovic@chabant.com>
parents: 64
diff changeset
16 self.assertEqual('A test page.', page._getFormattedText())
51
2733871775cd More unit tests.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
17 self.assertEqual('foo', page.title)
2733871775cd More unit tests.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
18 self.assertEqual('A test page.', page.text)
82
9afe4a1dbd1e Refactoring of core wiki classes:
Ludovic Chabant <ludovic@chabant.com>
parents: 64
diff changeset
19 self.assertEqual({}, page._getLocalMeta())
9afe4a1dbd1e Refactoring of core wiki classes:
Ludovic Chabant <ludovic@chabant.com>
parents: 64
diff changeset
20 self.assertEqual([], page._getLocalLinks())
51
2733871775cd More unit tests.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
21
2733871775cd More unit tests.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
22 def testPageMeta(self):
2733871775cd More unit tests.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
23 self.wiki = self._getWikiFromStructure({
2733871775cd More unit tests.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
24 '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
25 })
2733871775cd More unit tests.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
26 page = Page(self.wiki, 'foo')
2733871775cd More unit tests.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
27 self.assertEqual('foo', page.url)
2733871775cd More unit tests.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
28 self.assertEqual("A page with simple meta.\n{{bar: baz}}\n{{is_test: }}", page.raw_text)
82
9afe4a1dbd1e Refactoring of core wiki classes:
Ludovic Chabant <ludovic@chabant.com>
parents: 64
diff changeset
29 self.assertEqual('A page with simple meta.\n\n', page._getFormattedText())
51
2733871775cd More unit tests.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
30 self.assertEqual('foo', page.title)
84
ca57fef14d04 Formatter/resolver changes:
Ludovic Chabant <ludovic@chabant.com>
parents: 83
diff changeset
31 self.assertEqual('A page with simple meta.\n', page.text)
82
9afe4a1dbd1e Refactoring of core wiki classes:
Ludovic Chabant <ludovic@chabant.com>
parents: 64
diff changeset
32 self.assertEqual({'bar': ['baz'], 'is_test': True}, page._getLocalMeta())
9afe4a1dbd1e Refactoring of core wiki classes:
Ludovic Chabant <ludovic@chabant.com>
parents: 64
diff changeset
33 self.assertEqual([], page._getLocalLinks())
51
2733871775cd More unit tests.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
34
2733871775cd More unit tests.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
35 def testPageTitleMeta(self):
2733871775cd More unit tests.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
36 self.wiki = self._getWikiFromStructure({
2733871775cd More unit tests.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
37 '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
38 })
2733871775cd More unit tests.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
39 page = Page(self.wiki, 'test_title')
2733871775cd More unit tests.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
40 self.assertEqual('test_title', page.url)
2733871775cd More unit tests.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
41 self.assertEqual("A page with a custom title.\n{{title: TEST-TITLE}}", page.raw_text)
82
9afe4a1dbd1e Refactoring of core wiki classes:
Ludovic Chabant <ludovic@chabant.com>
parents: 64
diff changeset
42 self.assertEqual('A page with a custom title.\n', page._getFormattedText())
51
2733871775cd More unit tests.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
43 self.assertEqual('TEST-TITLE', page.title)
84
ca57fef14d04 Formatter/resolver changes:
Ludovic Chabant <ludovic@chabant.com>
parents: 83
diff changeset
44 self.assertEqual('A page with a custom title.', page.text)
82
9afe4a1dbd1e Refactoring of core wiki classes:
Ludovic Chabant <ludovic@chabant.com>
parents: 64
diff changeset
45 self.assertEqual({'title': ['TEST-TITLE']}, page._getLocalMeta())
9afe4a1dbd1e Refactoring of core wiki classes:
Ludovic Chabant <ludovic@chabant.com>
parents: 64
diff changeset
46 self.assertEqual([], page._getLocalLinks())
51
2733871775cd More unit tests.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
47
2733871775cd More unit tests.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
48 def testPageOutLinks(self):
2733871775cd More unit tests.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
49 self.wiki = self._getWikiFromStructure({
2733871775cd More unit tests.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
50 '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
51 'sandbox.txt': "This is just a placeholder."
2733871775cd More unit tests.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
52 })
2733871775cd More unit tests.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
53 self.assertTrue(self.wiki.pageExists('sandbox', from_db=False))
2733871775cd More unit tests.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
54 page = Page(self.wiki, 'test_links')
2733871775cd More unit tests.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
55 self.assertEqual('test_links', page.url)
2733871775cd More unit tests.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
56 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
57 self.assertEqual(
9dfbc2a40b71 Formatter changes:
Ludovic Chabant <ludovic@chabant.com>
parents: 53
diff changeset
58 "Follow a link to the %s. Or to %s." % (
9dfbc2a40b71 Formatter changes:
Ludovic Chabant <ludovic@chabant.com>
parents: 53
diff changeset
59 format_link('Sandbox', 'sandbox'),
9dfbc2a40b71 Formatter changes:
Ludovic Chabant <ludovic@chabant.com>
parents: 53
diff changeset
60 format_link('this page', 'other-sandbox', True)),
82
9afe4a1dbd1e Refactoring of core wiki classes:
Ludovic Chabant <ludovic@chabant.com>
parents: 64
diff changeset
61 page.text)
9afe4a1dbd1e Refactoring of core wiki classes:
Ludovic Chabant <ludovic@chabant.com>
parents: 64
diff changeset
62 self.assertEqual(set(['sandbox', 'other-sandbox']), set(page._getLocalLinks()))
51
2733871775cd More unit tests.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
63
2733871775cd More unit tests.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
64 def testPageRelativeOutLinks(self):
2733871775cd More unit tests.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
65 self.wiki = self._getWikiFromStructure({
2733871775cd More unit tests.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
66 'first.txt': "Go to [[First Sibling]].",
2733871775cd More unit tests.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
67 'first-sibling.txt': "Go back to [[First]], or to [[sub_dir/Second]].",
2733871775cd More unit tests.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
68 'sub_dir': {
2733871775cd More unit tests.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
69 'second.txt': "Go back to [[../First]], or to [[Second Sibling]].",
2733871775cd More unit tests.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
70 'second-sibling.txt': "Go back to [[Second]]."
2733871775cd More unit tests.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
71 }
2733871775cd More unit tests.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
72 })
2733871775cd More unit tests.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
73 first = Page(self.wiki, 'first')
82
9afe4a1dbd1e Refactoring of core wiki classes:
Ludovic Chabant <ludovic@chabant.com>
parents: 64
diff changeset
74 self.assertEqual(['first-sibling'], first._getLocalLinks())
51
2733871775cd More unit tests.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
75 first2 = Page(self.wiki, 'first-sibling')
82
9afe4a1dbd1e Refactoring of core wiki classes:
Ludovic Chabant <ludovic@chabant.com>
parents: 64
diff changeset
76 self.assertEqual(['first', 'sub_dir/second'], first2._getLocalLinks())
51
2733871775cd More unit tests.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
77 second = Page(self.wiki, 'sub_dir/second')
82
9afe4a1dbd1e Refactoring of core wiki classes:
Ludovic Chabant <ludovic@chabant.com>
parents: 64
diff changeset
78 self.assertEqual(['first', 'sub_dir/second-sibling'], second._getLocalLinks())
51
2733871775cd More unit tests.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
79 second2 = Page(self.wiki, 'sub_dir/second-sibling')
82
9afe4a1dbd1e Refactoring of core wiki classes:
Ludovic Chabant <ludovic@chabant.com>
parents: 64
diff changeset
80 self.assertEqual(['sub_dir/second'], second2._getLocalLinks())
51
2733871775cd More unit tests.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
81
55
494f3c4660ed Various changes:
Ludovic Chabant <ludovic@chabant.com>
parents: 54
diff changeset
82 def testGenericUrl(self):
494f3c4660ed Various changes:
Ludovic Chabant <ludovic@chabant.com>
parents: 54
diff changeset
83 self.wiki = self._getWikiFromStructure({
494f3c4660ed Various changes:
Ludovic Chabant <ludovic@chabant.com>
parents: 54
diff changeset
84 'foo.txt': "URL: [[url:/blah/boo/image.png]]"
494f3c4660ed Various changes:
Ludovic Chabant <ludovic@chabant.com>
parents: 54
diff changeset
85 })
494f3c4660ed Various changes:
Ludovic Chabant <ludovic@chabant.com>
parents: 54
diff changeset
86 foo = Page(self.wiki, 'foo')
82
9afe4a1dbd1e Refactoring of core wiki classes:
Ludovic Chabant <ludovic@chabant.com>
parents: 64
diff changeset
87 self.assertEqual("URL: /files/blah/boo/image.png", foo._getFormattedText())
55
494f3c4660ed Various changes:
Ludovic Chabant <ludovic@chabant.com>
parents: 54
diff changeset
88
84
ca57fef14d04 Formatter/resolver changes:
Ludovic Chabant <ludovic@chabant.com>
parents: 83
diff changeset
89 def testUrlTemplateFunctions(self):
ca57fef14d04 Formatter/resolver changes:
Ludovic Chabant <ludovic@chabant.com>
parents: 83
diff changeset
90 self.wiki =self._getWikiFromStructure({
ca57fef14d04 Formatter/resolver changes:
Ludovic Chabant <ludovic@chabant.com>
parents: 83
diff changeset
91 'foo.txt': "Here is {{read_url(__page.url, 'FOO')}}!"
ca57fef14d04 Formatter/resolver changes:
Ludovic Chabant <ludovic@chabant.com>
parents: 83
diff changeset
92 })
ca57fef14d04 Formatter/resolver changes:
Ludovic Chabant <ludovic@chabant.com>
parents: 83
diff changeset
93 foo = Page(self.wiki, 'foo')
ca57fef14d04 Formatter/resolver changes:
Ludovic Chabant <ludovic@chabant.com>
parents: 83
diff changeset
94 self.assertEqual(
ca57fef14d04 Formatter/resolver changes:
Ludovic Chabant <ludovic@chabant.com>
parents: 83
diff changeset
95 'Here is <a class="wiki-link" data-wiki-url="foo">FOO</a>!',
ca57fef14d04 Formatter/resolver changes:
Ludovic Chabant <ludovic@chabant.com>
parents: 83
diff changeset
96 foo.text
ca57fef14d04 Formatter/resolver changes:
Ludovic Chabant <ludovic@chabant.com>
parents: 83
diff changeset
97 )