2019-02-10 23:21:47 +03:00
|
|
|
import pytest
|
|
|
|
|
|
|
|
|
|
|
|
@pytest.fixture
|
2019-02-23 23:51:06 +03:00
|
|
|
def current_directory():
|
|
|
|
from pathlib import Path
|
|
|
|
return Path(__file__).parent
|
|
|
|
|
|
|
|
|
|
|
|
@pytest.fixture
|
|
|
|
def pages(current_directory):
|
2019-02-10 23:21:47 +03:00
|
|
|
from flatfilecms.resources import Root
|
2019-02-23 23:51:06 +03:00
|
|
|
return Root(
|
|
|
|
str(current_directory / 'pages'),
|
|
|
|
str(current_directory / 'data'))
|
|
|
|
|
|
|
|
|
|
|
|
@pytest.fixture
|
2019-02-24 00:17:06 +03:00
|
|
|
def fake_request():
|
2019-02-23 23:51:06 +03:00
|
|
|
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
|
2019-02-10 23:21:47 +03:00
|
|
|
|
|
|
|
|
|
|
|
def test_loading(pages):
|
|
|
|
assert 'index' in pages
|
|
|
|
|
|
|
|
|
2019-02-23 23:51:06 +03:00
|
|
|
def test_loading_markdown(pages):
|
2019-02-16 20:05:09 +03:00
|
|
|
assert pages['index'].page['title'] == 'Заглушка для тестов БД'
|
2019-02-23 23:51:06 +03:00
|
|
|
|
|
|
|
|
2019-02-24 00:17:06 +03:00
|
|
|
def test_generating_markdown(pages, fake_request, config):
|
2019-02-23 23:51:06 +03:00
|
|
|
from flatfilecms.views.pages import PagesView
|
2019-02-24 00:17:06 +03:00
|
|
|
view = PagesView(pages['index'], fake_request)
|
2019-02-23 23:51:06 +03:00
|
|
|
assert view.process_yaml().text == 'Hello World!'
|
|
|
|
|
|
|
|
|
2019-02-24 00:17:06 +03:00
|
|
|
def test_view(pages, fake_request, config):
|
2019-02-23 23:51:06 +03:00
|
|
|
from flatfilecms.views.pages import PagesView
|
2019-02-24 00:17:06 +03:00
|
|
|
view = PagesView(pages['view'], fake_request)
|
2019-02-23 23:51:06 +03:00
|
|
|
assert view.process_yaml().text == 'Hello World! View1'
|
|
|
|
|
|
|
|
|
2019-02-24 03:16:38 +03:00
|
|
|
def test_view_with_options(pages, fake_request, config):
|
|
|
|
from flatfilecms.views.pages import PagesView
|
|
|
|
view = PagesView(pages['view-with-options'], fake_request)
|
|
|
|
assert view.process_yaml().text == 'Hello World! View4(a)'
|
|
|
|
|
|
|
|
|
2019-02-24 00:17:06 +03:00
|
|
|
def test_views(pages, fake_request, config):
|
2019-02-23 23:51:06 +03:00
|
|
|
from flatfilecms.views.pages import PagesView
|
2019-02-24 00:17:06 +03:00
|
|
|
view = PagesView(pages['views'], fake_request)
|
2019-02-23 23:51:06 +03:00
|
|
|
assert view.process_yaml().text == \
|
|
|
|
'Hello World! View1 View2 View3(a:1, b:2)'
|
2019-03-03 01:22:04 +03:00
|
|
|
|
|
|
|
|
|
|
|
def test_blogindex(pages, fake_request, config):
|
|
|
|
from flatfilecms.views import blog
|
|
|
|
from flatfilecms.views.pages import PagesView
|
|
|
|
fake_view_object = PagesView(pages['blog']['index'], fake_request)
|
|
|
|
blog(fake_view_object, {'base': '/blog'})
|
|
|
|
assert hasattr(fake_view_object, 'pages')
|
|
|
|
assert isinstance(fake_view_object.pages, list)
|
|
|
|
assert len(fake_view_object.pages) == 2
|
|
|
|
assert fake_view_object.pages[0][0] == '/blog/blogpost1' and \
|
|
|
|
fake_view_object.pages[1][0] == '/blog/blogpost2'
|
|
|
|
|