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)