Mercurial > wikked
annotate tests/test_page.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 | 9afe4a1dbd1e |
children | ca57fef14d04 |
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) | |
12 self.assertEqual('A test page.', page.raw_text) | |
82
9afe4a1dbd1e
Refactoring of core wiki classes:
Ludovic Chabant <ludovic@chabant.com>
parents:
64
diff
changeset
|
13 self.assertEqual('A test page.', page._getFormattedText()) |
51 | 14 self.assertEqual('foo', page.title) |
15 self.assertEqual('A test page.', page.text) | |
82
9afe4a1dbd1e
Refactoring of core wiki classes:
Ludovic Chabant <ludovic@chabant.com>
parents:
64
diff
changeset
|
16 self.assertEqual({}, page._getLocalMeta()) |
9afe4a1dbd1e
Refactoring of core wiki classes:
Ludovic Chabant <ludovic@chabant.com>
parents:
64
diff
changeset
|
17 self.assertEqual([], page._getLocalLinks()) |
51 | 18 |
19 def testPageMeta(self): | |
20 self.wiki = self._getWikiFromStructure({ | |
21 'foo.txt': "A page with simple meta.\n{{bar: baz}}\n{{is_test: }}" | |
22 }) | |
23 page = Page(self.wiki, 'foo') | |
24 self.assertEqual('foo', page.url) | |
25 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
|
26 self.assertEqual('A page with simple meta.\n\n', page._getFormattedText()) |
51 | 27 self.assertEqual('foo', page.title) |
28 self.assertEqual('A page with simple meta.\n\n', page.text) | |
82
9afe4a1dbd1e
Refactoring of core wiki classes:
Ludovic Chabant <ludovic@chabant.com>
parents:
64
diff
changeset
|
29 self.assertEqual({'bar': ['baz'], 'is_test': True}, page._getLocalMeta()) |
9afe4a1dbd1e
Refactoring of core wiki classes:
Ludovic Chabant <ludovic@chabant.com>
parents:
64
diff
changeset
|
30 self.assertEqual([], page._getLocalLinks()) |
51 | 31 |
32 def testPageTitleMeta(self): | |
33 self.wiki = self._getWikiFromStructure({ | |
34 'test_title.txt': "A page with a custom title.\n{{title: TEST-TITLE}}" | |
35 }) | |
36 page = Page(self.wiki, 'test_title') | |
37 self.assertEqual('test_title', page.url) | |
38 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
|
39 self.assertEqual('A page with a custom title.\n', page._getFormattedText()) |
51 | 40 self.assertEqual('TEST-TITLE', page.title) |
41 self.assertEqual('A page with a custom title.\n', page.text) | |
82
9afe4a1dbd1e
Refactoring of core wiki classes:
Ludovic Chabant <ludovic@chabant.com>
parents:
64
diff
changeset
|
42 self.assertEqual({'title': ['TEST-TITLE']}, page._getLocalMeta()) |
9afe4a1dbd1e
Refactoring of core wiki classes:
Ludovic Chabant <ludovic@chabant.com>
parents:
64
diff
changeset
|
43 self.assertEqual([], page._getLocalLinks()) |
51 | 44 |
45 def testPageOutLinks(self): | |
46 self.wiki = self._getWikiFromStructure({ | |
47 'test_links.txt': "Follow a link to the [[Sandbox]]. Or to [[this page|Other Sandbox]].", | |
48 'sandbox.txt': "This is just a placeholder." | |
49 }) | |
50 self.assertTrue(self.wiki.pageExists('sandbox', from_db=False)) | |
51 page = Page(self.wiki, 'test_links') | |
52 self.assertEqual('test_links', page.url) | |
53 self.assertEqual("Follow a link to the [[Sandbox]]. Or to [[this page|Other Sandbox]].", page.raw_text) | |
54 | 54 self.assertEqual( |
55 "Follow a link to the %s. Or to %s." % ( | |
56 format_link('Sandbox', 'sandbox'), | |
57 format_link('this page', 'other-sandbox', True)), | |
82
9afe4a1dbd1e
Refactoring of core wiki classes:
Ludovic Chabant <ludovic@chabant.com>
parents:
64
diff
changeset
|
58 page.text) |
9afe4a1dbd1e
Refactoring of core wiki classes:
Ludovic Chabant <ludovic@chabant.com>
parents:
64
diff
changeset
|
59 self.assertEqual(set(['sandbox', 'other-sandbox']), set(page._getLocalLinks())) |
51 | 60 |
61 def testPageRelativeOutLinks(self): | |
62 self.wiki = self._getWikiFromStructure({ | |
63 'first.txt': "Go to [[First Sibling]].", | |
64 'first-sibling.txt': "Go back to [[First]], or to [[sub_dir/Second]].", | |
65 'sub_dir': { | |
66 'second.txt': "Go back to [[../First]], or to [[Second Sibling]].", | |
67 'second-sibling.txt': "Go back to [[Second]]." | |
68 } | |
69 }) | |
70 first = Page(self.wiki, 'first') | |
82
9afe4a1dbd1e
Refactoring of core wiki classes:
Ludovic Chabant <ludovic@chabant.com>
parents:
64
diff
changeset
|
71 self.assertEqual(['first-sibling'], first._getLocalLinks()) |
51 | 72 first2 = Page(self.wiki, 'first-sibling') |
82
9afe4a1dbd1e
Refactoring of core wiki classes:
Ludovic Chabant <ludovic@chabant.com>
parents:
64
diff
changeset
|
73 self.assertEqual(['first', 'sub_dir/second'], first2._getLocalLinks()) |
51 | 74 second = Page(self.wiki, 'sub_dir/second') |
82
9afe4a1dbd1e
Refactoring of core wiki classes:
Ludovic Chabant <ludovic@chabant.com>
parents:
64
diff
changeset
|
75 self.assertEqual(['first', 'sub_dir/second-sibling'], second._getLocalLinks()) |
51 | 76 second2 = Page(self.wiki, 'sub_dir/second-sibling') |
82
9afe4a1dbd1e
Refactoring of core wiki classes:
Ludovic Chabant <ludovic@chabant.com>
parents:
64
diff
changeset
|
77 self.assertEqual(['sub_dir/second'], second2._getLocalLinks()) |
51 | 78 |
55 | 79 def testGenericUrl(self): |
80 self.wiki = self._getWikiFromStructure({ | |
81 'foo.txt': "URL: [[url:/blah/boo/image.png]]" | |
82 }) | |
83 foo = Page(self.wiki, 'foo') | |
82
9afe4a1dbd1e
Refactoring of core wiki classes:
Ludovic Chabant <ludovic@chabant.com>
parents:
64
diff
changeset
|
84 self.assertEqual("URL: /files/blah/boo/image.png", foo._getFormattedText()) |
55 | 85 |