mirror of
https://github.com/osm-search/Nominatim.git
synced 2026-02-26 11:08:13 +00:00
Merge pull request #2486 from lonvia/fix-special-phrases
Fix parsing of operator in special phrases
This commit is contained in:
@@ -16,4 +16,5 @@ class SpecialPhrase():
|
|||||||
# Hack around a bug where building=yes was imported with quotes into the wiki
|
# Hack around a bug where building=yes was imported with quotes into the wiki
|
||||||
self.p_type = re.sub(r'\"|"', '', p_type.strip())
|
self.p_type = re.sub(r'\"|"', '', p_type.strip())
|
||||||
# Needed if some operator in the wiki are not written in english
|
# Needed if some operator in the wiki are not written in english
|
||||||
|
p_operator = p_operator.strip().lower()
|
||||||
self.p_operator = '-' if p_operator not in ('near', 'in') else p_operator
|
self.p_operator = '-' if p_operator not in ('near', 'in') else p_operator
|
||||||
|
|||||||
@@ -30,7 +30,7 @@ def test_parse_xml(sp_wiki_loader, xml_wiki_content):
|
|||||||
Should return the right SpecialPhrase objects.
|
Should return the right SpecialPhrase objects.
|
||||||
"""
|
"""
|
||||||
phrases = sp_wiki_loader.parse_xml(xml_wiki_content)
|
phrases = sp_wiki_loader.parse_xml(xml_wiki_content)
|
||||||
assert check_phrases_content(phrases)
|
check_phrases_content(phrases)
|
||||||
|
|
||||||
|
|
||||||
def test_next(sp_wiki_loader):
|
def test_next(sp_wiki_loader):
|
||||||
@@ -40,15 +40,29 @@ def test_next(sp_wiki_loader):
|
|||||||
the 'en' special phrases.
|
the 'en' special phrases.
|
||||||
"""
|
"""
|
||||||
phrases = next(sp_wiki_loader)
|
phrases = next(sp_wiki_loader)
|
||||||
assert check_phrases_content(phrases)
|
check_phrases_content(phrases)
|
||||||
|
|
||||||
def check_phrases_content(phrases):
|
def check_phrases_content(phrases):
|
||||||
"""
|
"""
|
||||||
Asserts that the given phrases list contains
|
Asserts that the given phrases list contains
|
||||||
the right phrases of the 'en' special phrases.
|
the right phrases of the 'en' special phrases.
|
||||||
"""
|
"""
|
||||||
return len(phrases) > 1 \
|
assert set((p.p_label, p.p_class, p.p_type, p.p_operator) for p in phrases) ==\
|
||||||
and any(p.p_label == 'Embassies' and p.p_class == 'amenity' and p.p_type == 'embassy'
|
{('Zip Line', 'aerialway', 'zip_line', '-'),
|
||||||
and p.p_operator == '-' for p in phrases) \
|
('Zip Lines', 'aerialway', 'zip_line', '-'),
|
||||||
and any(p.p_label == 'Zip Line' and p.p_class == 'aerialway' and p.p_type == 'zip_line'
|
('Zip Line in', 'aerialway', 'zip_line', 'in'),
|
||||||
and p.p_operator == '-' for p in phrases)
|
('Zip Lines in', 'aerialway', 'zip_line', 'in'),
|
||||||
|
('Zip Line near', 'aerialway', 'zip_line', 'near'),
|
||||||
|
('Animal shelter', 'amenity', 'animal_shelter', '-'),
|
||||||
|
('Animal shelters', 'amenity', 'animal_shelter', '-'),
|
||||||
|
('Animal shelter in', 'amenity', 'animal_shelter', 'in'),
|
||||||
|
('Animal shelters in', 'amenity', 'animal_shelter', 'in'),
|
||||||
|
('Animal shelter near', 'amenity', 'animal_shelter', 'near'),
|
||||||
|
('Animal shelters near', 'amenity', 'animal_shelter', 'near'),
|
||||||
|
('Drinking Water near', 'amenity', 'drinking_water', 'near'),
|
||||||
|
('Water', 'amenity', 'drinking_water', '-'),
|
||||||
|
('Water in', 'amenity', 'drinking_water', 'in'),
|
||||||
|
('Water near', 'amenity', 'drinking_water', 'near'),
|
||||||
|
('Embassy', 'amenity', 'embassy', '-'),
|
||||||
|
('Embassys', 'amenity', 'embassy', '-'),
|
||||||
|
('Embassies', 'amenity', 'embassy', '-')}
|
||||||
|
|||||||
@@ -70,9 +70,9 @@
|
|||||||
<model>wikitext</model>
|
<model>wikitext</model>
|
||||||
<format>text/x-wiki</format>
|
<format>text/x-wiki</format>
|
||||||
<text bytes="158218" sha1="cst5x7tt58izti1pxzgljf27tx8qjcj" xml:space="preserve">
|
<text bytes="158218" sha1="cst5x7tt58izti1pxzgljf27tx8qjcj" xml:space="preserve">
|
||||||
== en == {| class="wikitable sortable" |- ! Word / Phrase !! Key !! Value !! Operator !! Plural |- | Zip Line || aerialway || zip_line || - || N |- | Zip Lines || aerialway || zip_line || - || Y |- | Zip Line in || aerialway || zip_line || in || N |- | Zip Lines in || aerialway || zip_line || in || Y |- | Zip Line near || aerialway || zip_line || near || N |- | Animal shelter || amenity || animal_shelter || - || N |- | Animal shelters || amenity || animal_shelter || - || Y |- | Animal shelter in || amenity || animal_shelter || in || N |- | Animal shelters in || amenity || animal_shelter || in || Y |- | Animal shelter near || amenity || animal_shelter || near|| N |- | Animal shelters near || amenity || animal_shelter || near|| Y |- | Drinking Water near || amenity || drinking_water || near || N |- | Water || amenity || drinking_water || - || N |- | Water in || amenity || drinking_water || in || N |- | Water near || amenity || drinking_water || near || N |- | Embassy || amenity || embassy || - || N |- | Embassys || amenity || embassy || - || Y |- | Embassies || amenity || embassy || - || Y |- |Coworkings near |amenity |coworking_space |near |Y |} [[Category:Word list]]
|
== en == {| class="wikitable sortable" |- ! Word / Phrase !! Key !! Value !! Operator !! Plural |- | Zip Line || aerialway || zip_line || - || N |- | Zip Lines || aerialway || zip_line || - || Y |- | Zip Line in || aerialway || zip_line || in || N |- | Zip Lines in || aerialway || zip_line || in || Y |- | Zip Line near || aerialway || zip_line || near || N |- | Animal shelter || amenity || animal_shelter || - || N |- | Animal shelters || amenity || animal_shelter || - || Y |- | Animal shelter in || amenity || animal_shelter || in || N |- | Animal shelters in || amenity || animal_shelter || in || Y |- | Animal shelter near || amenity || animal_shelter || near|| N |- | Animal shelters near || amenity || animal_shelter || NEAR|| Y |- | Drinking Water near || amenity || drinking_water || near || N |- | Water || amenity || drinking_water || - || N |- | Water in || amenity || drinking_water || In || N |- | Water near || amenity || drinking_water || near || N |- | Embassy || amenity || embassy || - || N |- | Embassys || amenity || embassy || - || Y |- | Embassies || amenity || embassy || - || Y |- |Coworkings near |amenity |coworking_space |near |Y |} [[Category:Word list]]
|
||||||
</text>
|
</text>
|
||||||
<sha1>cst5x7tt58izti1pxzgljf27tx8qjcj</sha1>
|
<sha1>cst5x7tt58izti1pxzgljf27tx8qjcj</sha1>
|
||||||
</revision>
|
</revision>
|
||||||
</page>
|
</page>
|
||||||
</mediawiki>
|
</mediawiki>
|
||||||
|
|||||||
Reference in New Issue
Block a user