fix: keep the ci test job off the network

This commit is contained in:
Abdessamad Derraz committed 2026-10-16 10:18:53 +02:00
1 parent 3faf7dd1ee
commit 9966029cf7
4 files changed
+40 -2

No files matched your search

+4 -1
View File
@@ -25,6 +25,7 @@ import tempfile
import unittest
import zipfile
from pathlib import Path
from unittest import mock
sys.path.insert(0, os.path.join(os.path.dirname(__file__), "..", "scripts"))
@@ -5304,7 +5305,9 @@ struct BurnDriver BurnDrvneogeo = {
original = largefiles.urllib.request.urlopen
largefiles.urllib.request.urlopen = fake_urlopen
try:
with tempfile.TemporaryDirectory() as tmpdir:
with tempfile.TemporaryDirectory() as tmpdir, mock.patch.dict(
os.environ, {"RETROBIOS_OFFLINE": ""}
):
path = common.fetch_large_file(
"MAME 0.174 Arcade XML.dat", dest_dir=tmpdir
)
+27
View File
@@ -32,6 +32,20 @@ PAYLOAD_A = b"A" * (256 * 1024)
PAYLOAD_B = b"B" * (256 * 1024)
# These tests download through a mocked urlopen into their own directory;
# the CI test job sets RETROBIOS_OFFLINE to keep every other test off the
# network, so it is cleared here.
_ONLINE = mock.patch.dict(os.environ, {"RETROBIOS_OFFLINE": ""})
def setUpModule():
_ONLINE.start()
def tearDownModule():
_ONLINE.stop()
class _SlowResponse(io.BytesIO):
"""Serve a payload in chunks, yielding between them."""
@@ -220,6 +234,19 @@ class LargeFileCacheTest(unittest.TestCase):
self.assertEqual(os.listdir(self.dir), ["asset.bin"])
class TheOfflineSwitchHoldsEverywhere(unittest.TestCase):
"""RETROBIOS_OFFLINE stops a download whatever the caller asked."""
def test_no_request_is_made(self):
with tempfile.TemporaryDirectory() as tmp, mock.patch.dict(
os.environ, {"RETROBIOS_OFFLINE": "1"}
), mock.patch.object(largefiles.urllib.request, "urlopen") as urlopen:
self.assertIsNone(
largefiles.fetch_large_file("asset.bin", dest_dir=tmp, offline=False)
)
urlopen.assert_not_called()
class HashCacheKeepsEveryDigest(unittest.TestCase):
"""A cache hit must serve the same five digests a fresh hash produces.