diff --git a/tests/test_cli.py b/tests/test_cli.py index 9c6e771..395519a 100644 --- a/tests/test_cli.py +++ b/tests/test_cli.py @@ -5,6 +5,7 @@ from click.testing import CliRunner from sigal import init from sigal import serve +from sigal import set_meta def test_init(tmpdir): @@ -32,3 +33,32 @@ 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") + + testfile = tmpdir.join("test.jpg") + testfile.write("") + + runner = CliRunner() + result = runner.invoke(set_meta, [str(testdir), "title", "testing"]) + + assert result.exit_code == 0 + assert result.output.startswith("1 metadata key(s) written to") + assert os.path.isfile(str(testdir.join("index.md"))) + assert testdir.join("index.md").read() == "Title: testing\n" + + # Run again, should give file exists error + 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"]) + assert result.exit_code == 1 + + result = runner.invoke(set_meta, [str(testfile), "title", "testing"]) + + assert result.exit_code == 0 + assert result.output.startswith("1 metadata key(s) written to") + assert os.path.isfile(str(tmpdir.join("test.md"))) + assert tmpdir.join("test.md").read() == "Title: testing\n"