From ccf7129ed06912627bd9a15c8430657b2d65391f Mon Sep 17 00:00:00 2001 From: kshitijk4poor <82637225+kshitijk4poor@users.noreply.github.com> Date: Wed, 29 Jul 2026 16:25:40 +0500 Subject: [PATCH] fix: restore zero-arg fetch_models_dev call on default paths The branched call shape in get_provider_info/get_provider is deliberate: ~69 test sites across tests/hermes_cli and tests/gateway monkeypatch fetch_models_dev (and get_provider_info) with zero/single-arg lambdas. Passing allow_network= unconditionally broke 5 tests in CI slices 2/3/7. Documented the constraint inline. --- agent/models_dev.py | 9 ++++++++- hermes_cli/providers.py | 8 +++++++- tests/agent/test_models_dev.py | 6 ++++-- 3 files changed, 19 insertions(+), 4 deletions(-) diff --git a/agent/models_dev.py b/agent/models_dev.py index 0b4579b9382..5fcad6b6615 100644 --- a/agent/models_dev.py +++ b/agent/models_dev.py @@ -837,7 +837,14 @@ def get_provider_info( # Resolve Hermes ID → models.dev ID mdev_id = PROVIDER_TO_MODELS_DEV.get(provider_id, provider_id) - data = fetch_models_dev(allow_network=allow_network) + # NOTE: keep the zero-argument call on the default path. Dozens of test + # sites monkeypatch fetch_models_dev with zero-arg lambdas; passing the + # kwarg unconditionally would break them all (they raise TypeError). + data = ( + fetch_models_dev() + if allow_network + else fetch_models_dev(allow_network=False) + ) raw = data.get(mdev_id) if not isinstance(raw, dict): return None diff --git a/hermes_cli/providers.py b/hermes_cli/providers.py index 0baef521a57..fed10a2a73f 100644 --- a/hermes_cli/providers.py +++ b/hermes_cli/providers.py @@ -450,7 +450,13 @@ def get_provider(name: str, *, allow_network: bool = True) -> Optional[ProviderD # Try to get models.dev data try: from agent.models_dev import get_provider_info as _mdev_provider - mdev_info = _mdev_provider(canonical, allow_network=allow_network) + # Keep the single-argument call on the default path: test sites + # monkeypatch get_provider_info with single-arg lambdas. + mdev_info = ( + _mdev_provider(canonical) + if allow_network + else _mdev_provider(canonical, allow_network=False) + ) except Exception: mdev_info = None diff --git a/tests/agent/test_models_dev.py b/tests/agent/test_models_dev.py index f2dcb2c0ace..4b9ad5f71fb 100644 --- a/tests/agent/test_models_dev.py +++ b/tests/agent/test_models_dev.py @@ -469,11 +469,13 @@ class TestFetchModelsDev: mock_fetch.assert_called_once_with(allow_network=False) @patch("agent.models_dev.fetch_models_dev", return_value=SAMPLE_REGISTRY) - def test_provider_info_default_allows_network(self, mock_fetch): + def test_provider_info_default_preserves_zero_argument_fetch(self, mock_fetch): + """Default path must stay a zero-arg call: many test sites monkeypatch + fetch_models_dev with zero-arg lambdas.""" info = get_provider_info("anthropic") assert info is not None - mock_fetch.assert_called_once_with(allow_network=True) + mock_fetch.assert_called_once_with() def test_provider_definition_propagates_network_disabled(self): from hermes_cli.providers import get_provider