comparison tests/test_page.py @ 225:ebb12ff21cb2

Updated unit tests to be able to run.
author Ludovic Chabant <ludovic@chabant.com>
date Wed, 12 Mar 2014 23:02:40 -0700
parents ca57fef14d04
children be7275021f3a
comparison
equal deleted inserted replaced
224:d45450a0256a 225:ebb12ff21cb2
1 from tests import WikkedTest, format_link 1 from tests import WikkedTest, format_link
2 from wikked.page import Page
3 2
4 3
5 class PageTest(WikkedTest): 4 class PageTest(WikkedTest):
5 def _onWikiStarted(self, wiki):
6 wiki.reset()
7
8 def _getParameters(self, root=None):
9 params = WikkedTest._getParameters(self, root)
10 return params
11
6 def testSimplePage(self): 12 def testSimplePage(self):
7 self.wiki = self._getWikiFromStructure({ 13 wiki = self._getWikiFromStructure({
8 'foo.txt': 'A test page.' 14 '/foo.txt': 'A test page.'
9 }) 15 })
10 page = Page(self.wiki, 'foo') 16 page = wiki.getPage('/foo')
11 self.assertEqual('foo', page.url) 17 self.assertEqual('/foo', page.url)
12 self.assertEqual('foo.txt', page.path) 18 self.assertEqual('/foo.txt', page.path)
13 self.assertEqual('foo', page.filename) 19 self.assertEqual('foo', page.filename)
14 self.assertEqual('txt', page.extension) 20 self.assertEqual('txt', page.extension)
15 self.assertEqual('A test page.', page.raw_text) 21 self.assertEqual('A test page.', page.raw_text)
16 self.assertEqual('A test page.', page._getFormattedText()) 22 self.assertEqual('A test page.', page.getFormattedText())
17 self.assertEqual('foo', page.title) 23 self.assertEqual('foo', page.title)
18 self.assertEqual('A test page.', page.text) 24 self.assertEqual('A test page.', page.text)
19 self.assertEqual({}, page._getLocalMeta()) 25 self.assertEqual({}, page.getLocalMeta())
20 self.assertEqual([], page._getLocalLinks()) 26 self.assertEqual([], page.getLocalLinks())
21 27
22 def testPageMeta(self): 28 def testPageMeta(self):
23 self.wiki = self._getWikiFromStructure({ 29 wiki = self._getWikiFromStructure({
24 'foo.txt': "A page with simple meta.\n{{bar: baz}}\n{{is_test: }}" 30 '/foo.txt': "A page with simple meta.\n{{bar: baz}}\n{{is_test: }}"
25 }) 31 })
26 page = Page(self.wiki, 'foo') 32 page = wiki.getPage('/foo')
27 self.assertEqual('foo', page.url) 33 self.assertEqual('/foo', page.url)
28 self.assertEqual("A page with simple meta.\n{{bar: baz}}\n{{is_test: }}", page.raw_text) 34 self.assertEqual("A page with simple meta.\n{{bar: baz}}\n{{is_test: }}", page.raw_text)
29 self.assertEqual('A page with simple meta.\n\n', page._getFormattedText()) 35 self.assertEqual('A page with simple meta.\n\n', page.getFormattedText())
30 self.assertEqual('foo', page.title) 36 self.assertEqual('foo', page.title)
31 self.assertEqual('A page with simple meta.\n', page.text) 37 self.assertEqual('A page with simple meta.\n', page.text)
32 self.assertEqual({'bar': ['baz'], 'is_test': True}, page._getLocalMeta()) 38 self.assertEqual({'bar': ['baz'], 'is_test': [True]}, page.getLocalMeta())
33 self.assertEqual([], page._getLocalLinks()) 39 self.assertEqual([], page.getLocalLinks())
34 40
35 def testPageTitleMeta(self): 41 def testPageTitleMeta(self):
36 self.wiki = self._getWikiFromStructure({ 42 wiki = self._getWikiFromStructure({
37 'test_title.txt': "A page with a custom title.\n{{title: TEST-TITLE}}" 43 '/test_title.txt': "A page with a custom title.\n{{title: TEST-TITLE}}"
38 }) 44 })
39 page = Page(self.wiki, 'test_title') 45 page = wiki.getPage('/test_title')
40 self.assertEqual('test_title', page.url) 46 self.assertEqual('/test_title', page.url)
41 self.assertEqual("A page with a custom title.\n{{title: TEST-TITLE}}", page.raw_text) 47 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._getFormattedText()) 48 self.assertEqual('A page with a custom title.\n', page.getFormattedText())
43 self.assertEqual('TEST-TITLE', page.title) 49 self.assertEqual('TEST-TITLE', page.title)
44 self.assertEqual('A page with a custom title.', page.text) 50 self.assertEqual('A page with a custom title.', page.text)
45 self.assertEqual({'title': ['TEST-TITLE']}, page._getLocalMeta()) 51 self.assertEqual({'title': ['TEST-TITLE']}, page.getLocalMeta())
46 self.assertEqual([], page._getLocalLinks()) 52 self.assertEqual([], page.getLocalLinks())
47 53
48 def testPageOutLinks(self): 54 def testPageOutLinks(self):
49 self.wiki = self._getWikiFromStructure({ 55 wiki = self._getWikiFromStructure({
50 'test_links.txt': "Follow a link to the [[Sandbox]]. Or to [[this page|Other Sandbox]].", 56 '/TestLinks.txt': "Follow a link to the [[Sandbox]]. Or to [[this page|Other Sandbox]].",
51 'sandbox.txt': "This is just a placeholder." 57 '/Sandbox.txt': "This is just a placeholder."
52 }) 58 })
53 self.assertTrue(self.wiki.pageExists('sandbox', from_db=False)) 59 self.assertTrue(wiki.pageExists('/Sandbox'))
54 page = Page(self.wiki, 'test_links') 60 page = wiki.getPage('/TestLinks')
55 self.assertEqual('test_links', page.url) 61 self.assertEqual('/TestLinks', page.url)
56 self.assertEqual("Follow a link to the [[Sandbox]]. Or to [[this page|Other Sandbox]].", page.raw_text) 62 self.assertEqual("Follow a link to the [[Sandbox]]. Or to [[this page|Other Sandbox]].", page.raw_text)
57 self.assertEqual( 63 self.assertEqual(
58 "Follow a link to the %s. Or to %s." % ( 64 "Follow a link to the %s. Or to %s." % (
59 format_link('Sandbox', 'sandbox'), 65 format_link('Sandbox', '/Sandbox'),
60 format_link('this page', 'other-sandbox', True)), 66 format_link('this page', '/Other Sandbox', missing=True)),
61 page.text) 67 page.text)
62 self.assertEqual(set(['sandbox', 'other-sandbox']), set(page._getLocalLinks())) 68 self.assertEqual(set(['Sandbox', 'Other Sandbox']), set(page.getLocalLinks()))
69 self.assertEqual(set(['/Sandbox', '/Other Sandbox']), set(page.links))
63 70
64 def testPageRelativeOutLinks(self): 71 def testPageRelativeOutLinks(self):
65 self.wiki = self._getWikiFromStructure({ 72 wiki = self._getWikiFromStructure({
66 'first.txt': "Go to [[First Sibling]].", 73 '/First.txt': "Go to [[First Sibling]].",
67 'first-sibling.txt': "Go back to [[First]], or to [[sub_dir/Second]].", 74 '/First Sibling.txt': "Go back to [[First]], or to [[sub_dir/Second]].",
68 'sub_dir': { 75 '/sub_dir/Second.txt': "Go back to [[../First]], or to [[Second Sibling]].",
69 'second.txt': "Go back to [[../First]], or to [[Second Sibling]].", 76 '/sub_dir/Second Sibling.txt': "Go back to [[Second]]."
70 'second-sibling.txt': "Go back to [[Second]]."
71 }
72 }) 77 })
73 first = Page(self.wiki, 'first') 78 print str(list(wiki.getPageUrls()))
74 self.assertEqual(['first-sibling'], first._getLocalLinks()) 79 first = wiki.getPage('/First')
75 first2 = Page(self.wiki, 'first-sibling') 80 self.assertEqual(['/First Sibling'], first.links)
76 self.assertEqual(['first', 'sub_dir/second'], first2._getLocalLinks()) 81 first2 = wiki.getPage('/First Sibling')
77 second = Page(self.wiki, 'sub_dir/second') 82 self.assertEqual(['/First', '/sub_dir/Second'], first2.links)
78 self.assertEqual(['first', 'sub_dir/second-sibling'], second._getLocalLinks()) 83 second = wiki.getPage('/sub_dir/Second')
79 second2 = Page(self.wiki, 'sub_dir/second-sibling') 84 self.assertEqual(['/First', '/sub_dir/Second Sibling'], second.links)
80 self.assertEqual(['sub_dir/second'], second2._getLocalLinks()) 85 second2 = wiki.getPage('/sub_dir/Second Sibling')
86 self.assertEqual(['/sub_dir/Second'], second2.links)
81 87
82 def testGenericUrl(self): 88 def testGenericUrl(self):
83 self.wiki = self._getWikiFromStructure({ 89 wiki = self._getWikiFromStructure({
84 'foo.txt': "URL: [[url:/blah/boo/image.png]]" 90 '/foo.txt': "URL: [[blah|url:/blah/boo/raw.txt]]"
85 }) 91 })
86 foo = Page(self.wiki, 'foo') 92 foo = wiki.getPage('/foo')
87 self.assertEqual("URL: /files/blah/boo/image.png", foo._getFormattedText()) 93 self.assertEqual("URL: <a class=\"wiki-asset\" href=\"/files/blah/boo/raw.txt\">blah</a>", foo.getFormattedText())
94
95 def testImageUrl(self):
96 wiki = self._getWikiFromStructure({
97 '/foo.txt': "URL: [[blah|url:/blah/boo/image.png]]"
98 })
99 foo = wiki.getPage('/foo')
100 self.assertEqual("URL: <img src=\"/files/blah/boo/image.png\" alt=\"blah\"></img>", foo.getFormattedText())
88 101
89 def testUrlTemplateFunctions(self): 102 def testUrlTemplateFunctions(self):
90 self.wiki =self._getWikiFromStructure({ 103 wiki =self._getWikiFromStructure({
91 'foo.txt': "Here is {{read_url(__page.url, 'FOO')}}!" 104 '/foo.txt': "Here is {{read_url(__page.url, 'FOO')}}!"
92 }) 105 })
93 foo = Page(self.wiki, 'foo') 106 foo = wiki.getPage('/foo')
94 self.assertEqual( 107 self.assertEqual(
95 'Here is <a class="wiki-link" data-wiki-url="foo">FOO</a>!', 108 'Here is <a class="wiki-link" data-wiki-url="/foo">FOO</a>!',
96 foo.text 109 foo.text
97 ) 110 )