abfallnavi make street an optional parameter if only one street (like alle Straßen is returned)

This commit is contained in:
5ila5
2024-06-21 18:39:54 +02:00
committed by 5ila5
parent 3f857659cc
commit 3518a31f3b
3 changed files with 18 additions and 2 deletions

View File

@@ -186,6 +186,12 @@ class AbfallnaviDe:
may return multiple on change of id (may occur on year change)
"""
streets = self.get_streets(city_id)
if len(streets) == 1:
return list(streets.keys())
if street is None:
raise Exception(
f"Multiple streets found for city: {city_id} please specify street, one of: {streets.values()}"
)
return [id for id, name in streets.items() if name == street]
def get_house_numbers(self, street_id):

View File

@@ -43,12 +43,21 @@ TEST_CASES = {
"ort": "Bergkamen",
"strasse": "Agnes-Miegel-Str.",
},
"Pinneberg Kummerfeld no Street": {
"service": "pi",
"ort": "Kummerfeld",
"strasse": "alle Straßen",
},
}
class Source:
def __init__(
self, service: str, ort: str, strasse: str, hausnummer: str | int | None = None
self,
service: str,
ort: str,
strasse: str | None = None,
hausnummer: str | int | None = None,
):
self._api = AbfallnaviDe(service)
self._ort = ort

View File

@@ -24,7 +24,8 @@ waste_collection_schedule:
*(string) (required)*
**strasse**
*(string) (required)*
*(string) (optional)*
*required if the service provider website requests it*
**hausnummer**
*(string | Integer) (optional)*