PyLadiesMadrid / pycartociudad

Python package to query cartociudad API
GNU General Public License v3.0
2 stars 5 forks source link

Control errores y testing en geocode #16

Closed koldLight closed 4 years ago

koldLight commented 4 years ago

En la función geocode, habría que:

zupeiza commented 4 years ago

Por lo que viene en la issue #10 parece que la API está construida de forma que nunca salta la excepción, y que devuelve un [ ] en caso de vacío o no encontrado. Entonces ¿tiene sentido lo de aplicar error? Porque la diferencia va a estar en que devuelva [ ] o que devuelva {}

koldLight commented 4 years ago

Por lo que viene en la issue #10 parece que la API está construida de forma que nunca salta la excepción, y que devuelve un [ ] en caso de vacío o no encontrado. Entonces ¿tiene sentido lo de aplicar error? Porque la diferencia va a estar en que devuelva [ ] o que devuelva {}

Bueno, igual es un poco tiquismiquis jaja pero te cuento mi reflexión para convertir [] a {}. Es por devolver siempre el mismo tipo de dato (que, además, debería ir en el type hint de tipo de salida).

Imagina que esto lo está usando una persona por fuera, en plan:

# Extraigo info
location_geocoded = pycartociudad.geocode(una_direccion)

# Como casi siempre me devuelve un dict, espero que siempre sea así
# Y añado cosas mías a ese dict, p.e. la fecha en la que lo extraje de la API
location_geocoded["requested_at"] = datetime.now()

Si de repende, 1 de cada 1000 peticiones falla y da [] en lugar de {}, su código va a saltar con un error no controlado al intentar escribir un nuevo item con clave requested_at en algo que no es un dict.

Y otra cosa, creo que @aliciapj tenía algún test hecho en una rama (me suena haber visto esa rama en algún momento), mirad para que no os piséis, o podáis mergear lo hecho por las dos.

Gracias!