fix country handling in flex style

If the country tag does not match a 2-letter code, it needs to
be dropped.
This commit is contained in:
Sarah Hoffmann 2022-11-10 15:52:13 +01:00
parent 2dafc4cf4f
commit 63a9bc94f7
2 changed files with 6 additions and 2 deletions

View File

@ -331,8 +331,10 @@ function process_tags(o)
end
-- address keys
o:grab_address{match=function (k, v) return COUNTRY_TAGS(k, v) and #v == 2 end,
out_key='country'}
o:grab_address{match=COUNTRY_TAGS, out_key='country'}
if o.address.country ~= nil and #o.address.country ~= 2 then
o.address['country'] = nil
end
if o:grab_name{match=HOUSENAME_TAGS} > 0 then
fallback = {'place', 'house'}
end

View File

@ -75,6 +75,7 @@ Feature: Tag evaluation
n5003 Tshop=yes,country_code=x
n5004 Tshop=yes,addr:country=us
n5005 Tshop=yes,country=be
n5006 Tshop=yes,addr:country=France
"""
Then place contains exactly
| object | class | address |
@ -83,6 +84,7 @@ Feature: Tag evaluation
| N5003 | shop | - |
| N5004 | shop | 'country': 'us' |
| N5005 | shop | - |
| N5006 | shop | - |
Scenario: Postcodes