Mercurial > wikked
annotate tests/test_page.py @ 182:7533ffec1b5a
Display only the name of the committer, if possible.
author | Ludovic Chabant <ludovic@chabant.com> |
---|---|
date | Sat, 01 Feb 2014 14:04:01 -0800 |
parents | ca57fef14d04 |
children | ebb12ff21cb2 |
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 | 2 from wikked.page import Page |
3 | |
4 | |
5 class PageTest(WikkedTest): | |
6 def testSimplePage(self): | |
7 self.wiki = self._getWikiFromStructure({ | |
8 'foo.txt': 'A test page.' | |
9 }) | |
10 page = Page(self.wiki, 'foo') | |
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 | 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 | 17 self.assertEqual('foo', page.title) |
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 | 21 |
22 def testPageMeta(self): | |
23 self.wiki = self._getWikiFromStructure({ | |
24 'foo.txt': "A page with simple meta.\n{{bar: baz}}\n{{is_test: }}" | |
25 }) | |
26 page = Page(self.wiki, 'foo') | |
27 self.assertEqual('foo', page.url) | |
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 | 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 | 34 |
35 def testPageTitleMeta(self): | |
36 self.wiki = self._getWikiFromStructure({ | |
37 'test_title.txt': "A page with a custom title.\n{{title: TEST-TITLE}}" | |
38 }) | |
39 page = Page(self.wiki, 'test_title') | |
40 self.assertEqual('test_title', page.url) | |
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 | 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 | 47 |
48 def testPageOutLinks(self): | |
49 self.wiki = self._getWikiFromStructure({ | |
50 'test_links.txt': "Follow a link to the [[Sandbox]]. Or to [[this page|Other Sandbox]].", | |
51 'sandbox.txt': "This is just a placeholder." | |
52 }) | |
53 self.assertTrue(self.wiki.pageExists('sandbox', from_db=False)) | |
54 page = Page(self.wiki, 'test_links') | |
55 self.assertEqual('test_links', page.url) | |
56 self.assertEqual("Follow a link to the [[Sandbox]]. Or to [[this page|Other Sandbox]].", page.raw_text) | |
54 | 57 self.assertEqual( |
58 "Follow a link to the %s. Or to %s." % ( | |
59 format_link('Sandbox', 'sandbox'), | |
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 | 63 |
64 def testPageRelativeOutLinks(self): | |
65 self.wiki = self._getWikiFromStructure({ | |
66 'first.txt': "Go to [[First Sibling]].", | |
67 'first-sibling.txt': "Go back to [[First]], or to [[sub_dir/Second]].", | |
68 'sub_dir': { | |
69 'second.txt': "Go back to [[../First]], or to [[Second Sibling]].", | |
70 'second-sibling.txt': "Go back to [[Second]]." | |
71 } | |
72 }) | |
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 | 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 | 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 | 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 | 81 |
55 | 82 def testGenericUrl(self): |
83 self.wiki = self._getWikiFromStructure({ | |
84 'foo.txt': "URL: [[url:/blah/boo/image.png]]" | |
85 }) | |
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 | 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 ) |