From e6483d8a42cac7ea16e873e0730b338265d9fb81 Mon Sep 17 00:00:00 2001 From: Itz-Agasta Date: Sat, 15 Aug 2026 21:04:10 +0530 Subject: [PATCH] Make get_all() an abstract method of ASGIAdaptor A default implementation that silently returns only the first value hides a missing override in a new adaptor implementation. --- src/nominatim_api/server/asgi_adaptor.py | 7 +------ test/python/api/fake_adaptor.py | 4 +--- 2 files changed, 2 insertions(+), 9 deletions(-) diff --git a/src/nominatim_api/server/asgi_adaptor.py b/src/nominatim_api/server/asgi_adaptor.py index cb9668d9..3b94e750 100644 --- a/src/nominatim_api/server/asgi_adaptor.py +++ b/src/nominatim_api/server/asgi_adaptor.py @@ -30,16 +30,11 @@ class ASGIAdaptor(abc.ABC): not provided, return the 'default' value. """ + @abc.abstractmethod def get_all(self, name: str) -> list[str]: """ Return all values of an input parameter that was repeated in the request. Returns an empty list when the parameter was not provided. - - This default implementation only ever returns the first value. - Adaptors that can access repeated parameters should override it. """ - value = self.get(name) - - return [] if value is None else [value] @abc.abstractmethod def get_header(self, name: str, default: Optional[str] = None) -> Optional[str]: diff --git a/test/python/api/fake_adaptor.py b/test/python/api/fake_adaptor.py index c7568822..0ec03d07 100644 --- a/test/python/api/fake_adaptor.py +++ b/test/python/api/fake_adaptor.py @@ -38,9 +38,7 @@ class FakeAdaptor(glue.ASGIAdaptor): return self.params.get(name, default) def get_all(self, name): - value = self.params.get(name) - if value is None: - return [] + value = self.params.get(name, []) return value if isinstance(value, list) else [value] def get_header(self, name, default=None): -- 2.47.3