Add tests for output.Output and output.File

This commit is contained in:
2026-09-03 02:55:38 +02:00
parent 088fc4d463
commit 2835b77146
3 changed files with 73 additions and 0 deletions
+36
View File
@@ -0,0 +1,36 @@
from pathlib import Path
import pytest
from omicron.ssg.output.file import File
from omicron.ssg.output.output import OutputError
from omicron.ssg.site import Site
def test_absolute_destination_raises(thin_site, tmp_path):
with pytest.raises(OutputError):
File(thin_site, Path("/copy.txt"), tmp_path / "source.txt")
def test_non_normalized_destination_raises(thin_site, tmp_path):
with pytest.raises(OutputError):
File(thin_site, Path("assets/../copy.txt"), tmp_path / "source.txt")
def test_site_raises_after_garbage_collection(tmp_path):
(tmp_path / "config.yml").write_text("name: test\ntemplate: plain\n")
site = Site(tmp_path)
file = File(site, Path("copy.txt"), tmp_path / "source.txt")
del site
with pytest.raises(ReferenceError):
file.site
def test_url(thin_site, tmp_path):
file = File(thin_site, Path("assets/copy.txt"), tmp_path / "source.txt")
assert file.url == "/assets/copy.txt"
def test_url_strips_index_html(thin_site, tmp_path):
file = File(thin_site, Path("posts/index.html"), tmp_path / "source.txt")
assert file.url == "/posts"