mirror of
https://github.com/osm-search/Nominatim.git
synced 2026-02-26 11:08:13 +00:00
adapt more BDD tests to hstore
This commit is contained in:
@@ -1001,24 +1001,24 @@ BEGIN
|
|||||||
RETURN NEW;
|
RETURN NEW;
|
||||||
END IF;
|
END IF;
|
||||||
|
|
||||||
NEW.interpolationtype = NEW.address->'interpolation';
|
|
||||||
|
|
||||||
IF NEW.address is not NULL THEN
|
|
||||||
IF NEW.address ? 'street' THEN
|
|
||||||
NEW.street = NEW.address->'street';
|
|
||||||
END IF;
|
|
||||||
|
|
||||||
IF NEW.address ? 'place' THEN
|
|
||||||
NEW.addr_place = NEW.address->'place';
|
|
||||||
END IF;
|
|
||||||
|
|
||||||
IF NEW.address ? 'postcode' THEN
|
|
||||||
NEW.addr_place = NEW.address->'postcode';
|
|
||||||
END IF;
|
|
||||||
END IF;
|
|
||||||
|
|
||||||
-- if the line was newly inserted, split the line as necessary
|
-- if the line was newly inserted, split the line as necessary
|
||||||
IF OLD.indexed_status = 1 THEN
|
IF OLD.indexed_status = 1 THEN
|
||||||
|
NEW.interpolationtype = NEW.address->'interpolation';
|
||||||
|
|
||||||
|
IF NEW.address is not NULL THEN
|
||||||
|
IF NEW.address ? 'street' THEN
|
||||||
|
NEW.street = NEW.address->'street';
|
||||||
|
END IF;
|
||||||
|
|
||||||
|
IF NEW.address ? 'place' THEN
|
||||||
|
NEW.addr_place = NEW.address->'place';
|
||||||
|
END IF;
|
||||||
|
|
||||||
|
IF NEW.address ? 'postcode' THEN
|
||||||
|
NEW.addr_place = NEW.address->'postcode';
|
||||||
|
END IF;
|
||||||
|
END IF;
|
||||||
|
|
||||||
select nodes from planet_osm_ways where id = NEW.osm_id INTO waynodes;
|
select nodes from planet_osm_ways where id = NEW.osm_id INTO waynodes;
|
||||||
|
|
||||||
IF array_upper(waynodes, 1) IS NULL THEN
|
IF array_upper(waynodes, 1) IS NULL THEN
|
||||||
@@ -1222,7 +1222,7 @@ BEGIN
|
|||||||
END IF;
|
END IF;
|
||||||
|
|
||||||
IF NEW.address ? 'postcode' THEN
|
IF NEW.address ? 'postcode' THEN
|
||||||
NEW.addr_place = NEW.address->'postcode';
|
NEW.postcode = NEW.address->'postcode';
|
||||||
END IF;
|
END IF;
|
||||||
END IF;
|
END IF;
|
||||||
|
|
||||||
@@ -2146,13 +2146,13 @@ BEGIN
|
|||||||
|
|
||||||
|
|
||||||
IF NEW.class in ('place','boundary') AND NEW.type in ('postcode','postal_code') THEN
|
IF NEW.class in ('place','boundary') AND NEW.type in ('postcode','postal_code') THEN
|
||||||
IF NEW.postcode IS NULL THEN
|
IF NEW.address is NULL OR NOT NEW.address ? 'postcode' THEN
|
||||||
-- postcode was deleted, no longer retain in placex
|
-- postcode was deleted, no longer retain in placex
|
||||||
DELETE FROM placex where place_id = existingplacex.place_id;
|
DELETE FROM placex where place_id = existingplacex.place_id;
|
||||||
RETURN NULL;
|
RETURN NULL;
|
||||||
END IF;
|
END IF;
|
||||||
|
|
||||||
NEW.name := hstore('ref', NEW.postcode);
|
NEW.name := hstore('ref', NEW.address->'postcode');
|
||||||
END IF;
|
END IF;
|
||||||
|
|
||||||
update placex set
|
update placex set
|
||||||
|
|||||||
@@ -17,7 +17,9 @@ Feature: Update of address interpolations
|
|||||||
| osm | class | type | housenr | geometry |
|
| osm | class | type | housenr | geometry |
|
||||||
| N1 | place | house | 2 | :n-middle-w |
|
| N1 | place | house | 2 | :n-middle-w |
|
||||||
| N2 | place | house | 6 | :n-middle-e |
|
| N2 | place | house | 6 | :n-middle-e |
|
||||||
| W10 | place | houses | even | :w-middle |
|
And updating places
|
||||||
|
| osm | class | type | addr+interpolation | geometry |
|
||||||
|
| W10 | place | houses | even | :w-middle |
|
||||||
Then placex contains
|
Then placex contains
|
||||||
| object | parent_place_id |
|
| object | parent_place_id |
|
||||||
| N1 | W2 |
|
| N1 | W2 |
|
||||||
@@ -32,6 +34,8 @@ Feature: Update of address interpolations
|
|||||||
| osm | class | type | housenr | geometry |
|
| osm | class | type | housenr | geometry |
|
||||||
| N1 | place | house | 2 | :n-middle-w |
|
| N1 | place | house | 2 | :n-middle-w |
|
||||||
| N2 | place | house | 6 | :n-middle-e |
|
| N2 | place | house | 6 | :n-middle-e |
|
||||||
|
And the places
|
||||||
|
| osm | class | type | addr+interpolation | geometry |
|
||||||
| W10 | place | houses | even | :w-middle |
|
| W10 | place | houses | even | :w-middle |
|
||||||
And the places
|
And the places
|
||||||
| osm | class | type | name | geometry |
|
| osm | class | type | name | geometry |
|
||||||
@@ -49,7 +53,7 @@ Feature: Update of address interpolations
|
|||||||
| parent_place_id | start | end |
|
| parent_place_id | start | end |
|
||||||
| W2 | 2 | 6 |
|
| W2 | 2 | 6 |
|
||||||
When updating places
|
When updating places
|
||||||
| osm | class | type | housenr | street | geometry |
|
| osm | class | type | addr+interpolation | street | geometry |
|
||||||
| W10 | place | houses | even | Cloud Street | :w-middle |
|
| W10 | place | houses | even | Cloud Street | :w-middle |
|
||||||
Then placex contains
|
Then placex contains
|
||||||
| object | parent_place_id |
|
| object | parent_place_id |
|
||||||
@@ -65,6 +69,8 @@ Feature: Update of address interpolations
|
|||||||
| osm | class | type | housenr | geometry |
|
| osm | class | type | housenr | geometry |
|
||||||
| N1 | place | house | 2 | :n-middle-w |
|
| N1 | place | house | 2 | :n-middle-w |
|
||||||
| N2 | place | house | 6 | :n-middle-e |
|
| N2 | place | house | 6 | :n-middle-e |
|
||||||
|
And the places
|
||||||
|
| osm | class | type | addr+interpolation | geometry |
|
||||||
| W10 | place | houses | even | :w-middle |
|
| W10 | place | houses | even | :w-middle |
|
||||||
And the places
|
And the places
|
||||||
| osm | class | type | name | geometry |
|
| osm | class | type | name | geometry |
|
||||||
@@ -99,6 +105,8 @@ Feature: Update of address interpolations
|
|||||||
| osm | class | type | housenr | geometry |
|
| osm | class | type | housenr | geometry |
|
||||||
| N1 | place | house | 2 | :n-middle-w |
|
| N1 | place | house | 2 | :n-middle-w |
|
||||||
| N2 | place | house | 6 | :n-middle-e |
|
| N2 | place | house | 6 | :n-middle-e |
|
||||||
|
And the places
|
||||||
|
| osm | class | type | addr+interpolation | geometry |
|
||||||
| W10 | place | houses | even | :w-middle |
|
| W10 | place | houses | even | :w-middle |
|
||||||
And the places
|
And the places
|
||||||
| osm | class | type | name | geometry |
|
| osm | class | type | name | geometry |
|
||||||
@@ -129,7 +137,7 @@ Feature: Update of address interpolations
|
|||||||
| N1 | place | house | 2 | :n-middle-w |
|
| N1 | place | house | 2 | :n-middle-w |
|
||||||
| N2 | place | house | 6 | :n-middle-e |
|
| N2 | place | house | 6 | :n-middle-e |
|
||||||
And the places
|
And the places
|
||||||
| osm | class | type | housenr | street | geometry |
|
| osm | class | type | addr+interpolation | street | geometry |
|
||||||
| W10 | place | houses | even | Cloud Street| :w-middle |
|
| W10 | place | houses | even | Cloud Street| :w-middle |
|
||||||
And the places
|
And the places
|
||||||
| osm | class | type | name | geometry |
|
| osm | class | type | name | geometry |
|
||||||
@@ -163,7 +171,7 @@ Feature: Update of address interpolations
|
|||||||
| N1 | place | house | 2 | :n-middle-w |
|
| N1 | place | house | 2 | :n-middle-w |
|
||||||
| N2 | place | house | 6 | :n-middle-e |
|
| N2 | place | house | 6 | :n-middle-e |
|
||||||
And the places
|
And the places
|
||||||
| osm | class | type | housenr | street | geometry |
|
| osm | class | type | addr+interpolation | street | geometry |
|
||||||
| W10 | place | houses | even | Cloud Street| :w-middle |
|
| W10 | place | houses | even | Cloud Street| :w-middle |
|
||||||
And the places
|
And the places
|
||||||
| osm | class | type | name | geometry |
|
| osm | class | type | name | geometry |
|
||||||
@@ -209,7 +217,7 @@ Feature: Update of address interpolations
|
|||||||
| N1 | place | house | 2 | :n-north-w |
|
| N1 | place | house | 2 | :n-north-w |
|
||||||
| N2 | place | house | 6 | :n-north-e |
|
| N2 | place | house | 6 | :n-north-e |
|
||||||
And updating places
|
And updating places
|
||||||
| osm | class | type | housenr | street | geometry |
|
| osm | class | type | addr+interpolation | street | geometry |
|
||||||
| W1 | place | houses | even | Cloud Street| :w-north |
|
| W1 | place | houses | even | Cloud Street| :w-north |
|
||||||
Then placex has no entry for W1
|
Then placex has no entry for W1
|
||||||
And W1 expands to interpolation
|
And W1 expands to interpolation
|
||||||
@@ -229,7 +237,7 @@ Feature: Update of address interpolations
|
|||||||
| id | nodes |
|
| id | nodes |
|
||||||
| 1 | 1,100,101,102,2 |
|
| 1 | 1,100,101,102,2 |
|
||||||
And the places
|
And the places
|
||||||
| osm | class | type | housenr | street | geometry |
|
| osm | class | type | addr+interpolation | street | geometry |
|
||||||
| W1 | place | houses | even | Cloud Street| :w-north |
|
| W1 | place | houses | even | Cloud Street| :w-north |
|
||||||
When importing
|
When importing
|
||||||
Then placex has no entry for W1
|
Then placex has no entry for W1
|
||||||
@@ -252,7 +260,7 @@ Feature: Update of address interpolations
|
|||||||
| id | nodes |
|
| id | nodes |
|
||||||
| 1 | 1,100,101,102,2 |
|
| 1 | 1,100,101,102,2 |
|
||||||
And the places
|
And the places
|
||||||
| osm | class | type | housenr | geometry |
|
| osm | class | type | addr+interpolation | geometry |
|
||||||
| W1 | place | houses | even | :w-north |
|
| W1 | place | houses | even | :w-north |
|
||||||
When importing
|
When importing
|
||||||
Then W1 expands to no interpolation
|
Then W1 expands to no interpolation
|
||||||
@@ -261,7 +269,7 @@ Feature: Update of address interpolations
|
|||||||
| N1 | place | house | 2 | :n-north-w |
|
| N1 | place | house | 2 | :n-north-w |
|
||||||
| N2 | place | house | 6 | :n-north-e |
|
| N2 | place | house | 6 | :n-north-e |
|
||||||
And updating places
|
And updating places
|
||||||
| osm | class | type | housenr | street | geometry |
|
| osm | class | type | addr+interpolation | street | geometry |
|
||||||
| W1 | place | houses | even | Cloud Street| :w-north |
|
| W1 | place | houses | even | Cloud Street| :w-north |
|
||||||
Then W1 expands to interpolation
|
Then W1 expands to interpolation
|
||||||
| parent_place_id | start | end |
|
| parent_place_id | start | end |
|
||||||
@@ -279,7 +287,7 @@ Feature: Update of address interpolations
|
|||||||
| id | nodes |
|
| id | nodes |
|
||||||
| 2 | 3,4,5 |
|
| 2 | 3,4,5 |
|
||||||
And the places
|
And the places
|
||||||
| osm | class | type | housenr | geometry |
|
| osm | class | type | addr+interpolation | geometry |
|
||||||
| W2 | place | houses | even | 3,4,5 |
|
| W2 | place | houses | even | 3,4,5 |
|
||||||
And the places
|
And the places
|
||||||
| osm | class | type | housenr |
|
| osm | class | type | housenr |
|
||||||
@@ -309,7 +317,7 @@ Feature: Update of address interpolations
|
|||||||
| id | nodes |
|
| id | nodes |
|
||||||
| 2 | 3,4,5 |
|
| 2 | 3,4,5 |
|
||||||
And the places
|
And the places
|
||||||
| osm | class | type | housenr | geometry |
|
| osm | class | type | addr+interpolation | geometry |
|
||||||
| W2 | place | houses | even | 3,4,5 |
|
| W2 | place | houses | even | 3,4,5 |
|
||||||
And the places
|
And the places
|
||||||
| osm | class | type | housenr |
|
| osm | class | type | housenr |
|
||||||
@@ -338,7 +346,7 @@ Feature: Update of address interpolations
|
|||||||
| id | nodes |
|
| id | nodes |
|
||||||
| 2 | 3,4 |
|
| 2 | 3,4 |
|
||||||
And the places
|
And the places
|
||||||
| osm | class | type | housenr | geometry |
|
| osm | class | type | addr+interpolation | geometry |
|
||||||
| W2 | place | houses | even | 3,4 |
|
| W2 | place | houses | even | 3,4 |
|
||||||
And the places
|
And the places
|
||||||
| osm | class | type | housenr |
|
| osm | class | type | housenr |
|
||||||
|
|||||||
@@ -40,19 +40,24 @@ class PlaceColumn:
|
|||||||
self.columns['admin_level'] = int(value)
|
self.columns['admin_level'] = int(value)
|
||||||
|
|
||||||
def set_key_housenr(self, value):
|
def set_key_housenr(self, value):
|
||||||
self.add_hstore('address', 'housenumber', None if value == '' else value)
|
if value:
|
||||||
|
self.add_hstore('address', 'housenumber', value)
|
||||||
|
|
||||||
def set_key_postcode(self, value):
|
def set_key_postcode(self, value):
|
||||||
self.add_hstore('address', 'postcode', None if value == '' else value)
|
if value:
|
||||||
|
self.add_hstore('address', 'postcode', value)
|
||||||
|
|
||||||
def set_key_street(self, value):
|
def set_key_street(self, value):
|
||||||
self.add_hstore('address', 'street', None if value == '' else value)
|
if value:
|
||||||
|
self.add_hstore('address', 'street', value)
|
||||||
|
|
||||||
def set_key_addr_place(self, value):
|
def set_key_addr_place(self, value):
|
||||||
self.add_hstore('address', 'place', None if value == '' else value)
|
if value:
|
||||||
|
self.add_hstore('address', 'place', value)
|
||||||
|
|
||||||
def set_key_country(self, value):
|
def set_key_country(self, value):
|
||||||
self.add_hstore('address', 'country', None if value == '' else value)
|
if value:
|
||||||
|
self.add_hstore('address', 'country', value)
|
||||||
|
|
||||||
def set_key_geometry(self, value):
|
def set_key_geometry(self, value):
|
||||||
self.geometry = self.context.osm.parse_geometry(value, self.context.scene)
|
self.geometry = self.context.osm.parse_geometry(value, self.context.scene)
|
||||||
@@ -103,9 +108,10 @@ class PlaceObjName(object):
|
|||||||
if self.pid is None:
|
if self.pid is None:
|
||||||
return "<null>"
|
return "<null>"
|
||||||
|
|
||||||
self.conn.cursor().execute("""SELECT osm_type, osm_id, class
|
cur = self.conn.cursor()
|
||||||
FROM placex WHERE place_id = %s""",
|
cur.execute("""SELECT osm_type, osm_id, class
|
||||||
self.pid)
|
FROM placex WHERE place_id = %s""",
|
||||||
|
(self.pid, ))
|
||||||
eq_(1, cur.rowcount, "No entry found for place id %s" % self.pid)
|
eq_(1, cur.rowcount, "No entry found for place id %s" % self.pid)
|
||||||
|
|
||||||
return "%s%s:%s" % cur.fetchone()
|
return "%s%s:%s" % cur.fetchone()
|
||||||
@@ -432,7 +438,8 @@ def check_search_name_contents(context):
|
|||||||
FROM word, (SELECT unnest(%s) as term) t
|
FROM word, (SELECT unnest(%s) as term) t
|
||||||
WHERE word_token = make_standard_name(t.term)""",
|
WHERE word_token = make_standard_name(t.term)""",
|
||||||
(terms,))
|
(terms,))
|
||||||
ok_(subcur.rowcount >= len(terms))
|
ok_(subcur.rowcount >= len(terms),
|
||||||
|
"No word entry found for " + row[h])
|
||||||
for wid in subcur:
|
for wid in subcur:
|
||||||
assert_in(wid[0], res[h],
|
assert_in(wid[0], res[h],
|
||||||
"Missing term for %s/%s: %s" % (pid, h, wid[1]))
|
"Missing term for %s/%s: %s" % (pid, h, wid[1]))
|
||||||
|
|||||||
Reference in New Issue
Block a user