Тесты для sqlalchemy
parent
348214e2e9
commit
a906b6a2fc
|
@ -1,6 +1,8 @@
|
||||||
from pyramid.path import AssetResolver
|
from pyramid.path import AssetResolver
|
||||||
from pathlib import PurePath
|
from pathlib import PurePath
|
||||||
|
|
||||||
|
from .models import PageModel
|
||||||
|
|
||||||
|
|
||||||
def flat(d, path):
|
def flat(d, path):
|
||||||
structure = []
|
structure = []
|
||||||
|
@ -61,6 +63,7 @@ class Document(object):
|
||||||
self.__name__ = name
|
self.__name__ = name
|
||||||
self.__parent__ = parent
|
self.__parent__ = parent
|
||||||
self.__path__ = path
|
self.__path__ = path
|
||||||
|
PageModel(url=name)
|
||||||
|
|
||||||
|
|
||||||
class Markdown(Document):
|
class Markdown(Document):
|
||||||
|
|
|
@ -1,3 +1,3 @@
|
||||||
[pytest]
|
[pytest]
|
||||||
testpaths = flatfilecms
|
testpaths = tests
|
||||||
python_files = test*.py
|
python_files = test*.py
|
||||||
|
|
|
@ -0,0 +1,7 @@
|
||||||
|
---
|
||||||
|
title: Заглушка для тестов БД
|
||||||
|
description: Тестовая страница
|
||||||
|
template: onepage
|
||||||
|
---
|
||||||
|
|
||||||
|
Hello World!
|
|
@ -5,6 +5,7 @@ from pyramid import testing
|
||||||
import transaction
|
import transaction
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
def dummy_request(dbsession):
|
def dummy_request(dbsession):
|
||||||
return testing.DummyRequest(dbsession=dbsession)
|
return testing.DummyRequest(dbsession=dbsession)
|
||||||
|
|
||||||
|
@ -14,10 +15,10 @@ class BaseTest(unittest.TestCase):
|
||||||
self.config = testing.setUp(settings={
|
self.config = testing.setUp(settings={
|
||||||
'sqlalchemy.url': 'sqlite:///:memory:'
|
'sqlalchemy.url': 'sqlite:///:memory:'
|
||||||
})
|
})
|
||||||
self.config.include('.models')
|
self.config.include('flatfilecms.models')
|
||||||
settings = self.config.get_settings()
|
settings = self.config.get_settings()
|
||||||
|
|
||||||
from .models import (
|
from flatfilecms.models import (
|
||||||
get_engine,
|
get_engine,
|
||||||
get_session_factory,
|
get_session_factory,
|
||||||
get_tm_session,
|
get_tm_session,
|
||||||
|
@ -29,30 +30,48 @@ class BaseTest(unittest.TestCase):
|
||||||
self.session = get_tm_session(session_factory, transaction.manager)
|
self.session = get_tm_session(session_factory, transaction.manager)
|
||||||
|
|
||||||
def init_database(self):
|
def init_database(self):
|
||||||
from .models.meta import Base
|
from flatfilecms.models.meta import Base
|
||||||
Base.metadata.create_all(self.engine)
|
Base.metadata.create_all(self.engine)
|
||||||
|
|
||||||
def tearDown(self):
|
def tearDown(self):
|
||||||
from .models.meta import Base
|
from flatfilecms.models.meta import Base
|
||||||
|
|
||||||
testing.tearDown()
|
testing.tearDown()
|
||||||
transaction.abort()
|
transaction.abort()
|
||||||
Base.metadata.drop_all(self.engine)
|
Base.metadata.drop_all(self.engine)
|
||||||
|
|
||||||
|
|
||||||
|
class TestRootLoadSuccessCondition(BaseTest):
|
||||||
|
def setUp(self):
|
||||||
|
super(TestRootLoadSuccessCondition, self).setUp()
|
||||||
|
|
||||||
|
from flatfilecms.resources import Root
|
||||||
|
self.pages = Root('../tests/pages')
|
||||||
|
|
||||||
|
def test_loaded_structure(self):
|
||||||
|
assert 'index' in self.pages
|
||||||
|
|
||||||
|
def test_db_contains_pages(self):
|
||||||
|
from flatfilecms.models import PageModel
|
||||||
|
|
||||||
|
index = self.session.query(PageModel).get('/')
|
||||||
|
|
||||||
|
assert index.title == 'Заглушка для тестов БД'
|
||||||
|
|
||||||
|
|
||||||
# class TestMyViewSuccessCondition(BaseTest):
|
# class TestMyViewSuccessCondition(BaseTest):
|
||||||
|
|
||||||
# def setUp(self):
|
# def setUp(self):
|
||||||
# super(TestMyViewSuccessCondition, self).setUp()
|
# super(TestMyViewSuccessCondition, self).setUp()
|
||||||
# self.init_database()
|
# self.init_database()
|
||||||
|
|
||||||
# from .models import PageModel
|
# from flatfilecms.models import PageModel
|
||||||
|
|
||||||
# model = PageModel(name='one', value=55)
|
# model = PageModel(name='one', value=55)
|
||||||
# self.session.add(model)
|
# self.session.add(model)
|
||||||
|
|
||||||
# def test_passing_view(self):
|
# def test_passing_view(self):
|
||||||
# from .views.default import my_view
|
# from flatfilecms.views.default import my_view
|
||||||
# info = my_view(dummy_request(self.session))
|
# info = my_view(dummy_request(self.session))
|
||||||
# self.assertEqual(info['one'].name, 'one')
|
# self.assertEqual(info['one'].name, 'one')
|
||||||
# self.assertEqual(info['project'], 'db')
|
# self.assertEqual(info['project'], 'db')
|
||||||
|
@ -61,6 +80,6 @@ class BaseTest(unittest.TestCase):
|
||||||
# class TestMyViewFailureCondition(BaseTest):
|
# class TestMyViewFailureCondition(BaseTest):
|
||||||
|
|
||||||
# def test_failing_view(self):
|
# def test_failing_view(self):
|
||||||
# from .views.default import my_view
|
# from flatfilecms.views.default import my_view
|
||||||
# info = my_view(dummy_request(self.session))
|
# info = my_view(dummy_request(self.session))
|
||||||
# self.assertEqual(info.status_int, 500)
|
# self.assertEqual(info.status_int, 500)
|
Reference in New Issue