Skip to content

Commit 15e8300

Browse files
Copiloterseco
andcommitted
test: cover shared timeout defaults
Co-authored-by: erseco <1876752+erseco@users.noreply.github.com>
1 parent b833766 commit 15e8300

2 files changed

Lines changed: 18 additions & 10 deletions

File tree

src/py_moodle/config.py

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,12 @@
1-
"""Shared timeout defaults for HTTP operations."""
1+
"""Shared timeout defaults for HTTP operations.
2+
3+
``DEFAULT_REQUEST_TIMEOUT`` is the standard timeout for routine Moodle GET/POST
4+
requests. ``DEFAULT_SCRAPE_TIMEOUT`` is shorter for quick HTML fetches used as
5+
fallback probes. Upload helpers use ``(connect_timeout, read_timeout)`` tuples:
6+
``DEFAULT_UPLOAD_TIMEOUT`` for typical uploads and
7+
``DEFAULT_LARGE_UPLOAD_TIMEOUT`` for larger package transfers such as SCORM and
8+
draft-file uploads.
9+
"""
210

311
DEFAULT_REQUEST_TIMEOUT = 30
412
DEFAULT_SCRAPE_TIMEOUT = 15

tests/unit/test_timeouts.py

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -15,9 +15,9 @@
1515
class FakeResponse:
1616
"""Minimal response object for timeout tests."""
1717

18-
def __init__(self, text="", json_data=None, status_code=200):
18+
def __init__(self, text="", json_data_value=None, status_code=200):
1919
self.text = text
20-
self._json_data = json_data
20+
self._json_data = json_data_value
2121
self.status_code = status_code
2222

2323
def raise_for_status(self):
@@ -35,7 +35,7 @@ class RecordingSession:
3535

3636
def __init__(self, get_response=None, post_response=None):
3737
self.get_response = get_response or FakeResponse()
38-
self.post_response = post_response or FakeResponse(json_data={})
38+
self.post_response = post_response or FakeResponse(json_data_value={})
3939
self.get_calls = []
4040
self.post_calls = []
4141

@@ -61,7 +61,7 @@ def test_session_call_uses_shared_default_request_timeout():
6161
cas_url=None,
6262
webservice_token=None,
6363
)
64-
session = RecordingSession(post_response=FakeResponse(json_data={"ok": True}))
64+
session = RecordingSession(post_response=FakeResponse(json_data_value={"ok": True}))
6565
moodle_session = MoodleSession(settings)
6666
moodle_session._session = session
6767
moodle_session._token = "token"
@@ -78,7 +78,7 @@ def test_detect_moodle_compatibility_uses_shared_default_request_timeout():
7878
get_response=FakeResponse(
7979
text='<meta name="generator" content="Moodle 4.5.2+ (Build: 20241001)">'
8080
),
81-
post_response=FakeResponse(json_data={"exception": "disabled"}),
81+
post_response=FakeResponse(json_data_value={"exception": "disabled"}),
8282
)
8383

8484
compatibility = detect_moodle_compatibility(
@@ -97,11 +97,11 @@ def test_upload_helpers_use_shared_default_timeouts(tmp_path, monkeypatch):
9797

9898
upload_calls = []
9999

100-
def fake_requests_post(url, **kwargs):
100+
def mock_requests_post(url, **kwargs):
101101
upload_calls.append({"url": url, "kwargs": kwargs})
102-
return FakeResponse(json_data=[{"itemid": 7}])
102+
return FakeResponse(json_data_value=[{"itemid": 7}])
103103

104-
monkeypatch.setattr("py_moodle.upload.requests.post", fake_requests_post)
104+
monkeypatch.setattr("py_moodle.upload.requests.post", mock_requests_post)
105105

106106
itemid = upload_file_webservice(
107107
"https://moodle.example.test", "token", str(file_path)
@@ -112,7 +112,7 @@ def fake_requests_post(url, **kwargs):
112112

113113
monkeypatch.setattr("py_moodle.draftfile.detect_upload_repo", lambda *args: 9)
114114
draft_session = RecordingSession(
115-
post_response=FakeResponse(json_data={"id": 99, "filename": "demo.txt"})
115+
post_response=FakeResponse(json_data_value={"id": 99, "filename": "demo.txt"})
116116
)
117117

118118
draft_itemid, filename = upload_file_to_draft_area(

0 commit comments

Comments
 (0)