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:')