Skip to content

Commit 92dfd89

Browse files
mihowclaude
andcommitted
Update worker tests for new function signatures
- Add _make_settings() helper to TestGetJobs class - Update all _get_jobs() test calls to pass Settings object - Add context manager mocking (__enter__/__exit__) for session tests - Add retry settings to TestProcessJob._make_settings() All 17 tests pass with new signatures. Co-Authored-By: Claude Sonnet 4.5 <[email protected]>
1 parent b517f52 commit 92dfd89

File tree

1 file changed

+31
-10
lines changed

1 file changed

+31
-10
lines changed

trapdata/api/tests/test_worker.py

Lines changed: 31 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -258,6 +258,14 @@ def test_fetch_failure_stops_iteration(self, mock_get_session):
258258
class TestGetJobs:
259259
"""Tests for _get_jobs() which fetches job IDs from the API."""
260260

261+
def _make_settings(self):
262+
settings = MagicMock()
263+
settings.antenna_api_base_url = "http://api.test/api/v2"
264+
settings.antenna_api_auth_token = "mytoken"
265+
settings.antenna_api_retry_max = 3
266+
settings.antenna_api_retry_backoff = 0.5
267+
return settings
268+
261269
@patch("trapdata.cli.worker.get_http_session")
262270
def test_returns_job_ids(self, mock_get_session):
263271
response = MagicMock()
@@ -266,9 +274,11 @@ def test_returns_job_ids(self, mock_get_session):
266274

267275
mock_session = MagicMock()
268276
mock_session.get.return_value = response
269-
mock_get_session.return_value = mock_session
277+
mock_get_session.return_value.__enter__ = MagicMock(return_value=mock_session)
278+
mock_get_session.return_value.__exit__ = MagicMock(return_value=False)
270279

271-
result = _get_jobs("http://api.test/api/v2", "mytoken", "moths_2024")
280+
settings = self._make_settings()
281+
result = _get_jobs(settings, "moths_2024")
272282
assert result == [10, 20, 30]
273283

274284
@patch("trapdata.cli.worker.get_http_session")
@@ -279,9 +289,12 @@ def test_auth_header(self, mock_get_session):
279289

280290
mock_session = MagicMock()
281291
mock_session.get.return_value = response
282-
mock_get_session.return_value = mock_session
292+
mock_get_session.return_value.__enter__ = MagicMock(return_value=mock_session)
293+
mock_get_session.return_value.__exit__ = MagicMock(return_value=False)
283294

284-
_get_jobs("http://api.test/api/v2", "secret-token", "pipeline1")
295+
settings = self._make_settings()
296+
settings.antenna_api_auth_token = "secret-token"
297+
_get_jobs(settings, "pipeline1")
285298

286299
# Verify auth_token was passed to get_http_session
287300
mock_get_session.assert_called_once()
@@ -296,9 +309,11 @@ def test_query_params(self, mock_get_session):
296309

297310
mock_session = MagicMock()
298311
mock_session.get.return_value = response
299-
mock_get_session.return_value = mock_session
312+
mock_get_session.return_value.__enter__ = MagicMock(return_value=mock_session)
313+
mock_get_session.return_value.__exit__ = MagicMock(return_value=False)
300314

301-
_get_jobs("http://api.test/api/v2", "tok", "my_pipeline")
315+
settings = self._make_settings()
316+
_get_jobs(settings, "my_pipeline")
302317

303318
call_kwargs = mock_session.get.call_args[1]
304319
params = call_kwargs["params"]
@@ -310,9 +325,11 @@ def test_query_params(self, mock_get_session):
310325
def test_network_error(self, mock_get_session):
311326
mock_session = MagicMock()
312327
mock_session.get.side_effect = requests.RequestException("timeout")
313-
mock_get_session.return_value = mock_session
328+
mock_get_session.return_value.__enter__ = MagicMock(return_value=mock_session)
329+
mock_get_session.return_value.__exit__ = MagicMock(return_value=False)
314330

315-
result = _get_jobs("http://api.test/api/v2", "tok", "pipeline1")
331+
settings = self._make_settings()
332+
result = _get_jobs(settings, "pipeline1")
316333
assert result == []
317334

318335
@patch("trapdata.cli.worker.get_http_session")
@@ -323,9 +340,11 @@ def test_invalid_response(self, mock_get_session):
323340

324341
mock_session = MagicMock()
325342
mock_session.get.return_value = response
326-
mock_get_session.return_value = mock_session
343+
mock_get_session.return_value.__enter__ = MagicMock(return_value=mock_session)
344+
mock_get_session.return_value.__exit__ = MagicMock(return_value=False)
327345

328-
result = _get_jobs("http://api.test/api/v2", "tok", "pipeline1")
346+
settings = self._make_settings()
347+
result = _get_jobs(settings, "pipeline1")
329348
assert result == []
330349

331350

@@ -342,6 +361,8 @@ def _make_settings(self):
342361
settings.antenna_api_base_url = "http://api.test/api/v2"
343362
settings.antenna_api_auth_token = "test-token"
344363
settings.antenna_api_batch_size = 4
364+
settings.antenna_api_retry_max = 3
365+
settings.antenna_api_retry_backoff = 0.5
345366
settings.num_workers = 0
346367
return settings
347368

0 commit comments

Comments
 (0)