Ejemplo n.º 1
0
def test_relative_path_from_page_to_sub_page_with_nested_url_style_and_debug_on():
    from_page = elements.Page('test 1', 'test1')
    parent_page = elements.Page('test 2', 'test2')
    to_page = elements.SubPage('test 3', 'test3')
    to_page.parent_page = parent_page.file_name
    relative_path = to_page.get_relative_path(from_page, 'nested', True)
    assert relative_path == './test2/test3.html'
Ejemplo n.º 2
0
def test_website_set_parent_pages():
    pages = [
        elements.Page('Test 1', 'test1', [
            elements.SubPage('sp11', 'sp11'),
            elements.SubPage('sp12', 'sp12')
        ]),
        elements.Page('Test 2', 'test2', [
            elements.SubPage('sp21', 'sp21'),
            elements.SubPage('sp22', 'sp22')
        ]),
    ]
    website = elements.Website({
        'root_dir': 'test_root_dir',
        'project_name': 'test_project_name',
        'pages': pages
    })
    sub_pages = [
        page for page in website.pages if type(pages) is elements.SubPage
    ]
    for sub_page in sub_pages:
        assert sub_page.parent_page is None
    website.set_parent_pages()
    sub_pages = [
        page for page in website.pages if type(pages) is elements.SubPage
    ]
    for sub_page in sub_pages:
        assert sub_page.parent_page in ['test1', 'test2']
Ejemplo n.º 3
0
def test_set_content_from_md():
    page1 = elements.Page('test 1', 'test1')
    page2 = elements.Page('test 2', 'test2')
    page3 = elements.Page('home', 'index')
    all_pages = [page1, page2, page3]
    page = elements.Page('Test', 'test_page')
    page.set_content_from_md(
        all_pages,
        os.path.join(os.path.dirname(os.path.abspath(__file__)), 'fixtures', 'md'),
        None,
        'flat',
        False
    )
    assert '<h1>This is a test</h1>' in page.body_content
    assert '<p>There is nothing to see here</p>' in page.body_content
Ejemplo n.º 4
0
def test_generate_subpage_nested():
    pages = [
        elements.Page('Test Page', 'test_page',
                      [elements.SubPage('Test SubPage', 'test_subpage')])
    ]
    website = elements.Website({
        'root_dir':
        os.path.join(os.path.dirname(os.path.abspath(__file__)), 'fixtures',
                     'test_project'),
        'project_name':
        'test_project_name',
        'pages':
        pages,
        'url_style':
        'nested',
    })
    website.generate_pages()
    page_path = os.path.join(os.path.dirname(os.path.abspath(__file__)),
                             'fixtures', 'test_project', 'test_page.html')
    subpage_path = os.path.join(os.path.dirname(os.path.abspath(__file__)),
                                'fixtures', 'test_project', 'test_page',
                                'test_subpage.html')
    assert os.path.exists(page_path)
    assert os.path.exists(subpage_path)
    os.remove(page_path)
    shutil.rmtree(
        os.path.join(os.path.dirname(os.path.abspath(__file__)), 'fixtures',
                     'test_project', 'test_page'))
Ejemplo n.º 5
0
def test_page_generate_content_menu_with_nested_url_style():
    page = elements.Page('Test', 'test', [
        elements.SubPage('Sub Page 1', 'subpage1'),
        elements.SubPage('Sub Page 2', 'subpage2'),
        elements.SubPage('Sub Page 3', 'subpage3'),
    ])
    result_menu = '#Test\n- [Sub Page 1](./test/subpage1.html)\n- [Sub Page 2](./test/subpage2.html)\n- [Sub Page ' \
                  '3](./test/subpage3.html)\n'
    assert result_menu == page.generate_content_menu('nested')
Ejemplo n.º 6
0
def test_set_css_path_with_no_debug():
    page = elements.Page('test', 'Test')
    page.set_css_path()
    assert page.css_path == '/main.min.css'
    sub_page = elements.SubPage('test', 'Test')
    sub_page.set_css_path()
    assert sub_page.css_path == '/main.min.css'
    unlinked_page = elements.UnlinkedPage('test', 'Test', ['path', 'to', 'page'])
    unlinked_page.set_css_path()
    assert unlinked_page.css_path == '/main.min.css'
