this post was submitted on 31 Dec 2024
7 points (100.0% liked)

Python

7049 readers
10 users here now

Welcome to the Python community on the programming.dev Lemmy instance!

๐Ÿ“… Events

PastNovember 2023

October 2023

July 2023

August 2023

September 2023

๐Ÿ Python project:
๐Ÿ’“ Python Community:
โœจ Python Ecosystem:
๐ŸŒŒ Fediverse
Communities
Projects
Feeds

founded 2 years ago
MODERATORS
you are viewing a single comment's thread
view the rest of the comments
[โ€“] [email protected] 1 points 3 months ago* (last edited 3 months ago)

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