bdd: extend osm2pgsql update tests

Now also checks for correct indexing state of placex table.
This commit is contained in:
Sarah Hoffmann
2022-11-08 14:06:18 +01:00
parent 3683cf7ddc
commit b98d3d3f00
2 changed files with 177 additions and 49 deletions

View File

@@ -2,60 +2,48 @@
Feature: Update of simple objects by osm2pgsql
Testing basic update functions of osm2pgsql.
Scenario: Import object with two main tags
Scenario: Adding a new object
When loading osm data
"""
n1 Ttourism=hotel,amenity=restaurant,name=foo
n2 Tplace=locality,name=spotty
n1 Tplace=town,name=Middletown
"""
Then place contains
| object | type | name+name |
| N1:tourism | hotel | foo |
| N1:amenity | restaurant | foo |
| N2:place | locality | spotty |
When updating osm data
"""
n1 dV Ttourism=hotel,name=foo
n2 dD
"""
Then place has no entry for N1:amenity
And place has no entry for N2
And place contains
| object | class | type | name |
| N1:tourism | tourism | hotel | 'name' : 'foo' |
Then place contains exactly
| object | type | name+name |
| N1:place | town | Middletown |
Scenario: Downgrading a highway to one that is dropped without name
When loading osm data
"""
n100 x0 y0
n101 x0.0001 y0.0001
w1 Thighway=residential Nn100,n101
"""
Then place contains
| object |
| W1:highway |
When updating osm data
"""
w1 Thighway=service Nn100,n101
"""
Then place has no entry for W1
When updating osm data
"""
n2 Tamenity=hotel,name=Posthotel
"""
Then place contains exactly
| object | type | name+name |
| N1:place | town | Middletown |
| N2:amenity | hotel | Posthotel |
And placex contains exactly
| object | type | name+name | indexed_status |
| N1:place | town | Middletown | 0 |
| N2:amenity | hotel | Posthotel | 1 |
Scenario: Downgrading a highway when a second tag is present
Scenario: Deleting an existing object
When loading osm data
"""
n100 x0 y0
n101 x0.0001 y0.0001
w1 Thighway=residential,tourism=hotel Nn100,n101
n1 Tplace=town,name=Middletown
n2 Tamenity=hotel,name=Posthotel
"""
Then place contains
| object |
| W1:highway |
| W1:tourism |
When updating osm data
"""
w1 Thighway=service,tourism=hotel Nn100,n101
"""
Then place has no entry for W1:highway
And place contains
| object |
| W1:tourism |
Then place contains exactly
| object | type | name+name |
| N1:place | town | Middletown |
| N2:amenity | hotel | Posthotel |
When updating osm data
"""
n2 dD
"""
Then place contains exactly
| object | type | name+name |
| N1:place | town | Middletown |
And placex contains exactly
| object | type | name+name | indexed_status |
| N1:place | town | Middletown | 0 |
| N2:amenity | hotel | Posthotel | 100 |

View File

