from domain.postcodes.sanitise import sanitise_postcode def test_sanitise_uppercases() -> None: assert sanitise_postcode("sw1a1aa") == "SW1A1AA" def test_sanitise_strips_internal_spaces() -> None: assert sanitise_postcode("sw1a 1aa") == "SW1A1AA" def test_sanitise_strips_leading_and_trailing_whitespace() -> None: assert sanitise_postcode(" sw1a 1aa ") == "SW1A1AA" def test_sanitise_strips_tabs_and_newlines() -> None: # CSV ingestion occasionally introduces stray whitespace characters; the # canonical form must absorb them just like literal spaces. assert sanitise_postcode("sw1a\t1aa\n") == "SW1A1AA" def test_sanitise_already_canonical_is_idempotent() -> None: assert sanitise_postcode("SW1A1AA") == "SW1A1AA" assert sanitise_postcode(sanitise_postcode("sw1a 1aa")) == "SW1A1AA" def test_sanitise_empty_string() -> None: assert sanitise_postcode("") == ""