Mercurial > wikked
comparison tests/test_db.py @ 225:ebb12ff21cb2
Updated unit tests to be able to run.
author | Ludovic Chabant <ludovic@chabant.com> |
---|---|
date | Wed, 12 Mar 2014 23:02:40 -0700 |
parents | 2733871775cd |
children |
comparison
equal
deleted
inserted
replaced
224:d45450a0256a | 225:ebb12ff21cb2 |
---|---|
1 import os.path | |
2 from tests import WikkedTest | 1 from tests import WikkedTest |
3 from mock import MockFileSystem | |
4 from wikked.fs import FileSystem | |
5 from wikked.db import SQLiteDatabase | |
6 | 2 |
7 | 3 |
8 class DatabaseTest(WikkedTest): | 4 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): | 5 def testEmpty(self): |
15 self.wiki = self._getWikiFromStructure({}) | 6 wiki = self._getWikiFromStructure({}) |
16 self.assertEqual([], list(self.wiki.getPageUrls())) | 7 self.assertEqual([], list(wiki.getPageUrls())) |
17 | 8 |
18 def testOnePage(self): | 9 def testOnePage(self): |
19 self.wiki = self._getWikiFromStructure({ | 10 wiki = self._getWikiFromStructure({ |
20 'foo.txt': 'A test page.' | 11 '/foo.txt': 'A test page.' |
21 }) | 12 }) |
22 self.assertEqual(['foo'], list(self.wiki.getPageUrls())) | 13 self.assertEqual(['/foo'], list(wiki.getPageUrls())) |
23 page = self.wiki.getPage('foo') | 14 page = wiki.getPage('/foo') |
24 self.assertEqual('foo', page.url) | 15 self.assertEqual('/foo', page.url) |
25 self.assertEqual(os.path.join(self.root, 'foo.txt'), page.path) | 16 self.assertEqual('/foo.txt', page.path) |
26 self.assertEqual('A test page.', page.raw_text) | 17 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 | |
35 # Open the DB before we do anything so that it will be closed | |
36 # only on `tearDown` (memory DBs are discarded when the | |
37 # connection is closed. | |
38 wiki.db.open() | |
39 | |
40 wiki.start() | |
41 return wiki | |
42 | |
43 def _fsFactory(self, config): | |
44 return FileSystem(self.root) | |
45 | |
46 def _dbFactory(self, config): | |
47 return SQLiteDatabase(':memory:') |