mirror of
https://github.com/dtomlinson91/tembo.git
synced 2025-12-22 10:16:02 +00:00
127 lines
3.3 KiB
Python
127 lines
3.3 KiB
Python
import pathlib
|
|
|
|
import pytest
|
|
import jinja2
|
|
|
|
from tembo.journal.pages import PageCreator, ScopedPageCreator
|
|
|
|
|
|
def test_page_creator_convert_to_path_missing_base_path(caplog):
|
|
# arrange
|
|
base_path = "/some/nonexistent/path"
|
|
page_path = "some_page"
|
|
filename = "some_filename"
|
|
extension = "ex"
|
|
|
|
# act
|
|
with pytest.raises(SystemExit) as system_exit:
|
|
PageCreator._convert_base_path_to_path(
|
|
base_path=base_path,
|
|
page_path=page_path,
|
|
filename=filename,
|
|
extension=extension,
|
|
)
|
|
|
|
# assert
|
|
assert system_exit.value.code == 1
|
|
assert caplog.records[0].levelname == "CRITICAL"
|
|
assert (
|
|
caplog.records[0].message
|
|
== "Tembo base path of /some/nonexistent/path does not exist - exiting"
|
|
)
|
|
|
|
|
|
@pytest.mark.parametrize(
|
|
"page_path,filename,extension",
|
|
[
|
|
("some_pagepath", "some_filename", "ex"),
|
|
("some pagepath", "some filename", "ex"),
|
|
],
|
|
)
|
|
def test_page_creator_convert_to_path_full_path_to_file(
|
|
page_path, filename, extension, tmpdir
|
|
):
|
|
# arrange
|
|
path_to_file = (
|
|
pathlib.Path(tmpdir)
|
|
/ pathlib.Path(page_path)
|
|
/ pathlib.Path(filename).with_suffix(f".{extension}")
|
|
)
|
|
base_path = tmpdir
|
|
|
|
# act
|
|
converted_path = PageCreator._convert_base_path_to_path(
|
|
base_path, page_path, filename, extension
|
|
)
|
|
|
|
# assert
|
|
assert str(path_to_file).replace(" ", "_") == str(converted_path)
|
|
|
|
|
|
def test_page_creator_convert_to_path_full_path_no_file(tmpdir):
|
|
# arrange
|
|
full_path = pathlib.Path("/some/path")
|
|
base_path = ""
|
|
page_path = "/some/path"
|
|
filename = ""
|
|
extension = ""
|
|
|
|
# act
|
|
converted_path = PageCreator._convert_base_path_to_path(
|
|
base_path, page_path, filename, extension
|
|
)
|
|
|
|
# assert
|
|
assert str(full_path).replace(" ", "_") == str(converted_path)
|
|
|
|
|
|
def test_page_creator_load_template_with_base_path_success(datadir):
|
|
# arrange
|
|
# default template_path would be datadir/.templates
|
|
base_path = str(datadir)
|
|
template_filename = "some_template.md.tpl"
|
|
|
|
# act
|
|
template_contents = ScopedPageCreator()._load_template(
|
|
base_path, template_filename, None
|
|
)
|
|
|
|
# assert
|
|
assert template_contents == "template contents"
|
|
|
|
|
|
def test_page_creator_load_template_overriden_template_path_success(datadir):
|
|
# arrange
|
|
base_path = str(datadir)
|
|
template_filename = "some_template.md.tpl"
|
|
template_path = str(datadir / ".templates")
|
|
|
|
# act
|
|
# we explicitly pass in the template_path to override the default
|
|
template_contents = ScopedPageCreator()._load_template(
|
|
base_path, template_filename, template_path
|
|
)
|
|
|
|
# assert
|
|
assert template_contents == "template contents"
|
|
|
|
|
|
def test_page_creator_load_template_missing_template_file(datadir, caplog):
|
|
# arrange
|
|
base_path = str(datadir)
|
|
template_filename = "some_nonexistent_template.md.tpl"
|
|
template_path = str(datadir / ".templates")
|
|
|
|
# act
|
|
with pytest.raises(SystemExit) as system_exit:
|
|
template_contents = ScopedPageCreator()._load_template(
|
|
base_path, template_filename, template_path
|
|
)
|
|
|
|
# assert
|
|
assert system_exit.value.code == 1
|
|
assert caplog.records[0].message == (
|
|
f"Template file {template_path}/some_nonexistent_template.md.tpl not found "
|
|
"- exiting"
|
|
)
|