@@ -26,6 +26,12 @@ Feature: Tag evaluation
| object | class | type |
| N2:highway | highway | bus_stop |
| N3 | amenity | prison |
And placex contains exactly
| object | indexed_status |
| N1:amenity | 100 |
| N2:highway | 2 |
| N2:railway | 100 |
| N3:amenity | 0 |
Scenario: Main tag added
@@ -48,6 +54,11 @@ Feature: Tag evaluation
| N1 | amenity | restaurant |
| N2:highway | highway | bus_stop |
| N2:railway | railway | stop |
And placex contains exactly
| object | indexed_status |
| N1:amenity | 1 |
| N2:highway | 2 |
| N2:railway | 1 |
Scenario: Main tag modified
@@ -70,6 +81,10 @@ Feature: Tag evaluation
| object | class | type |
| N10 | highway | path |
| N11 | highway | primary |
And placex contains
| object | indexed_status |
| N11:amenity | 100 |
| N11:highway | 1 |
Scenario: Main tags with name, name added
@@ -90,6 +105,10 @@ Feature: Tag evaluation
| object | class | type |
| N45 | landuse | cemetry |
| N46 | building| yes |
And placex contains exactly
| object | indexed_status |
| N45:landuse | 1 |
| N46:building | 1 |
Scenario: Main tags with name, name removed
@@ -110,6 +129,10 @@ Feature: Tag evaluation
"""
Then place contains exactly
| object | class | type |
And placex contains exactly
| object | indexed_status |
| N45:landuse | 100 |
| N46:building | 100 |
Scenario: Main tags with name, name modified
@@ -132,6 +155,10 @@ Feature: Tag evaluation
| object | class | type | name | address |
| N45 | landuse | cemetry | 'name' : 'DONE' | - |
| N46 | building| yes | - | 'housenumber': '10'|
And placex contains exactly
| object | indexed_status |
| N45:landuse | 2 |
| N46:building | 2 |
Scenario: Main tag added to address only node
@@ -150,6 +177,10 @@ Feature: Tag evaluation
Then place contains exactly
| object | class | type | address |
| N1 | building | yes | 'housenumber': '345'|
And placex contains exactly
| object | indexed_status |
| N1:place | 100 |
| N1:building | 1 |
Scenario: Main tag removed from address only node
@@ -168,6 +199,10 @@ Feature: Tag evaluation
Then place contains exactly
| object | class | type | address |
| N1 | place | house | 'housenumber': '345'|
And placex contains exactly
| object | indexed_status |
| N1:place | 1 |
| N1:building | 100 |
Scenario: Main tags with name key, adding key name
@@ -185,6 +220,9 @@ Feature: Tag evaluation
Then place contains exactly
| object | class | type | name |
| N22 | bridge | yes | 'name': 'high' |
And placex contains exactly
| object | indexed_status |
| N22:bridge | 1 |
Scenario: Main tags with name key, deleting key name
@@ -202,6 +240,9 @@ Feature: Tag evaluation
"""
Then place contains exactly
| object | class | type |
And placex contains exactly
| object | indexed_status |
| N22:bridge | 100 |
Scenario: Main tags with name key, changing key name
@@ -220,4 +261,103 @@ Feature: Tag evaluation
Then place contains exactly
| object | class | type | name |
| N22 | bridge | yes | 'name:en': 'high' |
And placex contains exactly
| object | indexed_status |
| N22:bridge | 2 |
Scenario: Downgrading a highway to one that is dropped without name
When loading osm data
"""
n100 x0 y0
n101 x0.0001 y0.0001
w1 Thighway=residential Nn100,n101
"""
Then place contains exactly
| object |
| W1:highway |
When updating osm data
"""
w1 Thighway=service Nn100,n101
"""
Then place contains exactly
| object |
And placex contains exactly
| object | indexed_status |
| W1:highway | 100 |
Scenario: Upgrading a highway to one that is not dropped without name
When loading osm data
"""
n100 x0 y0
n101 x0.0001 y0.0001
w1 Thighway=service Nn100,n101
"""
Then place contains exactly
| object |
When updating osm data
"""
w1 Thighway=unclassified Nn100,n101
"""
Then place contains exactly
| object |
| W1:highway |
And placex contains exactly
| object | indexed_status |
| W1:highway | 1 |
Scenario: Downgrading a highway when a second tag is present
When loading osm data
"""
n100 x0 y0
n101 x0.0001 y0.0001
w1 Thighway=residential,tourism=hotel Nn100,n101
"""
Then place contains exactly
| object |
| W1:highway |
| W1:tourism |
When updating osm data
"""
w1 Thighway=service,tourism=hotel Nn100,n101
"""
Then place contains exactly
| object |
| W1:tourism |
And placex contains exactly
| object |
| W1:tourism |
| W1:highway |
And placex contains
| object | indexed_status |
| W1:highway | 100 |
Scenario: Upgrading a highway when a second tag is present
When loading osm data
"""
n100 x0 y0
n101 x0.0001 y0.0001
w1 Thighway=service,tourism=hotel Nn100,n101
"""
Then place contains exactly
| object |
| W1:tourism |
When updating osm data
"""
w1 Thighway=residential,tourism=hotel Nn100,n101
"""
Then place contains exactly
| object |
| W1:highway |
| W1:tourism |
And placex contains exactly
| object | indexed_status |
| W1:tourism | 2 |
| W1:highway | 1 |