Child: [df8009] (diff)

Download this file

test_wiki2markdown.py    84 lines (62 with data), 2.7 kB

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
import mock
from forgewiki.command.wiki2markdown.extractors import MySQLExtractor
from forgewiki.command.wiki2markdown.loaders import MediawikiLoader
from alluratest.controller import setup_basic_test
from allura import model as M
from forgewiki import model as WM
from allura.lib import helpers as h
import pylons
pylons.c = pylons.tmpl_context
from pylons import c as context
class TestMySQLExtractor(object):
def setUp(self):
setup_basic_test()
self.options = mock.Mock()
self.options.dump_dir = '/tmp/w2m_test'
# monkey-patch MySQLExtractor for test
def pages(self):
# yield (page_id, page_data)
yield 1, {'title': 'Test title', 'text': 'Test Text'}
yield 2, {'title': 'Main_Page', 'text': 'Main_page text'}
yield 3, {'title': 'Test', 'text': ''}
MySQLExtractor._pages = pages
self.extractor = MySQLExtractor(self.options)
def test_extract_pages(self):
self.extractor.extract_pages()
with open('/tmp/w2m_test/pages/1.json', 'r') as f:
json_page = f.read()
assert json_page == '{"text": "Test Text", "title": "Test title"}'
with open('/tmp/w2m_test/pages/2.json', 'r') as f:
json_page = f.read()
assert json_page == '{"text": "Main_page text", "title": "Main_Page"}'
with open('/tmp/w2m_test/pages/3.json', 'r') as f:
json_page = f.read()
assert json_page == '{"text": "", "title": "Test"}'
class TestMediawikiLoader(object):
def setUp(self):
setup_basic_test()
self.options = mock.Mock()
# need test project with installed wiki app
self.options.nbhd = 'Adobe'
self.options.project = '--init--'
nbhd = M.Neighborhood.query.get(name=self.options.nbhd)
h.set_context(self.options.project, 'wiki', neighborhood=nbhd)
# monkey-patch MediawikiLoader for test
def pages(self):
yield {'title': 'Test title', 'text': "'''bold''' ''italics''"}
yield {'title': 'Main', 'text': "main"}
yield {'title': 'Test', 'text': 'test'}
MediawikiLoader._pages = pages
self.loader = MediawikiLoader(self.options)
def get_page(self, title):
return WM.Page.query.get(app_config_id=context.app.config._id,
title=title)
def test_load_pages(self):
self.loader.load_pages()
page = self.get_page('Test title')
assert '**bold** _italics_' in page.text
page = self.get_page('Main')
assert 'main' in page.text
page = self.get_page('Test')
print page.text, len(page.text)
assert 'test' in page.text