Ejemplo n.º 7
0
def test_website_with_no_defaults():
    pages = [elements.Page('Test', 'test')]
    website = elements.Website({
        'root_dir':
        'test_root_dir',
        'project_name':
        'test_project_name',
        'debug':
        True,
        'url_style':
        'nested',
        'templates_dir':
        'test_templates_dir',
        'markdown_dir':
        'test_markdown_dir',
        'markdown_extensions': ['test_markdown_extension'],
        'site_dir':
        'test_site_dir',
        'site_title':
        'test_site_title',
        'site_subtitle':
        'test_site_subtitle',
        'description':
        'test description',
        'author':
        'Test Author',
        'keywords':
        'test keyword',
        'pages':
        pages
    })
    # Test non-optional settings
    assert website.root_dir == 'test_root_dir'
    assert website.project_name == 'test_project_name'

    # Test optional settings
    assert website.debug is True
    assert website.url_style == 'nested'
    assert website.templates_dir == 'test_templates_dir'
    assert website.markdown_dir == 'test_markdown_dir'
    assert website.markdown_extensions == ['test_markdown_extension']
    assert website.site_dir == 'test_site_dir'
    assert website.title == 'test_site_title'
    assert website.subtitle == 'test_site_subtitle'
    assert website.description == 'test description'
    assert website.author == 'Test Author'
    assert website.keywords == 'test keyword'
    assert website.pages == pages
Ejemplo n.º 8
0
def test_generate_empty_page():
    pages = [elements.Page('Test', 'test_page')]
    website = elements.Website({
        'root_dir':
        os.path.join(os.path.dirname(os.path.abspath(__file__)), 'fixtures',
                     'test_project'),
        'project_name':
        'test_project_name',
        'pages':
        pages
    })
    website.generate_pages()
    assert os.path.exists(
        os.path.join(os.path.dirname(os.path.abspath(__file__)), 'fixtures',
                     'test_project', 'test_page.html'))
    os.remove(
        os.path.join(os.path.dirname(os.path.abspath(__file__)), 'fixtures',
                     'test_project', 'test_page.html'))
Ejemplo n.º 9
0
def test_page_title_printed_to_the_page():
    pages = [elements.Page('Test', 'test_page')]
    website = elements.Website({
        'root_dir':
        os.path.join(os.path.dirname(os.path.abspath(__file__)), 'fixtures',
                     'test_project'),
        'project_name':
        'test_project_name',
        'pages':
        pages,
        'site_title':
        'Site Title',
    })
    website.generate_pages()
    page_path = os.path.join(os.path.dirname(os.path.abspath(__file__)),
                             'fixtures', 'test_project', 'test_page.html')
    with open(page_path, 'r') as f:
        page_content = f.read()
    assert '<title>Site Title - Test</title>' in page_content
    os.remove(page_path)
Ejemplo n.º 10
0
def test_generate_page_with_markdown():
    pages = [elements.Page('Test', 'test_page')]
    website = elements.Website({
        'root_dir':
        os.path.join(os.path.dirname(os.path.abspath(__file__)), 'fixtures',
                     'test_project'),
        'project_name':
        'test_project_name',
        'pages':
        pages,
        'markdown_dir':
        (os.path.join(os.path.dirname(os.path.abspath(__file__)), 'fixtures',
                      'md')),
    })
    website.generate_pages()
    page_path = os.path.join(os.path.dirname(os.path.abspath(__file__)),
                             'fixtures', 'test_project', 'test_page.html')
    with open(page_path, 'r') as f:
        page_content = f.read()
    assert '<h1>This is a test</h1>' in page_content
    assert '<p>There is nothing to see here</p>' in page_content
    os.remove(page_path)
