Add test for the build command

This commit is contained in:
Simon Conseil
2018-01-03 23:02:47 +01:00
parent 489936d291
commit 72e58f0eef
3 changed files with 57 additions and 10 deletions

View File

@@ -1,11 +1,13 @@
# -*- coding: utf-8 -*-
import logging
import os
from click.testing import CliRunner
from os.path import join
from sigal import init
from sigal import serve
from sigal import set_meta
from sigal import init, build, serve, set_meta
TESTGAL = join(os.path.abspath(os.path.dirname(__file__)), 'sample')
def test_init(tmpdir):
@@ -22,6 +24,44 @@ def test_init(tmpdir):
"keep it safe.\n")
def test_build(tmpdir):
runner = CliRunner()
config_file = str(tmpdir.join('sigal.conf.py'))
tmpdir.mkdir('pictures')
tmpdir = str(tmpdir)
cwd = os.getcwd()
try:
result = runner.invoke(init, [config_file])
assert result.exit_code == 0
os.symlink(join(TESTGAL, 'pictures', 'dir2', 'exo20101028-b-full.jpg'),
join(tmpdir, 'pictures', 'exo20101028-b-full.jpg'))
result = runner.invoke(build, ['-n', 1, '--debug'])
assert result.exit_code == 1
os.chdir(tmpdir)
result = runner.invoke(build, ['foo', '-n', 1, '--debug'])
assert result.exit_code == 1
result = runner.invoke(build, ['pictures', 'pictures/out',
'-n', 1, '--debug'])
assert result.exit_code == 1
result = runner.invoke(build, ['pictures', 'build',
'-n', 1, '--debug'])
assert result.exit_code == 0
assert os.path.isfile(join(tmpdir, 'build', 'thumbnails',
'exo20101028-b-full.jpg'))
finally:
os.chdir(cwd)
# Reset logger
logger = logging.getLogger('sigal')
logger.handlers[:] = []
logger.setLevel(logging.INFO)
def test_serve(tmpdir):
config_file = str(tmpdir.join('sigal.conf.py'))
runner = CliRunner()
@@ -34,6 +74,7 @@ def test_serve(tmpdir):
result = runner.invoke(serve, ['-c', config_file])
assert result.exit_code == 1
def test_set_meta(tmpdir):
testdir = tmpdir.mkdir("test")
@@ -53,7 +94,8 @@ def test_set_meta(tmpdir):
result = runner.invoke(set_meta, [str(testdir), "title", "testing"])
assert result.exit_code == 2
result = runner.invoke(set_meta, [str(testdir.join("non-existant.jpg")), "title", "testing"])
result = runner.invoke(set_meta, [str(testdir.join("non-existant.jpg")),
"title", "testing"])
assert result.exit_code == 1
result = runner.invoke(set_meta, [str(testfile), "title", "testing"])