Mercurial > wikked
diff tests/__init__.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 | 65f83a9b42f1 |
children | 03e3e793fa22 |
line wrap: on
line diff
--- a/tests/__init__.py Mon Mar 10 16:47:21 2014 -0700 +++ b/tests/__init__.py Wed Mar 12 23:02:40 2014 -0700 @@ -1,53 +1,81 @@ import os import os.path +import urllib import shutil import unittest from wikked.wiki import Wiki +from wikked.db.sql import SQLDatabase from mock import MockWikiParameters, MockFileSystem +class MockWikiParametersWithStructure(MockWikiParameters): + def __init__(self, structure, root=None): + super(MockWikiParametersWithStructure, self).__init__(root) + self.structure = structure + + def fs_factory(self): + return MockFileSystem(self.root, self.config, self.structure) + + class WikkedTest(unittest.TestCase): def setUp(self): # Directory you can use for temporary files. - self.root = os.path.join( + self.test_data_dir = os.path.join( os.path.dirname(os.path.dirname(__file__)), 'test_data') def tearDown(self): - if hasattr(self, 'root') and os.path.isdir(self.root): - shutil.rmtree(self.root) + if hasattr(self, 'wiki') and self.wiki is not None: + self.wiki.db.close(False, None) + + if os.path.isdir(self.test_data_dir): + shutil.rmtree(self.test_data_dir) - def getWiki(self, **kwargs): - parameters = self.getParameters() + def _getParameters(self, root=None): + return MockWikiParameters(root) + + def _getWiki(self, parameters=None, **kwargs): + parameters = parameters or self._getParameters() for key in kwargs: setattr(parameters, key, kwargs[key]) - wiki = Wiki(parameters) + self.wiki = Wiki(parameters) + self._onWikiCreated(self.wiki) + return self.wiki + + def _getStartedWiki(self, **kwargs): + wiki = self._getWiki(**kwargs) + wiki.start() + self._onWikiStarted(wiki) return wiki - def getStartedWiki(self, **kwargs): - wiki = self.getWiki(**kwargs) - wiki.start() + def _getWikiFromStructure(self, structure, root='/'): + params = self._getParameters(root) + params.fs_factory = lambda: MockFileSystem( + params.root, params.config, structure) + params.db_factory = lambda: SQLDatabase(params.config) + params.config_text = "[wiki]\ndatabase_url = sqlite://\n" + wiki = self._getStartedWiki(parameters=params) return wiki - def getParameters(self): - return MockWikiParameters() + def _onWikiCreated(self, wiki): + pass - def _getWikiFromStructure(self, structure): - wiki = self.getWiki(use_db=False, fs_factory=lambda cfg: MockFileSystem(structure)) - wiki.start() - return wiki + def _onWikiStarted(self, wiki): + wiki.reset() def format_link(title, url, missing=False, mod=None): res = '<a class=\"wiki-link' if missing: res += ' missing' + url = urllib.quote(url) res += '\" data-wiki-url=\"' + url + '\"' if mod: res += ' data-wiki-mod=\"' + mod + '\"' res += '>' + title + '</a>' return res + def format_include(url, args=None, mod=None): res = '<div class=\"wiki-include\" data-wiki-url=\"' + url + '\"' if mod: