annotate tests/__init__.py @ 83:65f83a9b42f1

Added support for numbered template parameters. Moved resolver code into its own file. Added unit tests.
author Ludovic Chabant <ludovic@chabant.com>
date Sun, 24 Mar 2013 22:06:50 -0700
parents 9dfbc2a40b71
children ebb12ff21cb2
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
49
fb6ae96756c1 Added unit tests.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1 import os
fb6ae96756c1 Added unit tests.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
2 import os.path
fb6ae96756c1 Added unit tests.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
3 import shutil
fb6ae96756c1 Added unit tests.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
4 import unittest
fb6ae96756c1 Added unit tests.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
5 from wikked.wiki import Wiki
83
65f83a9b42f1 Added support for numbered template parameters.
Ludovic Chabant <ludovic@chabant.com>
parents: 54
diff changeset
6 from mock import MockWikiParameters, MockFileSystem
49
fb6ae96756c1 Added unit tests.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
7
fb6ae96756c1 Added unit tests.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
8
fb6ae96756c1 Added unit tests.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
9 class WikkedTest(unittest.TestCase):
fb6ae96756c1 Added unit tests.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
10 def setUp(self):
51
2733871775cd More unit tests.
Ludovic Chabant <ludovic@chabant.com>
parents: 49
diff changeset
11 # Directory you can use for temporary files.
49
fb6ae96756c1 Added unit tests.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
12 self.root = os.path.join(
fb6ae96756c1 Added unit tests.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
13 os.path.dirname(os.path.dirname(__file__)),
fb6ae96756c1 Added unit tests.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
14 'test_data')
fb6ae96756c1 Added unit tests.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
15
fb6ae96756c1 Added unit tests.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
16 def tearDown(self):
fb6ae96756c1 Added unit tests.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
17 if hasattr(self, 'root') and os.path.isdir(self.root):
fb6ae96756c1 Added unit tests.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
18 shutil.rmtree(self.root)
fb6ae96756c1 Added unit tests.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
19
fb6ae96756c1 Added unit tests.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
20 def getWiki(self, **kwargs):
fb6ae96756c1 Added unit tests.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
21 parameters = self.getParameters()
fb6ae96756c1 Added unit tests.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
22 for key in kwargs:
fb6ae96756c1 Added unit tests.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
23 setattr(parameters, key, kwargs[key])
fb6ae96756c1 Added unit tests.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
24 wiki = Wiki(parameters)
fb6ae96756c1 Added unit tests.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
25 return wiki
fb6ae96756c1 Added unit tests.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
26
fb6ae96756c1 Added unit tests.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
27 def getStartedWiki(self, **kwargs):
fb6ae96756c1 Added unit tests.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
28 wiki = self.getWiki(**kwargs)
fb6ae96756c1 Added unit tests.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
29 wiki.start()
fb6ae96756c1 Added unit tests.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
30 return wiki
fb6ae96756c1 Added unit tests.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
31
fb6ae96756c1 Added unit tests.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
32 def getParameters(self):
fb6ae96756c1 Added unit tests.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
33 return MockWikiParameters()
54
9dfbc2a40b71 Formatter changes:
Ludovic Chabant <ludovic@chabant.com>
parents: 51
diff changeset
34
83
65f83a9b42f1 Added support for numbered template parameters.
Ludovic Chabant <ludovic@chabant.com>
parents: 54
diff changeset
35 def _getWikiFromStructure(self, structure):
65f83a9b42f1 Added support for numbered template parameters.
Ludovic Chabant <ludovic@chabant.com>
parents: 54
diff changeset
36 wiki = self.getWiki(use_db=False, fs_factory=lambda cfg: MockFileSystem(structure))
65f83a9b42f1 Added support for numbered template parameters.
Ludovic Chabant <ludovic@chabant.com>
parents: 54
diff changeset
37 wiki.start()
65f83a9b42f1 Added support for numbered template parameters.
Ludovic Chabant <ludovic@chabant.com>
parents: 54
diff changeset
38 return wiki
65f83a9b42f1 Added support for numbered template parameters.
Ludovic Chabant <ludovic@chabant.com>
parents: 54
diff changeset
39
54
9dfbc2a40b71 Formatter changes:
Ludovic Chabant <ludovic@chabant.com>
parents: 51
diff changeset
40
9dfbc2a40b71 Formatter changes:
Ludovic Chabant <ludovic@chabant.com>
parents: 51
diff changeset
41 def format_link(title, url, missing=False, mod=None):
9dfbc2a40b71 Formatter changes:
Ludovic Chabant <ludovic@chabant.com>
parents: 51
diff changeset
42 res = '<a class=\"wiki-link'
9dfbc2a40b71 Formatter changes:
Ludovic Chabant <ludovic@chabant.com>
parents: 51
diff changeset
43 if missing:
9dfbc2a40b71 Formatter changes:
Ludovic Chabant <ludovic@chabant.com>
parents: 51
diff changeset
44 res += ' missing'
9dfbc2a40b71 Formatter changes:
Ludovic Chabant <ludovic@chabant.com>
parents: 51
diff changeset
45 res += '\" data-wiki-url=\"' + url + '\"'
9dfbc2a40b71 Formatter changes:
Ludovic Chabant <ludovic@chabant.com>
parents: 51
diff changeset
46 if mod:
9dfbc2a40b71 Formatter changes:
Ludovic Chabant <ludovic@chabant.com>
parents: 51
diff changeset
47 res += ' data-wiki-mod=\"' + mod + '\"'
9dfbc2a40b71 Formatter changes:
Ludovic Chabant <ludovic@chabant.com>
parents: 51
diff changeset
48 res += '>' + title + '</a>'
9dfbc2a40b71 Formatter changes:
Ludovic Chabant <ludovic@chabant.com>
parents: 51
diff changeset
49 return res
9dfbc2a40b71 Formatter changes:
Ludovic Chabant <ludovic@chabant.com>
parents: 51
diff changeset
50
9dfbc2a40b71 Formatter changes:
Ludovic Chabant <ludovic@chabant.com>
parents: 51
diff changeset
51 def format_include(url, args=None, mod=None):
9dfbc2a40b71 Formatter changes:
Ludovic Chabant <ludovic@chabant.com>
parents: 51
diff changeset
52 res = '<div class=\"wiki-include\" data-wiki-url=\"' + url + '\"'
9dfbc2a40b71 Formatter changes:
Ludovic Chabant <ludovic@chabant.com>
parents: 51
diff changeset
53 if mod:
9dfbc2a40b71 Formatter changes:
Ludovic Chabant <ludovic@chabant.com>
parents: 51
diff changeset
54 res += ' data-wiki-mod=\"' + mod + '\"'
9dfbc2a40b71 Formatter changes:
Ludovic Chabant <ludovic@chabant.com>
parents: 51
diff changeset
55 res += '>'
9dfbc2a40b71 Formatter changes:
Ludovic Chabant <ludovic@chabant.com>
parents: 51
diff changeset
56 if args:
9dfbc2a40b71 Formatter changes:
Ludovic Chabant <ludovic@chabant.com>
parents: 51
diff changeset
57 res += args
9dfbc2a40b71 Formatter changes:
Ludovic Chabant <ludovic@chabant.com>
parents: 51
diff changeset
58 res += "</div>\n"
9dfbc2a40b71 Formatter changes:
Ludovic Chabant <ludovic@chabant.com>
parents: 51
diff changeset
59 return res