Mercurial > wikked
comparison tests/test_db.py @ 49:fb6ae96756c1
Added unit tests.
Refactored core APIs to make them more testable.
Removed unused stuff like caching the configuration in the SQL database.
Fixed the web bootstrap.
Some cosmetic changes to be PEP8 compliant.
author | Ludovic Chabant <ludovic@chabant.com> |
---|---|
date | Mon, 28 Jan 2013 23:13:04 -0800 |
parents | |
children | 2733871775cd |
comparison
equal
deleted
inserted
replaced
48:9658edea3121 | 49:fb6ae96756c1 |
---|---|
1 import os.path | |
2 from tests import WikkedTest | |
3 from mock import MockFileSystem | |
4 from wikked.fs import FileSystem | |
5 from wikked.db import SQLiteDatabase | |
6 | |
7 | |
8 class DatabaseTest(WikkedTest): | |
9 def tearDown(self): | |
10 if hasattr(self, 'wiki') and self.wiki: | |
11 self.wiki.db.close() | |
12 WikkedTest.tearDown(self) | |
13 | |
14 def testEmpty(self): | |
15 self.wiki = self._getWikiFromStructure({}) | |
16 self.assertEqual([], list(self.wiki.getPageUrls())) | |
17 | |
18 def testOnePage(self): | |
19 self.wiki = self._getWikiFromStructure({ | |
20 'foo.txt': 'A test page.' | |
21 }) | |
22 self.assertEqual(['foo'], list(self.wiki.getPageUrls())) | |
23 page = self.wiki.getPage('foo') | |
24 self.assertEqual('foo', page.url) | |
25 self.assertEqual(os.path.join(self.root, 'foo.txt'), page.path) | |
26 self.assertEqual('A test page.', page.raw_text) | |
27 | |
28 def _getWikiFromStructure(self, structure): | |
29 MockFileSystem.save_structure(self.root, structure) | |
30 wiki = self.getWiki( | |
31 db_factory=self._dbFactory, | |
32 fs_factory=self._fsFactory | |
33 ) | |
34 wiki.db.open() | |
35 wiki.start() | |
36 return wiki | |
37 | |
38 def _fsFactory(self, config): | |
39 return FileSystem(self.root) | |
40 | |
41 def _dbFactory(self, config): | |
42 return SQLiteDatabase(':memory:') |