import unittest import transaction from pyramid import testing def dummy_request(dbsession): return testing.DummyRequest(dbsession=dbsession) class BaseTest(unittest.TestCase): def setUp(self): from ..models import get_tm_session self.config = testing.setUp(settings={ 'sqlalchemy.url': 'sqlite:///:memory:' }) self.config.include('..models') self.config.include('..routes') session_factory = self.config.registry['dbsession_factory'] self.session = get_tm_session(session_factory, transaction.manager) self.init_database() def init_database(self): from .models.meta import Base session_factory = self.config.registry['dbsession_factory'] engine = session_factory.kw['bind'] Base.metadata.create_all(engine) def tearDown(self): testing.tearDown() transaction.abort() def makeUser(self, name, role, password='dummy'): from ..models import User user = User(name=name, role=role) user.set_password(password) return user def makePage(self, name, data, creator): from ..models import Page return Page(name=name, data=data, creator=creator) class ViewWikiTests(unittest.TestCase): def setUp(self): self.config = testing.setUp() self.config.include('..routes') def tearDown(self): testing.tearDown() def _callFUT(self, request): from tutorial.views.default import view_wiki return view_wiki(request) def test_it(self): request = testing.DummyRequest() response = self._callFUT(request) self.assertEqual(response.location, 'http://example.com/FrontPage')