Skip to content

Commit f2c3bc1

Browse files
committed
test: align GHES fakes with bounded reads
Assisted-by: Codex (model: GPT-5, autonomous)
1 parent e6acd52 commit f2c3bc1

3 files changed

Lines changed: 33 additions & 12 deletions

File tree

‎tests/test_extensions.py‎

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
- Catalog stack (multi-catalog support)
1010
"""
1111

12+
import io
1213
import pytest
1314
import json
1415
import os
@@ -7302,10 +7303,10 @@ def test_extension_wrapper_resolves_ghes_asset_when_host_configured(tmp_path, mo
73027303
def fake_open(url, timeout=None, extra_headers=None):
73037304
captured.append(url)
73047305
resp = MagicMock()
7305-
resp.read.return_value = json.dumps({
7306+
resp.read.side_effect = io.BytesIO(json.dumps({
73067307
"assets": [{"name": "ext.zip",
73077308
"url": "https://ghes.example/api/v3/repos/o/r/releases/assets/7"}]
7308-
}).encode()
7309+
}).encode()).read
73097310
yield resp
73107311

73117312
monkeypatch.setattr(catalog, "_open_url", fake_open)

‎tests/test_presets.py‎

Lines changed: 16 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -4730,9 +4730,14 @@ def test_preset_add_from_direct_api_asset_url_passes_through(self, project_dir):
47304730
class FakeResponse:
47314731
def __init__(self, data):
47324732
self._data = data
4733+
self._pos = 0
47334734

4734-
def read(self):
4735-
return self._data
4735+
def read(self, size=-1):
4736+
if size < 0:
4737+
size = len(self._data) - self._pos
4738+
out = self._data[self._pos : self._pos + size]
4739+
self._pos += len(out)
4740+
return out
47364741

47374742
def __enter__(self):
47384743
return self
@@ -4787,9 +4792,14 @@ def test_preset_add_from_ghes_release_url_resolves_via_api_v3(self, project_dir,
47874792
class FakeResponse:
47884793
def __init__(self, data):
47894794
self._data = data
4795+
self._pos = 0
47904796

4791-
def read(self):
4792-
return self._data
4797+
def read(self, size=-1):
4798+
if size < 0:
4799+
size = len(self._data) - self._pos
4800+
out = self._data[self._pos : self._pos + size]
4801+
self._pos += len(out)
4802+
return out
47934803

47944804
def __enter__(self):
47954805
return self
@@ -6111,10 +6121,10 @@ def test_preset_wrapper_resolves_ghes_asset_when_host_configured(tmp_path, monke
61116121
def fake_open(url, timeout=None, extra_headers=None):
61126122
captured.append(url)
61136123
resp = MagicMock()
6114-
resp.read.return_value = json.dumps({
6124+
resp.read.side_effect = io.BytesIO(json.dumps({
61156125
"assets": [{"name": "pack.zip",
61166126
"url": "https://ghes.example/api/v3/repos/o/r/releases/assets/9"}]
6117-
}).encode()
6127+
}).encode()).read
61186128
yield resp
61196129

61206130
monkeypatch.setattr(catalog, "_open_url", fake_open)

‎tests/test_workflows.py‎

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5509,10 +5509,15 @@ def test_workflow_add_from_ghes_release_url_resolves_via_api_v3(self, project_di
55095509
class FakeResponse:
55105510
def __init__(self, data, url=None):
55115511
self._data = data
5512+
self._pos = 0
55125513
self._url = url or "https://ghes.example/api/v3/repos/org/repo/releases/assets/42"
55135514

5514-
def read(self):
5515-
return self._data
5515+
def read(self, size=-1):
5516+
if size < 0:
5517+
size = len(self._data) - self._pos
5518+
out = self._data[self._pos : self._pos + size]
5519+
self._pos += len(out)
5520+
return out
55165521

55175522
def geturl(self):
55185523
return self._url
@@ -5564,10 +5569,15 @@ def test_workflow_add_catalog_based_ghes_release_url_resolves_via_api_v3(self, p
55645569
class FakeResponse:
55655570
def __init__(self, data, url=None):
55665571
self._data = data
5572+
self._pos = 0
55675573
self._url = url or "https://ghes.example/api/v3/repos/org/repo/releases/assets/55"
55685574

5569-
def read(self):
5570-
return self._data
5575+
def read(self, size=-1):
5576+
if size < 0:
5577+
size = len(self._data) - self._pos
5578+
out = self._data[self._pos : self._pos + size]
5579+
self._pos += len(out)
5580+
return out
55715581

55725582
def geturl(self):
55735583
return self._url

0 commit comments

Comments
 (0)