61 lines
1.7 KiB
Python
61 lines
1.7 KiB
Python
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')
|