1
# -*- coding: iso-8859-1 -*-
3
MoinMoin - MoinMoin.macro PageHits tested
5
@copyright: 2008 MoinMoin:ReimarBauer
7
@license: GNU GPL, see COPYING for details.
11
from MoinMoin import caching, macro
12
from MoinMoin.logfile import eventlog
13
from MoinMoin.PageEditor import PageEditor
14
from MoinMoin.Page import Page
16
from MoinMoin._tests import become_trusted, create_page, nuke_page
19
"""Hits: testing Hits macro """
20
pagename = u'AutoCreatedMoinMoinTemporaryTestPageForPageHits'
22
def setup_class(self):
23
request = self.request
24
become_trusted(request)
25
self.page = create_page(request, self.pagename, u"Foo!")
27
# for that test eventlog needs to be empty
28
fpath = request.rootpage.getPagePath('event-log', isfile=1)
29
if os.path.exists(fpath):
32
# hits is based on hitcounts which reads the cache
33
caching.CacheEntry(request, 'charts', 'pagehits', scope='wiki').remove()
34
caching.CacheEntry(request, 'charts', 'hitcounts', scope='wiki').remove()
36
def teardown_class(self):
37
nuke_page(self.request, self.pagename)
39
def _make_macro(self):
41
from MoinMoin.parser.text import Parser
42
from MoinMoin.formatter.text_html import Formatter
43
p = Parser("##\n", self.request)
44
p.formatter = Formatter(self.request)
45
p.formatter.page = self.page
46
self.request.formatter = p.formatter
47
p.form = self.request.form
51
def _test_macro(self, name, args):
52
m = self._make_macro()
53
return m.execute(name, args)
55
def testPageHits(self):
56
""" macro PageHits test: updating of cache from event-log for multiple call of PageHits"""
58
for counter in range(count):
59
eventlog.EventLog(self.request).add(self.request, 'VIEWPAGE', {'pagename': 'PageHits'})
60
result = self._test_macro(u'PageHits', u'') # XXX SENSE???
62
cache = caching.CacheEntry(self.request, 'charts', 'pagehits', scope='wiki', use_pickle=True)
66
date, hits = cache.content()
67
except caching.CacheError:
69
assert hits['PageHits'] == count
71
coverage_modules = ['MoinMoin.macro.PageHits']