forked from DinoTools/python-overpy
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathtest_result_way.py
More file actions
106 lines (75 loc) · 2.86 KB
/
Copy pathtest_result_way.py
File metadata and controls
106 lines (75 loc) · 2.86 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
import pytest
import overpy
from tests import read_file, new_server_thread, BaseRequestHandler
class HandleResponseJSON01(BaseRequestHandler):
"""
"""
def handle(self):
self.request.send(b"HTTP/1.0 200 OK\r\n")
self.request.send(b"Content-Type: application/json\r\n")
self.request.send(b"\r\n")
self.request.send(read_file("json/result-way-01.json", "rb"))
class HandleResponseJSON02(BaseRequestHandler):
"""
"""
def handle(self):
self.request.send(b"HTTP/1.0 200 OK\r\n")
self.request.send(b"Content-Type: application/json\r\n")
self.request.send(b"\r\n")
self.request.send(read_file("json/result-way-02.json", "rb"))
class HandleResponseJSON03(BaseRequestHandler):
"""
"""
def handle(self):
self.request.send(b"HTTP/1.0 200 OK\r\n")
self.request.send(b"Content-Type: application/json\r\n")
self.request.send(b"\r\n")
self.request.send(read_file("json/result-way-03.json", "rb"))
class TestNodes(object):
def test_missing_unresolvable(self):
url, t = new_server_thread(HandleResponseJSON01)
t.start()
api = overpy.Overpass()
api.url = url
result = api.parse_json(read_file("json/result-way-01.json"))
assert len(result.nodes) == 0
assert len(result.ways) == 1
way = result.ways[0]
assert isinstance(way, overpy.Way)
with pytest.raises(overpy.exception.DataIncomplete):
way.get_nodes()
with pytest.raises(overpy.exception.DataIncomplete):
way.get_nodes(resolve_missing=True)
assert len(result.nodes) == 0
t.join()
def test_missing_partly_unresolvable(self):
url, t = new_server_thread(HandleResponseJSON02)
t.start()
api = overpy.Overpass()
api.url = url
result = api.parse_json(read_file("json/result-way-01.json"))
assert len(result.nodes) == 0
assert len(result.ways) == 1
way = result.ways[0]
assert isinstance(way, overpy.Way)
with pytest.raises(overpy.exception.DataIncomplete):
way.get_nodes()
with pytest.raises(overpy.exception.DataIncomplete):
way.get_nodes(resolve_missing=True)
assert len(result.nodes) == 1
t.join()
def test_missing_resolvable(self):
url, t = new_server_thread(HandleResponseJSON03)
t.start()
api = overpy.Overpass()
api.url = url
result = api.parse_json(read_file("json/result-way-01.json"))
assert len(result.nodes) == 0
assert len(result.ways) == 1
way = result.ways[0]
assert isinstance(way, overpy.Way)
with pytest.raises(overpy.exception.DataIncomplete):
way.get_nodes()
nodes = way.get_nodes(resolve_missing=True)
assert len(nodes) == 2
t.join()