From a906b6a2fcfff274a189f24fdaf33fca191b5e01 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=90=D0=BD=D1=82=D0=BE=D0=BD=20=D0=9A=D0=B0=D1=81=D0=B8?= =?UTF-8?q?=D0=BC=D0=BE=D0=B2?= Date: Sun, 10 Feb 2019 19:57:35 +0300 Subject: [PATCH] =?UTF-8?q?=D0=A2=D0=B5=D1=81=D1=82=D1=8B=20=D0=B4=D0=BB?= =?UTF-8?q?=D1=8F=20sqlalchemy?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- flatfilecms/resources.py | 3 +++ pytest.ini | 2 +- tests/pages/index.md | 7 +++++ flatfilecms/tests.py => tests/test_db.py | 33 +++++++++++++++++++----- 4 files changed, 37 insertions(+), 8 deletions(-) create mode 100644 tests/pages/index.md rename flatfilecms/tests.py => tests/test_db.py (62%) diff --git a/flatfilecms/resources.py b/flatfilecms/resources.py index 061bb49..2f89e41 100644 --- a/flatfilecms/resources.py +++ b/flatfilecms/resources.py @@ -1,6 +1,8 @@ from pyramid.path import AssetResolver from pathlib import PurePath +from .models import PageModel + def flat(d, path): structure = [] @@ -61,6 +63,7 @@ class Document(object): self.__name__ = name self.__parent__ = parent self.__path__ = path + PageModel(url=name) class Markdown(Document): diff --git a/pytest.ini b/pytest.ini index 49e7ade..18522a6 100644 --- a/pytest.ini +++ b/pytest.ini @@ -1,3 +1,3 @@ [pytest] -testpaths = flatfilecms +testpaths = tests python_files = test*.py diff --git a/tests/pages/index.md b/tests/pages/index.md new file mode 100644 index 0000000..5466d95 --- /dev/null +++ b/tests/pages/index.md @@ -0,0 +1,7 @@ +--- +title: Заглушка для тестов БД +description: Тестовая страница +template: onepage +--- + +Hello World! diff --git a/flatfilecms/tests.py b/tests/test_db.py similarity index 62% rename from flatfilecms/tests.py rename to tests/test_db.py index 09ca294..7b662db 100644 --- a/flatfilecms/tests.py +++ b/tests/test_db.py @@ -5,6 +5,7 @@ from pyramid import testing import transaction + def dummy_request(dbsession): return testing.DummyRequest(dbsession=dbsession) @@ -14,10 +15,10 @@ class BaseTest(unittest.TestCase): self.config = testing.setUp(settings={ 'sqlalchemy.url': 'sqlite:///:memory:' }) - self.config.include('.models') + self.config.include('flatfilecms.models') settings = self.config.get_settings() - from .models import ( + from flatfilecms.models import ( get_engine, get_session_factory, get_tm_session, @@ -29,30 +30,48 @@ class BaseTest(unittest.TestCase): self.session = get_tm_session(session_factory, transaction.manager) def init_database(self): - from .models.meta import Base + from flatfilecms.models.meta import Base Base.metadata.create_all(self.engine) def tearDown(self): - from .models.meta import Base + from flatfilecms.models.meta import Base testing.tearDown() transaction.abort() 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): # def setUp(self): # super(TestMyViewSuccessCondition, self).setUp() # self.init_database() -# from .models import PageModel +# from flatfilecms.models import PageModel # model = PageModel(name='one', value=55) # self.session.add(model) # 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)) # self.assertEqual(info['one'].name, 'one') # self.assertEqual(info['project'], 'db') @@ -61,6 +80,6 @@ class BaseTest(unittest.TestCase): # class TestMyViewFailureCondition(BaseTest): # 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)) # self.assertEqual(info.status_int, 500)