2 Feature: Tag evaluation
3 Tests if tags are correctly updated in the place table
11 Scenario: Main tag deleted
14 n1 Tamenity=restaurant
15 n2 Thighway=bus_stop,railway=stop,name=X
18 Then place contains exactly
19 | object | class | type |
20 | N1 | amenity | restaurant |
21 | N2:highway | highway | bus_stop |
22 | N2:railway | railway | stop |
23 | N3 | amenity | prison |
25 When updating osm data
28 n2 Thighway=bus_stop,name=X
30 Then place contains exactly
31 | object | class | type |
32 | N2:highway | highway | bus_stop |
33 | N3 | amenity | prison |
35 | object | indexed_status |
38 Then placex contains exactly
39 | object | type | name |
40 | N2:highway | bus_stop | 'name': 'X' |
41 | N3:amenity | prison | - |
44 Scenario: Main tag added
48 n2 Thighway=bus_stop,name=X
50 Then place contains exactly
51 | object | class | type |
52 | N2:highway | highway | bus_stop |
54 When updating osm data
56 n1 Tamenity=restaurant
57 n2 Thighway=bus_stop,railway=stop,name=X
59 Then place contains exactly
60 | object | class | type |
61 | N1 | amenity | restaurant |
62 | N2:highway | highway | bus_stop |
63 | N2:railway | railway | stop |
65 Then placex contains exactly
66 | object | type | name |
67 | N1:amenity | restaurant | - |
68 | N2:highway | bus_stop | 'name': 'X' |
69 | N2:railway | stop | 'name': 'X' |
72 Scenario: Main tag modified
75 n10 Thighway=footway,name=X
78 Then place contains exactly
79 | object | class | type |
80 | N10 | highway | footway |
81 | N11 | amenity | atm |
83 When updating osm data
85 n10 Thighway=path,name=X
88 Then place contains exactly
89 | object | class | type |
90 | N10 | highway | path |
91 | N11 | highway | primary |
93 Then placex contains exactly
94 | object | type | name |
95 | N10:highway | path | 'name': 'X' |
96 | N11:highway | primary | - |
99 Scenario: Main tags with name, name added
100 When loading osm data
105 Then place contains exactly
106 | object | class | type |
108 When updating osm data
110 n45 Tlanduse=cemetry,name=TODO
111 n46 Tbuilding=yes,addr:housenumber=1
113 Then place contains exactly
114 | object | class | type |
115 | N45 | landuse | cemetry |
116 | N46 | building| yes |
118 Then placex contains exactly
119 | object | type | name | address |
120 | N45:landuse | cemetry | 'name': 'TODO' | - |
121 | N46:building| yes | - | 'housenumber': '1' |
124 Scenario: Main tags with name, name removed
125 When loading osm data
127 n45 Tlanduse=cemetry,name=TODO
128 n46 Tbuilding=yes,addr:housenumber=1
130 Then place contains exactly
131 | object | class | type |
132 | N45 | landuse | cemetry |
133 | N46 | building| yes |
135 When updating osm data
140 Then place contains exactly
141 | object | class | type |
143 Then placex contains exactly
146 Scenario: Main tags with name, name modified
147 When loading osm data
149 n45 Tlanduse=cemetry,name=TODO
150 n46 Tbuilding=yes,addr:housenumber=1
152 Then place contains exactly
153 | object | class | type | name | address |
154 | N45 | landuse | cemetry | 'name' : 'TODO' | - |
155 | N46 | building| yes | - | 'housenumber': '1'|
157 When updating osm data
159 n45 Tlanduse=cemetry,name=DONE
160 n46 Tbuilding=yes,addr:housenumber=10
162 Then place contains exactly
163 | object | class | type | name | address |
164 | N45 | landuse | cemetry | 'name' : 'DONE' | - |
165 | N46 | building| yes | - | 'housenumber': '10'|
167 Then placex contains exactly
168 | object | class | type | name | address |
169 | N45 | landuse | cemetry | 'name' : 'DONE' | - |
170 | N46 | building| yes | - | 'housenumber': '10'|
173 Scenario: Main tag added to address only node
174 When loading osm data
176 n1 Taddr:housenumber=345
178 Then place contains exactly
179 | object | class | type | address |
180 | N1 | place | house | 'housenumber': '345'|
182 When updating osm data
184 n1 Taddr:housenumber=345,building=yes
186 Then place contains exactly
187 | object | class | type | address |
188 | N1 | building | yes | 'housenumber': '345'|
190 Then placex contains exactly
191 | object | class | type | address |
192 | N1 | building | yes | 'housenumber': '345'|
195 Scenario: Main tag removed from address only node
196 When loading osm data
198 n1 Taddr:housenumber=345,building=yes
200 Then place contains exactly
201 | object | class | type | address |
202 | N1 | building | yes | 'housenumber': '345'|
204 When updating osm data
206 n1 Taddr:housenumber=345
208 Then place contains exactly
209 | object | class | type | address |
210 | N1 | place | house | 'housenumber': '345'|
212 Then placex contains exactly
213 | object | class | type | address |
214 | N1 | place | house | 'housenumber': '345'|
217 Scenario: Main tags with name key, adding key name
218 When loading osm data
222 Then place contains exactly
223 | object | class | type |
225 When updating osm data
227 n2 Tbridge=yes,bridge:name=high
229 Then place contains exactly
230 | object | class | type | name |
231 | N2 | bridge | yes | 'name': 'high' |
233 Then placex contains exactly
234 | object | class | type | name |
235 | N2 | bridge | yes | 'name': 'high' |
238 Scenario: Main tags with name key, deleting key name
239 When loading osm data
241 n2 Tbridge=yes,bridge:name=high
243 Then place contains exactly
244 | object | class | type | name |
245 | N2 | bridge | yes | 'name': 'high' |
247 When updating osm data
251 Then place contains exactly
254 Then placex contains exactly
258 Scenario: Main tags with name key, changing key name
259 When loading osm data
261 n2 Tbridge=yes,bridge:name=high
263 Then place contains exactly
264 | object | class | type | name |
265 | N2 | bridge | yes | 'name': 'high' |
267 When updating osm data
269 n2 Tbridge=yes,bridge:name:en=high
271 Then place contains exactly
272 | object | class | type | name |
273 | N2 | bridge | yes | 'name:en': 'high' |
275 Then placex contains exactly
276 | object | class | type | name |
277 | N2 | bridge | yes | 'name:en': 'high' |
280 Scenario: Downgrading a highway to one that is dropped without name
281 When loading osm data
285 w1 Thighway=residential Nn100,n101
287 Then place contains exactly
291 When updating osm data
293 w1 Thighway=service Nn100,n101
295 Then place contains exactly
298 Then placex contains exactly
302 Scenario: Upgrading a highway to one that is not dropped without name
303 When loading osm data
307 w1 Thighway=service Nn100,n101
309 Then place contains exactly
312 When updating osm data
314 w1 Thighway=unclassified Nn100,n101
316 Then place contains exactly
320 Then placex contains exactly
325 Scenario: Downgrading a highway when a second tag is present
326 When loading osm data
330 w1 Thighway=residential,tourism=hotel Nn100,n101
332 Then place contains exactly
334 | W1:highway | residential |
335 | W1:tourism | hotel |
337 When updating osm data
339 w1 Thighway=service,tourism=hotel Nn100,n101
341 Then place contains exactly
343 | W1:tourism | hotel |
345 Then placex contains exactly
347 | W1:tourism | hotel |
350 Scenario: Upgrading a highway when a second tag is present
351 When loading osm data
355 w1 Thighway=service,tourism=hotel Nn100,n101
357 Then place contains exactly
359 | W1:tourism | hotel |
361 When updating osm data
363 w1 Thighway=residential,tourism=hotel Nn100,n101
365 Then place contains exactly
367 | W1:highway | residential |
368 | W1:tourism | hotel |
370 Then placex contains exactly
372 | W1:highway | residential |
373 | W1:tourism | hotel |
376 Scenario: Replay on administrative boundary
377 When loading osm data
382 w10 Tboundary=administrative,waterway=river,name=Border,admin_level=2 Nn12,n11,n10
384 Then place contains exactly
385 | object | type | admin_level | name |
386 | W10:waterway | river | 2 | 'name': 'Border' |
387 | W10:boundary | administrative | 2 | 'name': 'Border' |
389 When updating osm data
391 w10 Tboundary=administrative,waterway=river,name=Border,admin_level=2 Nn12,n11,n10
393 Then place contains exactly
394 | object | type | admin_level | name |
395 | W10:waterway | river | 2 | 'name': 'Border' |
396 | W10:boundary | administrative | 2 | 'name': 'Border' |
398 Then placex contains exactly
399 | object | type | admin_level | name |
400 | W10:waterway | river | 2 | 'name': 'Border' |
403 Scenario: Change admin_level on administrative boundary
407 When loading osm data
413 w10 Nn10,n11,n12,n13,n10
414 r10 Ttype=multipolygon,boundary=administrative,name=Border,admin_level=2 Mw10@
416 Then place contains exactly
417 | object | admin_level |
420 When updating osm data
422 r10 Ttype=multipolygon,boundary=administrative,name=Border,admin_level=4 Mw10@
424 Then place contains exactly
425 | object | type | admin_level |
426 | R10:boundary | administrative | 4 |
428 Then placex contains exactly
429 | object | type | admin_level |
430 | R10:boundary | administrative | 4 |
433 Scenario: Change boundary to administrative
437 When loading osm data
443 w10 Nn10,n11,n12,n13,n10
444 r10 Ttype=multipolygon,boundary=informal,name=Border,admin_level=4 Mw10@
446 Then place contains exactly
447 | object | type | admin_level |
448 | R10:boundary | informal | 4 |
450 When updating osm data
452 r10 Ttype=multipolygon,boundary=administrative,name=Border,admin_level=4 Mw10@
454 Then place contains exactly
455 | object | type | admin_level |
456 | R10:boundary | administrative | 4 |
458 Then placex contains exactly
459 | object | type | admin_level |
460 | R10:boundary | administrative | 4 |
463 Scenario: Change boundary away from administrative
467 When loading osm data
473 w10 Nn10,n11,n12,n13,n10
474 r10 Ttype=multipolygon,boundary=administrative,name=Border,admin_level=4 Mw10@
476 Then place contains exactly
477 | object | type | admin_level |
478 | R10:boundary | administrative | 4 |
480 When updating osm data
482 r10 Ttype=multipolygon,boundary=informal,name=Border,admin_level=4 Mw10@
484 Then place contains exactly
485 | object | type | admin_level |
486 | R10:boundary | informal | 4 |
488 Then placex contains exactly
489 | object | type | admin_level |
490 | R10:boundary | informal | 4 |