~ubuntu-branches/ubuntu/natty/moin/natty-updates

« back to all changes in this revision

Viewing changes to MoinMoin/_tests/test_Page.py

  • Committer: Bazaar Package Importer
  • Author(s): Jonas Smedegaard
  • Date: 2008-06-22 21:17:13 UTC
  • mfrom: (0.9.1 upstream)
  • Revision ID: james.westby@ubuntu.com-20080622211713-fpo2zrq3s5dfecxg
Tags: 1.7.0-3
Simplify /etc/moin/wikilist format: "USER URL" (drop unneeded middle
CONFIG_DIR that was wrongly advertised as DATA_DIR).  Make
moin-mass-migrate handle both formats and warn about deprecation of
the old one.

Show diffs side-by-side

added added

removed removed

Lines of Context:
2
2
"""
3
3
    MoinMoin - MoinMoin.Page Tests
4
4
 
5
 
    @copyright: 2003-2004 by J�rgen Hermann <jh@web.de>
 
5
    @copyright: 2007 MoinMoin:ThomasWaldmann
6
6
    @license: GNU GPL, see COPYING for details.
7
7
"""
8
8
 
9
 
import unittest
10
 
from MoinMoin import Page
11
 
 
12
 
class existsTestCase(unittest.TestCase):
13
 
    """Page: testing wiki page"""
14
 
    
 
9
import py
 
10
 
 
11
from MoinMoin.Page import Page
 
12
 
 
13
class TestPage:
 
14
    def testMeta(self):
 
15
        page = Page(self.request, u'FrontPage')
 
16
        meta = page.meta
 
17
        for k, v in meta:
 
18
            if k == u'format':
 
19
                assert v == u'wiki'
 
20
            elif k == u'language':
 
21
                assert v == u'en'
 
22
 
 
23
    def testBody(self):
 
24
        page = Page(self.request, u'FrontPage')
 
25
        body = page.body
 
26
        assert type(body) is unicode
 
27
        assert 'MoinMoin' in body
 
28
        assert body.endswith('\n')
 
29
        assert '\r' not in body
 
30
 
15
31
    def testExists(self):
16
 
        """ Page: page.exists() finds existing pages only """
17
 
        tests = (
18
 
            # Page name,                            expected
19
 
            ('FrontPage',                           1),
20
 
            ('OnlyAnIdiotWouldCreateSuchaPage',     0),
21
 
            )
22
 
        for name, expected in tests:
23
 
            pg = Page.Page(self.request, name)
24
 
            self.assertEqual(pg.exists(), expected,
25
 
                             '%s should%s exist' % (name, (' not', '')[expected]))
 
32
        assert Page(self.request, 'FrontPage').exists()
 
33
        assert not Page(self.request, 'ThisPageDoesNotExist').exists()
 
34
        assert not Page(self.request, '').exists()
 
35
 
 
36
    def testEditInfoSystemPage(self):
 
37
        # system pages have no edit-log (and only 1 revision),
 
38
        # thus edit_info will return None
 
39
        page = Page(self.request, u'RecentChanges')
 
40
        edit_info = page.edit_info()
 
41
        assert edit_info == {}
 
42
 
 
43
    def testSplitTitle(self):
 
44
        page = Page(self.request, u"FrontPage")
 
45
        assert page.split_title(force=True) == u'Front Page'
 
46
 
 
47
    def testGetRevList(self):
 
48
        page = Page(self.request, u"FrontPage")
 
49
        assert 1 in page.getRevList()
 
50
 
 
51
    def testGetPageLinks(self):
 
52
        page = Page(self.request, u"FrontPage")
 
53
        assert u'WikiSandBox' in page.getPageLinks(self.request)
 
54
 
 
55
    def testSendPage(self):
 
56
        page = Page(self.request, u"FrontPage")
 
57
        import StringIO
 
58
        out = StringIO.StringIO()
 
59
        self.request.redirect(out)
 
60
        page.send_page(msg=u'Done', emit_headers=False)
 
61
        result = out.getvalue()
 
62
        self.request.redirect()
 
63
        del out
 
64
        assert result.strip().endswith('</html>')
 
65
        assert result.strip().startswith('<!DOCTYPE HTML PUBLIC')
 
66
 
 
67
class TestRootPage:
 
68
    def testPageList(self):
 
69
        rootpage = self.request.rootpage
 
70
        pagelist = rootpage.getPageList()
 
71
        assert len(pagelist) > 100
 
72
        assert u'FrontPage' in pagelist
 
73
        assert u'' not in pagelist
 
74
 
 
75
 
 
76
coverage_modules = ['MoinMoin.Page']
 
77