|
|
|
|
|
by 10000truths
1594 days ago
|
|
If you're using Linux, I would recommend using TemporaryFile instead of NamedTemporaryFile. It takes advantage of the O_TMPFILE flag, which guarantees that the kernel will clean up the file for you when the process exits: import shutil
import tempfile
@pytest.fixture
def libfact():
tmp = tempfile.TemporaryFile()
tmp_name = f"/dev/fd/{tmp.name}"
shutil.copy2("./fact.so", tmp_name)
lib = CDLL(tmp_name)
yield lib
It's better than relying on your application to clean up the file for you. With application-level cleanup hooks, you're still vulnerable to a resource leak if the process gets a SIGKILL or crashes or otherwise ends before your hooks run. |
|
For the rare occurrence of sigkill before cleanup, I think your /tmp has ample of space to keep a few more kb until the next reboot. Servers running tests probably restart more often than desktops nowadays, when wrapped in containers.