mirror of
https://github.com/Abdess/retroarch_system.git
synced 2026-10-23 20:29:06 -05:00
fix: create tmp/tests when the test package loads
Most modules write under tmp/, which a fresh clone lacks, and only three created it on import. A module run alone failed with FileNotFoundError on a temporary directory.
This commit is contained in:
1 parent
932410e00d
commit
fe2fcf6034
2 files changed
+30
No files matched your search
@@ -4,10 +4,19 @@ The CI job sets RETROBIOS_OFFLINE, but a local run of the documented command
|
||||
did not, and e2e fixtures queried the large-files release and wrote its
|
||||
answers into the shared .cache/large. A test that serves its own assets
|
||||
clears the variable for itself.
|
||||
|
||||
Scratch files go under the repository's tmp/, which git does not track: a
|
||||
fresh clone has none, and a module run alone raised FileNotFoundError on a
|
||||
temporary directory instead of naming the missing parent.
|
||||
"""
|
||||
|
||||
from __future__ import annotations
|
||||
|
||||
import os
|
||||
from pathlib import Path
|
||||
|
||||
os.environ.setdefault("RETROBIOS_OFFLINE", "1")
|
||||
|
||||
(Path(__file__).resolve().parent.parent / "tmp" / "tests").mkdir(
|
||||
parents=True, exist_ok=True
|
||||
)
|
||||
@@ -166,6 +166,27 @@ class ReadmeRegressions(unittest.TestCase):
|
||||
self.assertEqual(failed, {})
|
||||
|
||||
|
||||
class AModuleRunAloneHasItsScratchDirectory(unittest.TestCase):
|
||||
"""About forty modules write under tmp/, which git does not track. Only
|
||||
three created it, as an import side effect, so a module run alone on a
|
||||
fresh clone raised FileNotFoundError. The test package creates it."""
|
||||
|
||||
def test_importing_the_package_creates_tmp(self):
|
||||
with tempfile.TemporaryDirectory(dir=TMP_ROOT) as directory:
|
||||
clone = Path(directory)
|
||||
(clone / "tests").mkdir()
|
||||
(clone / "tests" / "__init__.py").write_bytes(
|
||||
(ROOT / "tests" / "__init__.py").read_bytes()
|
||||
)
|
||||
proc = subprocess.run(
|
||||
[sys.executable, "-I", "-c",
|
||||
"import sys; sys.path.insert(0, '.'); import tests"],
|
||||
cwd=clone, capture_output=True, text=True, timeout=60, check=False,
|
||||
)
|
||||
self.assertEqual(proc.returncode, 0, proc.stderr)
|
||||
self.assertTrue((clone / "tmp" / "tests").is_dir())
|
||||
|
||||
|
||||
class ReleaseSigningRegressions(unittest.TestCase):
|
||||
"""A checksum list published beside its own artifacts proves nothing.
|
||||
|
||||
|
||||
Reference in new issue
Block a user