forked from github.com/blag
113 lines
2.4 KiB
Python
113 lines
2.4 KiB
Python
import datetime
|
|
|
|
import pytest
|
|
|
|
from blag import blag
|
|
|
|
|
|
@pytest.fixture
|
|
def environment():
|
|
site = {
|
|
'base_url': 'site base_url',
|
|
'title': 'site title',
|
|
'description': 'site description',
|
|
'author': 'site author',
|
|
}
|
|
env = blag.environment_factory(globals_=dict(site=site))
|
|
yield env
|
|
|
|
|
|
@pytest.fixture
|
|
def page_template(environment):
|
|
yield environment.get_template('page.html')
|
|
|
|
|
|
@pytest.fixture
|
|
def article_template(environment):
|
|
yield environment.get_template('article.html')
|
|
|
|
|
|
@pytest.fixture
|
|
def archive_template(environment):
|
|
yield environment.get_template('archive.html')
|
|
|
|
|
|
@pytest.fixture
|
|
def tags_template(environment):
|
|
yield environment.get_template('tags.html')
|
|
|
|
|
|
@pytest.fixture
|
|
def tag_template(environment):
|
|
yield environment.get_template('tag.html')
|
|
|
|
|
|
def test_page(page_template):
|
|
ctx = {
|
|
'content': 'this is the content',
|
|
'title': 'this is the title',
|
|
}
|
|
result = page_template.render(ctx)
|
|
assert 'this is the content' in result
|
|
assert 'this is the title' in result
|
|
|
|
|
|
def test_article(article_template):
|
|
ctx = {
|
|
'content': 'this is the content',
|
|
'title': 'this is the title',
|
|
}
|
|
result = article_template.render(ctx)
|
|
assert 'this is the content' in result
|
|
assert 'this is the title' in result
|
|
|
|
|
|
def test_archive(archive_template):
|
|
entry = {
|
|
'title': 'this is a title',
|
|
'dst': 'https://example.com/link',
|
|
'date': datetime.datetime(1980, 5, 9),
|
|
}
|
|
archive = [entry]
|
|
ctx = {
|
|
'archive': archive,
|
|
}
|
|
result = archive_template.render(ctx)
|
|
assert 'site title' in result
|
|
|
|
assert 'this is a title' in result
|
|
assert '1980-05-09' in result
|
|
assert 'https://example.com/link' in result
|
|
|
|
|
|
def test_tags(tags_template):
|
|
tags = [('foo', 42)]
|
|
ctx = {
|
|
'tags': tags,
|
|
}
|
|
result = tags_template.render(ctx)
|
|
assert 'Tags' in result
|
|
|
|
assert 'foo.html' in result
|
|
assert 'foo' in result
|
|
assert '42' in result
|
|
|
|
|
|
def test_tag(tag_template):
|
|
entry = {
|
|
'title': 'this is a title',
|
|
'dst': 'https://example.com/link',
|
|
'date': datetime.datetime(1980, 5, 9),
|
|
}
|
|
archive = [entry]
|
|
ctx = {
|
|
'tag': 'foo',
|
|
'archive': archive,
|
|
}
|
|
result = tag_template.render(ctx)
|
|
assert 'Tag foo' in result
|
|
|
|
assert 'this is a title' in result
|
|
assert '1980-05-09' in result
|
|
assert 'https://example.com/link' in result
|