initial import
This commit is contained in:
65
mondumas/tests.py
Normal file
65
mondumas/tests.py
Normal file
@@ -0,0 +1,65 @@
|
||||
import unittest
|
||||
import transaction
|
||||
|
||||
from pyramid import testing
|
||||
|
||||
|
||||
def dummy_request(dbsession):
|
||||
return testing.DummyRequest(dbsession=dbsession)
|
||||
|
||||
|
||||
class BaseTest(unittest.TestCase):
|
||||
def setUp(self):
|
||||
self.config = testing.setUp(settings={
|
||||
'sqlalchemy.url': 'sqlite:///:memory:'
|
||||
})
|
||||
self.config.include('.models')
|
||||
settings = self.config.get_settings()
|
||||
|
||||
from .models import (
|
||||
get_engine,
|
||||
get_session_factory,
|
||||
get_tm_session,
|
||||
)
|
||||
|
||||
self.engine = get_engine(settings)
|
||||
session_factory = get_session_factory(self.engine)
|
||||
|
||||
self.session = get_tm_session(session_factory, transaction.manager)
|
||||
|
||||
def init_database(self):
|
||||
from .models.meta import Base
|
||||
Base.metadata.create_all(self.engine)
|
||||
|
||||
def tearDown(self):
|
||||
from .models.meta import Base
|
||||
|
||||
testing.tearDown()
|
||||
transaction.abort()
|
||||
Base.metadata.drop_all(self.engine)
|
||||
|
||||
|
||||
class TestMyViewSuccessCondition(BaseTest):
|
||||
|
||||
def setUp(self):
|
||||
super(TestMyViewSuccessCondition, self).setUp()
|
||||
self.init_database()
|
||||
|
||||
from .models import MyModel
|
||||
|
||||
model = MyModel(name='one', value=55)
|
||||
self.session.add(model)
|
||||
|
||||
def test_passing_view(self):
|
||||
from .views.default import my_view
|
||||
info = my_view(dummy_request(self.session))
|
||||
self.assertEqual(info['one'].name, 'one')
|
||||
self.assertEqual(info['project'], 'td_members')
|
||||
|
||||
|
||||
class TestMyViewFailureCondition(BaseTest):
|
||||
|
||||
def test_failing_view(self):
|
||||
from .views.default import my_view
|
||||
info = my_view(dummy_request(self.session))
|
||||
self.assertEqual(info.status_int, 500)
|
||||
Reference in New Issue
Block a user