This. We kinda stumbled on this pattern, and use it to great effect. Simplified code:
@pytest.fixture
def tmpfiles():
with NamedTemporaryFile(suffix=".html") as f:
yield f
# or for paths, which are more suitable for certain tests
# touch them so they exist
@pytest.fixture
def othertmppaths() -> list[Path]:
f1 = Path("...")
f1.touch()
f2 = Path("...")
f2.touch()
yield [f1, f2]
# you could delete them here if needed
f1.unlink()
def test_foo(othertmppaths list[Path]):
result = upload_resource(othertmppaths[0])
assert result.status == 200
The context manager one will properly clean up all files.
This. We kinda stumbled on this pattern, and use it to great effect. Simplified code:
@pytest.fixture def tmpfiles(): with NamedTemporaryFile(suffix=".html") as f: yield f # or for paths, which are more suitable for certain tests # touch them so they exist @pytest.fixture def othertmppaths() -> list[Path]: f1 = Path("...") f1.touch() f2 = Path("...") f2.touch() yield [f1, f2] # you could delete them here if needed f1.unlink() def test_foo(othertmppaths list[Path]): result = upload_resource(othertmppaths[0]) assert result.status == 200
The context manager one will properly clean up all files.
E: Pretty website btw