Holger Frey
7 years ago
5 changed files with 53 additions and 71 deletions
@ -1,65 +0,0 @@
@@ -1,65 +0,0 @@
|
||||
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(None, dummy_request(self.session)) |
||||
self.assertEqual(info['one'].name, 'one') |
||||
self.assertEqual(info['project'], 'Ordr') |
||||
|
||||
|
||||
class TestMyViewFailureCondition(BaseTest): |
||||
|
||||
def test_failing_view(self): |
||||
from .views.default import my_view |
||||
info = my_view(None, dummy_request(self.session)) |
||||
self.assertEqual(info.status_int, 500) |
@ -0,0 +1,51 @@
@@ -0,0 +1,51 @@
|
||||
import pytest |
||||
import transaction |
||||
|
||||
from pyramid import testing |
||||
|
||||
|
||||
APP_SETTINGS = { |
||||
'sqlalchemy.url': 'sqlite:///:memory:', |
||||
} |
||||
|
||||
|
||||
@pytest.fixture(scope='session') |
||||
def app_config(): |
||||
''' fixture for tests requiring a pyramid.testing setup ''' |
||||
with testing.testConfig(settings=APP_SETTINGS) as config: |
||||
config.include('pyramid_jinja2') |
||||
config.include('pyramid_listing') |
||||
yield config |
||||
|
||||
|
||||
@pytest.fixture(scope='session') |
||||
def dbsession(app_config): |
||||
''' fixture for testing with database connection ''' |
||||
from ordr.models.meta import Base |
||||
from ordr.models import ( |
||||
get_engine, |
||||
get_session_factory, |
||||
get_tm_session |
||||
) |
||||
|
||||
settings = app_config.get_settings() |
||||
engine = get_engine(settings) |
||||
session_factory = get_session_factory(engine) |
||||
session = get_tm_session(session_factory, transaction.manager) |
||||
Base.metadata.create_all(engine) |
||||
|
||||
yield session |
||||
|
||||
transaction.abort() |
||||
Base.metadata.drop_all(engine) |
||||
|
||||
|
||||
def test_passing_view(dbsession): |
||||
from ordr.views.default import my_view |
||||
from ordr.models import MyModel |
||||
model = MyModel(name='one', value=55) |
||||
dbsession.add(model) |
||||
info = my_view(None, testing.DummyRequest(dbsession=dbsession)) |
||||
assert info['one'].name == 'one' |
||||
assert info['project'] == 'Ordr' |
||||
|
@ -1,3 +0,0 @@
@@ -1,3 +0,0 @@
|
||||
[pytest] |
||||
testpaths = ordr |
||||
python_files = *.py |
Reference in new issue