Ejemplo n.º 11
0
def test_relative_path_from_unlinked_page_to_page_with_debug_on():
    to_page = elements.Page('test 1', 'test2')
    from_page = elements.UnlinkedPage('test 2', 'test2', ['path', 'to', 'the', 'page'])
    relative_path = to_page.get_relative_path(from_page, 'flat', True)
    assert relative_path == '../../../../test2.html'
Ejemplo n.º 12
0
def test_page_with_sub_pages():
    sub_page = elements.SubPage('Sub Test', 'subtest')
    page = elements.Page('Test', 'test', [sub_page])
    assert page.title == 'Test'
    assert page.file_name == 'test'
    assert page.sub_pages == [sub_page]
Ejemplo n.º 13
0
def test_relative_path_from_page_to_page_with_debug_off():
    from_page = elements.Page('test 1', 'test1')
    to_page = elements.Page('test 2', 'test2')
    relative_path = to_page.get_relative_path(from_page, 'flat', False)
    assert relative_path == '/test2'
Ejemplo n.º 14
0
def test_page():
    page = elements.Page('Test', 'test')
    assert page.title == 'Test'
    assert page.file_name == 'test'
    assert page.sub_pages == []
Ejemplo n.º 15
0
def test_relative_path_from_page_to_page_with_debug_on():
    from_page = elements.Page('test 1', 'test1')
    to_page = elements.Page('test 2', 'test2')
    relative_path = to_page.get_relative_path(from_page, 'flat', True)
    assert relative_path == './test2.html'
Ejemplo n.º 16
0
def test_page_render_html():
    templates_dir = os.path.join(os.path.dirname(os.path.abspath(__file__)), 'fixtures')
    page = elements.Page('index', 'index')
    page.render_html({'test_content': 'This is a test.'}, templates_dir, 'flat', False)
    assert page.html == 'This is a test.'
Ejemplo n.º 17
0
def test_page_casting_to_string():
    page = elements.Page('Test', 'test')
    assert str(page) == 'Test'
Ejemplo n.º 18
0
def test_relative_path_from_sub_page_to_page_with_flat_url_style_and_debug_on():
    from_page = elements.SubPage('test 3', 'test3')
    to_page = elements.Page('test 1', 'test1')
    relative_path = to_page.get_relative_path(from_page, 'flat', True)
    assert relative_path == './test1.html'
Ejemplo n.º 19
0
def test_relative_path_from_subpage_to_page_with_nested_url_style_and_debug_on():
    from_page = elements.SubPage('test 1', 'test2')
    to_page = elements.Page('test 2', 'test2')
    relative_path = to_page.get_relative_path(from_page, 'nested', True)
    assert relative_path == '../test2.html'
Ejemplo n.º 20
0
def test_relative_path_of_index_page_with_debug_off():
    from_page = elements.SubPage('test 1', 'test2')
    to_page = elements.Page('Home', 'index')
    relative_path = to_page.get_relative_path(from_page)
    assert relative_path == '/'
Ejemplo n.º 21
0
def test_page_raises_error_if_sub_page_is_not_a_sub_page():
    with pytest.raises(errors.PageError):
        elements.Page('Test', 'test', [elements.Page('Fail', 'fail')])
Ejemplo n.º 22
0
def test_relative_path_from_page_to_unlinked_page_with_debug_off():
    from_page = elements.Page('test 1', 'test1')
    to_page = elements.UnlinkedPage('test 2', 'test2', ['path', 'to', 'page'])
    relative_path = to_page.get_relative_path(from_page, 'flat', False)
    assert relative_path == '/path/to/page/test2'
Ejemplo n.º 23
0
import os

from zorn import elements

DEBUG = True

# General

PROJECT_NAME = 'docs'
SITE_TITLE = 'Zorn'
AUTHOR = 'Daniel Matias Ferrer'

# Directories

ROOT_DIR = os.path.dirname(os.path.abspath(__file__))

# Navigation

PAGES = [
    elements.Page('Home', 'index'),
]
Ejemplo n.º 24
0
def test_set_css_path_of_page():
    page = elements.Page('test', 'Test')
    page.set_css_path(True)
    assert page.css_path == './main.css'