Small fixes
This commit is contained in:
parent
54fbcb1ea6
commit
083f8a982e
24 changed files with 1505 additions and 79 deletions
58
finder/test_postcode_cache.py
Normal file
58
finder/test_postcode_cache.py
Normal file
|
|
@ -0,0 +1,58 @@
|
|||
"""Tests for the persistent detail-fetch cache (postcode_cache.py)."""
|
||||
|
||||
from postcode_cache import load_cache, save_cache
|
||||
|
||||
|
||||
def test_save_then_load_round_trips_str_and_none_values(tmp_path):
|
||||
path = tmp_path / "rightmove.json"
|
||||
data = {"123": "SW9 0HD", "456": None, "789": "E20 1FH"}
|
||||
save_cache(path, data)
|
||||
assert load_cache(path) == data
|
||||
|
||||
|
||||
def test_save_then_load_round_trips_nested_dicts(tmp_path):
|
||||
# Zoopla caches a flat dict of primitives (or None) per listing id.
|
||||
path = tmp_path / "zoopla.json"
|
||||
data = {
|
||||
"59888978": {
|
||||
"lat": 51.4,
|
||||
"lng": -0.11,
|
||||
"postcode": "BR1 2AB",
|
||||
"uprn": "100023",
|
||||
"number_or_name": "12",
|
||||
"full_address": "12 High St",
|
||||
},
|
||||
"broken": None,
|
||||
}
|
||||
save_cache(path, data)
|
||||
assert load_cache(path) == data
|
||||
|
||||
|
||||
def test_load_missing_file_returns_empty(tmp_path):
|
||||
assert load_cache(tmp_path / "does-not-exist.json") == {}
|
||||
|
||||
|
||||
def test_load_corrupt_file_returns_empty(tmp_path):
|
||||
path = tmp_path / "corrupt.json"
|
||||
path.write_text("{not valid json", encoding="utf-8")
|
||||
assert load_cache(path) == {}
|
||||
|
||||
|
||||
def test_load_non_object_file_returns_empty(tmp_path):
|
||||
path = tmp_path / "list.json"
|
||||
path.write_text("[1, 2, 3]", encoding="utf-8")
|
||||
assert load_cache(path) == {}
|
||||
|
||||
|
||||
def test_save_creates_parent_directory(tmp_path):
|
||||
path = tmp_path / "nested" / "dir" / "cache.json"
|
||||
save_cache(path, {"a": "B1 1AA"})
|
||||
assert path.exists()
|
||||
assert load_cache(path) == {"a": "B1 1AA"}
|
||||
|
||||
|
||||
def test_save_overwrites_existing(tmp_path):
|
||||
path = tmp_path / "c.json"
|
||||
save_cache(path, {"a": "X1 1AA"})
|
||||
save_cache(path, {"b": "Y2 2BB"})
|
||||
assert load_cache(path) == {"b": "Y2 2BB"}
|
||||
Loading…
Add table
Add a link
Reference in a new issue