51
|
1 from tests import WikkedTest
|
|
2 from mock import MockFileSystem
|
|
3 from wikked.page import Page
|
|
4
|
|
5
|
|
6 class PageTest(WikkedTest):
|
|
7 def testSimplePage(self):
|
|
8 self.wiki = self._getWikiFromStructure({
|
|
9 'foo.txt': 'A test page.'
|
|
10 })
|
|
11 page = Page(self.wiki, 'foo')
|
|
12 self.assertEqual('foo', page.url)
|
|
13 self.assertEqual('A test page.', page.raw_text)
|
|
14 self.assertEqual('A test page.', page.formatted_text)
|
|
15 self.assertEqual('foo', page.title)
|
|
16 self.assertEqual('A test page.', page.text)
|
|
17 self.assertEqual({}, page.local_meta)
|
|
18 self.assertEqual([], page.local_links)
|
|
19 self.assertEqual([], page.local_includes)
|
|
20
|
|
21 def testPageMeta(self):
|
|
22 self.wiki = self._getWikiFromStructure({
|
|
23 'foo.txt': "A page with simple meta.\n{{bar: baz}}\n{{is_test: }}"
|
|
24 })
|
|
25 page = Page(self.wiki, 'foo')
|
|
26 self.assertEqual('foo', page.url)
|
|
27 self.assertEqual("A page with simple meta.\n{{bar: baz}}\n{{is_test: }}", page.raw_text)
|
|
28 self.assertEqual('A page with simple meta.\n\n', page.formatted_text)
|
|
29 self.assertEqual('foo', page.title)
|
|
30 self.assertEqual('A page with simple meta.\n\n', page.text)
|
|
31 self.assertEqual({'bar': 'baz', 'is_test': True}, page.local_meta)
|
|
32 self.assertEqual([], page.local_links)
|
|
33 self.assertEqual([], page.local_includes)
|
|
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)
|
|
42 self.assertEqual('A page with a custom title.\n', page.formatted_text)
|
|
43 self.assertEqual('TEST-TITLE', page.title)
|
|
44 self.assertEqual('A page with a custom title.\n', page.text)
|
|
45 self.assertEqual({'title': 'TEST-TITLE'}, page.local_meta)
|
|
46 self.assertEqual([], page.local_links)
|
|
47 self.assertEqual([], page.local_includes)
|
|
48
|
|
49 def testPageOutLinks(self):
|
|
50 self.wiki = self._getWikiFromStructure({
|
|
51 'test_links.txt': "Follow a link to the [[Sandbox]]. Or to [[this page|Other Sandbox]].",
|
|
52 'sandbox.txt': "This is just a placeholder."
|
|
53 })
|
|
54 self.assertTrue(self.wiki.pageExists('sandbox', from_db=False))
|
|
55 page = Page(self.wiki, 'test_links')
|
|
56 self.assertEqual('test_links', page.url)
|
|
57 self.assertEqual("Follow a link to the [[Sandbox]]. Or to [[this page|Other Sandbox]].", page.raw_text)
|
|
58 self.assertEqual("Follow a link to the <a class=\"wiki-link\" data-wiki-url=\"sandbox\">Sandbox</a>. Or to <a class=\"wiki-link missing\" data-wiki-url=\"other-sandbox\">this page</a>.", page.formatted_text)
|
|
59 self.assertEqual(set(['sandbox', 'other-sandbox']), set(page.local_links))
|
|
60
|
|
61 def _getWikiFromStructure(self, structure):
|
|
62 wiki = self.getWiki(use_db=False, fs_factory=lambda cfg: MockFileSystem(structure))
|
|
63 wiki.start()
|
|
64 return wiki
|
|
65
|
|
66 def testPageRelativeOutLinks(self):
|
|
67 self.wiki = self._getWikiFromStructure({
|
|
68 'first.txt': "Go to [[First Sibling]].",
|
|
69 'first-sibling.txt': "Go back to [[First]], or to [[sub_dir/Second]].",
|
|
70 'sub_dir': {
|
|
71 'second.txt': "Go back to [[../First]], or to [[Second Sibling]].",
|
|
72 'second-sibling.txt': "Go back to [[Second]]."
|
|
73 }
|
|
74 })
|
|
75 first = Page(self.wiki, 'first')
|
|
76 self.assertEqual(['first-sibling'], first.local_links)
|
|
77 first2 = Page(self.wiki, 'first-sibling')
|
|
78 self.assertEqual(['first', 'sub_dir/second'], first2.local_links)
|
|
79 second = Page(self.wiki, 'sub_dir/second')
|
|
80 self.assertEqual(['first', 'sub_dir/second-sibling'], second.local_links)
|
|
81 second2 = Page(self.wiki, 'sub_dir/second-sibling')
|
|
82 self.assertEqual(['sub_dir/second'], second2.local_links)
|
|
83
|