diff --git a/adoption_sources/rescue_groups.py b/adoption_sources/rescue_groups.py index 883a64f..2313613 100644 --- a/adoption_sources/rescue_groups.py +++ b/adoption_sources/rescue_groups.py @@ -62,13 +62,17 @@ def _build_species_filters(species: Sequence[str]) -> tuple[list[dict], str]: documented RescueGroups multi-species search example. #124 was silently rejected by the live API (zero results), so any change here must be re-verified against the real API (tests/test_rescue_groups_live.py). + + The API's documented operations are ``equal``/``notequal``/``contains``/ + etc. -- there is no ``equals``, and an unrecognized operation is silently + ignored, which is why #124 returned zero results. """ if not species: raise ValueError("At least one species is required") filters = [ { "fieldName": "species.singular", - "operation": "equals", + "operation": "equal", "criteria": FILTER_SPECIES_SINGULAR[plural], } for plural in species diff --git a/cutepets.log b/cutepets.log new file mode 100644 index 0000000..e69de29 diff --git a/tests/test_rescue_groups.py b/tests/test_rescue_groups.py index 4642dbe..36a5e24 100644 --- a/tests/test_rescue_groups.py +++ b/tests/test_rescue_groups.py @@ -49,8 +49,8 @@ def test_two_species_uses_or_filter_processing(self): self.assertEqual( filters, [ - {"fieldName": "species.singular", "operation": "equals", "criteria": "Dog"}, - {"fieldName": "species.singular", "operation": "equals", "criteria": "Cat"}, + {"fieldName": "species.singular", "operation": "equal", "criteria": "Dog"}, + {"fieldName": "species.singular", "operation": "equal", "criteria": "Cat"}, ], ) self.assertEqual(filter_processing, "1 OR 2") @@ -174,8 +174,8 @@ def test_posts_single_multi_species_request(self, mock_session_factory): self.assertEqual( payload["data"]["filters"], [ - {"fieldName": "species.singular", "operation": "equals", "criteria": "Dog"}, - {"fieldName": "species.singular", "operation": "equals", "criteria": "Cat"}, + {"fieldName": "species.singular", "operation": "equal", "criteria": "Dog"}, + {"fieldName": "species.singular", "operation": "equal", "criteria": "Cat"}, ], ) self.assertEqual(payload["data"]["filterProcessing"], "1 OR 2")