mirror of
https://github.com/Abdess/retroarch_system.git
synced 2026-10-28 14:47:21 -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
|
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
|
answers into the shared .cache/large. A test that serves its own assets
|
||||||
clears the variable for itself.
|
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
|
from __future__ import annotations
|
||||||
|
|
||||||
import os
|
import os
|
||||||
|
from pathlib import Path
|
||||||
|
|
||||||
os.environ.setdefault("RETROBIOS_OFFLINE", "1")
|
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, {})
|
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):
|
class ReleaseSigningRegressions(unittest.TestCase):
|
||||||
"""A checksum list published beside its own artifacts proves nothing.
|
"""A checksum list published beside its own artifacts proves nothing.
|
||||||
|
|
||||||
|
|||||||
Reference in new issue
Block a user