Missing Edge-Case Tests
This checklist records edge cases identified during the unit-test coverage
review. Each item should be marked complete only after a focused unit test is
added and passing.
Command-Line Configuration
Relevant code: src/geocoder.py:69-89, src/geocoder.py:397-401.
Workbook Input
Relevant code: src/geocoder.py:100-167, src/geocoder.py:280-302.
Shared Provider Behavior
Relevant code: src/api.py:256-292.
Census Provider
Relevant code: src/census.py:79-110.
Google Provider
Relevant code: src/google.py:84-100, src/google.py:120-175.
Geocodio Provider
Relevant code: src/geocodio.py:60-98, src/geocodio.py:118-162.
Legacy Launcher
Relevant code: geocoder.py:8-11.
Missing Edge-Case Tests
This checklist records edge cases identified during the unit-test coverage
review. Each item should be marked complete only after a focused unit test is
added and passing.
Command-Line Configuration
main()rejects--api googlewhen no API key is supplied by--apiKey, the environment, or.env.main()rejects--api geocodiowhen no API key is supplied by--apiKey, the environment, or.env.main()accepts a CLI API key for a keyed provider.main()accepts an API key supplied through the environment.main()accepts an API key loaded from.env..envparsing accepts trimmed and quotedKEY=valuevalues..envparsing ignores blank lines, comments, and malformed lines..envvalues.Relevant code:
src/geocoder.py:69-89,src/geocoder.py:397-401.Workbook Input
Noneheader cell is ignored while recognized header cells arestill detected.
alignment.
values rather than raising an indexing error.
and no data rows without making provider requests.
an output file.
Relevant code:
src/geocoder.py:100-167,src/geocoder.py:280-302.Shared Provider Behavior
than requested records. Decide whether missing responses should become
no-matches or raise a descriptive error.
returns an empty result list.
Relevant code:
src/api.py:256-292.Census Provider
handled according to an explicitly documented policy.
produce a descriptive error.
descriptive error.
BATCH_SIZEboundaries and all batches retaininput-result ordering.
Relevant code:
src/census.py:79-110.Google Provider
OKresponse with a missing or emptyresultslist ishandled without an unhelpful
KeyErrororIndexError.geometryorlocationfields hasdefined coordinate behavior.
address_componentsentries produce a descriptive erroror are safely ignored according to an explicit policy.
Relevant code:
src/google.py:84-100,src/google.py:120-175.Geocodio Provider
responseorresponse.resultsis handledwithout an unhelpful
KeyErrororAttributeError.locationoraddress_components, has defined behavior.BATCH_SIZEboundaries and all batches retaininput-result ordering.
Relevant code:
src/geocodio.py:60-98,src/geocodio.py:118-162.Legacy Launcher
geocoder.pylauncher if it isintentionally supported alongside the installed
geocodercommand.the only supported interface.
Relevant code:
geocoder.py:8-11.