From 255aa9b57ac560637cb93e6a63dca589c608a034 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: Sat, 23 Feb 2019 23:51:06 +0300 Subject: [PATCH] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB=D0=B5?= =?UTF-8?q?=D0=BD=D1=8B=20=D1=82=D0=B5=D1=81=D1=82=D1=8B=20=D0=B4=D0=BB?= =?UTF-8?q?=D1=8F=20=D0=B7=D0=B0=D0=B4=D0=B0=D1=87=D0=B8=20[#22]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- tests/__init__.py | 0 tests/data/menu/default.yaml | 0 tests/pages/index.md | 2 +- tests/pages/view.md | 8 +++++ tests/pages/views.md | 13 ++++++++ tests/templates/test_markdown.jinja2 | 1 + tests/test_pages.py | 48 +++++++++++++++++++++++++--- tests/views.py | 10 ++++++ 8 files changed, 77 insertions(+), 5 deletions(-) create mode 100644 tests/__init__.py create mode 100644 tests/data/menu/default.yaml create mode 100644 tests/pages/view.md create mode 100644 tests/pages/views.md create mode 100644 tests/templates/test_markdown.jinja2 create mode 100644 tests/views.py diff --git a/tests/__init__.py b/tests/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/tests/data/menu/default.yaml b/tests/data/menu/default.yaml new file mode 100644 index 0000000..e69de29 diff --git a/tests/pages/index.md b/tests/pages/index.md index 5466d95..94a4e9a 100644 --- a/tests/pages/index.md +++ b/tests/pages/index.md @@ -1,7 +1,7 @@ --- title: Заглушка для тестов БД description: Тестовая страница -template: onepage +template: tests:templates/test_markdown --- Hello World! diff --git a/tests/pages/view.md b/tests/pages/view.md new file mode 100644 index 0000000..5291cfe --- /dev/null +++ b/tests/pages/view.md @@ -0,0 +1,8 @@ +--- +title: Тест одиночного view +description: Тесты view +template: tests:templates/test_markdown +view: tests.views.test1 +--- + +Hello World! diff --git a/tests/pages/views.md b/tests/pages/views.md new file mode 100644 index 0000000..d7129b9 --- /dev/null +++ b/tests/pages/views.md @@ -0,0 +1,13 @@ +--- +title: Тест нескольких view с конфигурацией +description: Тесты view +template: tests:templates/test_markdown +view: + - tests.views.test1 + - tests.views.test2 + - tests.views.test3: + a: 1 + b: 2 +--- + +Hello World! diff --git a/tests/templates/test_markdown.jinja2 b/tests/templates/test_markdown.jinja2 new file mode 100644 index 0000000..b92f652 --- /dev/null +++ b/tests/templates/test_markdown.jinja2 @@ -0,0 +1 @@ +{{content}} diff --git a/tests/test_pages.py b/tests/test_pages.py index d8b4067..c095d26 100644 --- a/tests/test_pages.py +++ b/tests/test_pages.py @@ -2,15 +2,55 @@ import pytest @pytest.fixture -def pages(): +def current_directory(): + from pathlib import Path + return Path(__file__).parent + + +@pytest.fixture +def pages(current_directory): from flatfilecms.resources import Root - return Root('../tests/pages', '../tests/data') + return Root( + str(current_directory / 'pages'), + str(current_directory / 'data')) + + +@pytest.fixture +def request(): + from pyramid.testing import DummyRequest + return DummyRequest() + + +@pytest.fixture +def config(current_directory): + from pyramid.testing import testConfig + with testConfig() as config: + config.include('pyramid_jinja2') + yield config def test_loading(pages): assert 'index' in pages -def test_db_contains_pages(pages): +def test_loading_markdown(pages): assert pages['index'].page['title'] == 'Заглушка для тестов БД' - pass + + +def test_generating_markdown(pages, request, config): + from flatfilecms.views.pages import PagesView + view = PagesView(pages['index'], request) + assert view.process_yaml().text == 'Hello World!' + + +def test_view(pages, request, config): + from flatfilecms.views.pages import PagesView + view = PagesView(pages['view'], request) + assert view.process_yaml().text == 'Hello World! View1' + + +def test_views(pages, request, config): + from flatfilecms.views.pages import PagesView + view = PagesView(pages['views'], request) + assert view.process_yaml().text == \ + 'Hello World! View1 View2 View3(a:1, b:2)' diff --git a/tests/views.py b/tests/views.py new file mode 100644 index 0000000..443ca2f --- /dev/null +++ b/tests/views.py @@ -0,0 +1,10 @@ +def test1(self): + self.context.page['content'] += ' View1' + + +def test2(self): + self.context.page['content'] += ' View2' + + +def test3(self, a, b): + self.context.page['content'] += f' View3(a:{a}, b:{b})'