Skip to content

Commit 29073b5

Browse files
committed
Merge pull request #28 from slawek87/issue-24
improved tests + added into classes inheritance by object
2 parents 0d5914a + f05e954 commit 29073b5

3 files changed

Lines changed: 36 additions & 34 deletions

File tree

geolocation/distance_matrix/main.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
from geolocation.managers import Manager
77

88

9-
class DistanceMatrix():
9+
class DistanceMatrix(object):
1010
parser = DistanceMatrixParser()
1111
manager = Manager()
1212

geolocation/geocode/main.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
from geolocation.geocode.api import GeocodeApi
55

66

7-
class Geocode():
7+
class Geocode(object):
88
parser = GeocodeParser()
99
manager = Manager()
1010

tests/tests.py

Lines changed: 34 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,6 @@
11
#!/usr/bin/env python
22
# encoding: utf-8
33

4-
from decimal import Decimal
5-
64
import unittest
75
from geolocation.google_maps import GoogleMaps
86
from geolocation.distance_matrix import const
@@ -65,7 +63,7 @@ def test_lat(self):
6563

6664
my_location = location.first()
6765

68-
self.assertEqual(40.7060081, my_location.lat)
66+
self.assertAlmostEqual(40.7060081, my_location.lat, 2)
6967

7068
def test_lng(self):
7169
address = "New York City Wall Street 19"
@@ -74,7 +72,7 @@ def test_lng(self):
7472

7573
my_location = location.first()
7674

77-
self.assertEqual(-74.0134436, my_location.lng)
75+
self.assertAlmostEqual(-74.0134436, my_location.lng, 2)
7876

7977
def test_formatted_address(self):
8078
address = "New York City Wall Street 124"
@@ -136,6 +134,10 @@ def test_administrative_area_resets(self):
136134
class DistanceMatrixTest(unittest.TestCase):
137135
def setUp(self):
138136
self.google_maps = GoogleMaps(api_key=TEST_API_KEY)
137+
self.duration_regex = r'([0-9]*)d ([0-9]*)h ([0-9]*)m ([0-9]*)s'
138+
self.delta_km = 25
139+
self.delta_m = 25000
140+
self.delta_miles = 25
139141

140142
def test_distance_matrix(self):
141143
origins = ['rybnik', 'oslo']
@@ -146,17 +148,17 @@ def test_distance_matrix(self):
146148
for item in items:
147149
if item.origin == 'Rybnik, Poland':
148150
self.assertEqual(item.destination, 'Zagreb, Croatia')
149-
self.assertEqual(item.distance.kilometers, Decimal(713))
150-
self.assertEqual(item.distance.meters, 713000)
151-
self.assertEqual(item.distance.miles, 443.0368)
152-
self.assertEqual(str(item.duration), '0d 7h 7m 47s')
151+
self.assertAlmostEqual(float(709), item.distance.kilometers, delta=self.delta_km)
152+
self.assertAlmostEqual(float(713000), item.distance.meters, delta=self.delta_m)
153+
self.assertAlmostEqual(float(443.0368), item.distance.miles, delta=self.delta_miles)
154+
self.assertRegexpMatches(str(item.duration), self.duration_regex)
153155

154156
if item.origin == 'Oslo, Norway':
155157
self.assertEqual(item.destination, 'Zagreb, Croatia')
156-
self.assertEqual(item.distance.kilometers, 2063)
157-
self.assertEqual(item.distance.meters, 2063000)
158-
self.assertEqual(item.distance.miles, 1281.8863)
159-
self.assertEqual(str(item.duration), '0d 21h 18m 29s')
158+
self.assertAlmostEqual(float(2063), item.distance.kilometers, delta=self.delta_km)
159+
self.assertAlmostEqual(float(2063000), item.distance.meters, delta=self.delta_m)
160+
self.assertAlmostEqual(float(1281.8863), item.distance.miles, delta=self.delta_miles)
161+
self.assertRegexpMatches(str(item.duration), self.duration_regex)
160162

161163
def test_distance_matrix_bicycling(self):
162164
origins = ['rybnik']
@@ -166,10 +168,10 @@ def test_distance_matrix_bicycling(self):
166168

167169
self.assertEqual(item.origin, 'Rybnik, Poland')
168170
self.assertEqual(item.destination, 'Oslo, Norway')
169-
self.assertEqual(item.distance.kilometers, 1596)
170-
self.assertEqual(item.distance.meters, 1596000)
171-
self.assertEqual(item.distance.miles, 991.7065)
172-
self.assertEqual(str(item.duration), '3d 11h 7m 25s')
171+
self.assertAlmostEqual(float(1596), item.distance.kilometers, delta=self.delta_km)
172+
self.assertAlmostEqual(float(1596000), item.distance.meters, delta=self.delta_m)
173+
self.assertAlmostEqual(float(991.7065), item.distance.miles, delta=self.delta_miles)
174+
self.assertRegexpMatches(str(item.duration), self.duration_regex)
173175

174176
def test_distance_matrix_walking(self):
175177
origins = ['rybnik']
@@ -179,10 +181,10 @@ def test_distance_matrix_walking(self):
179181

180182
self.assertEqual(item.origin, 'Rybnik, Poland')
181183
self.assertEqual(item.destination, 'Oslo, Norway')
182-
self.assertEqual(item.distance.kilometers, 1380)
183-
self.assertEqual(item.distance.meters, 1380000)
184-
self.assertEqual(item.distance.miles, 857.4906)
185-
self.assertEqual(str(item.duration), '10d 9h 32m 16s')
184+
self.assertAlmostEqual(float(1380), item.distance.kilometers, delta=self.delta_km)
185+
self.assertAlmostEqual(float(1380000), item.distance.meters, delta=self.delta_m)
186+
self.assertAlmostEqual(float(857.4906), item.distance.miles, delta=self.delta_miles)
187+
self.assertRegexpMatches(str(item.duration), self.duration_regex)
186188

187189
def test_distance_matrix_avoid_tolls(self):
188190
origins = ['rybnik']
@@ -192,10 +194,10 @@ def test_distance_matrix_avoid_tolls(self):
192194

193195
self.assertEqual(item.origin, 'Rybnik, Poland')
194196
self.assertEqual(item.destination, 'Oslo, Norway')
195-
self.assertEqual(item.distance.kilometers, 1542)
196-
self.assertEqual(item.distance.meters, 1542000)
197-
self.assertEqual(item.distance.miles, 958.1525)
198-
self.assertEqual(str(item.duration), '0d 16h 30m 40s')
197+
self.assertAlmostEqual(float(1542), item.distance.kilometers, delta=self.delta_km)
198+
self.assertAlmostEqual(float(1542000), item.distance.meters, delta=self.delta_m)
199+
self.assertAlmostEqual(float(958.1525), item.distance.miles, delta=self.delta_miles)
200+
self.assertRegexpMatches(str(item.duration), self.duration_regex)
199201

200202
def test_distance_matrix_avoid_highways(self):
201203
origins = ['rybnik']
@@ -205,10 +207,10 @@ def test_distance_matrix_avoid_highways(self):
205207

206208
self.assertEqual(item.origin, 'Rybnik, Poland')
207209
self.assertEqual(item.destination, 'Oslo, Norway')
208-
self.assertEqual(item.distance.kilometers, 1491)
209-
self.assertEqual(item.distance.meters, 1491000)
210-
self.assertEqual(item.distance.miles, 926.4627)
211-
self.assertEqual(str(item.duration), '1d 1h 36m 6s')
210+
self.assertAlmostEqual(float(1542), item.distance.kilometers, delta=self.delta_km)
211+
self.assertAlmostEqual(float(1542000), item.distance.meters, delta=self.delta_m)
212+
self.assertAlmostEqual(float(958.1525), item.distance.miles, delta=self.delta_miles)
213+
self.assertRegexpMatches(str(item.duration), self.duration_regex)
212214

213215
def test_distance_matrix_avoid_ferries(self):
214216
origins = ['rybnik']
@@ -218,10 +220,10 @@ def test_distance_matrix_avoid_ferries(self):
218220

219221
self.assertEqual(item.origin, 'Rybnik, Poland')
220222
self.assertEqual(item.destination, 'Oslo, Norway')
221-
self.assertEqual(item.distance.kilometers, 1851)
222-
self.assertEqual(item.distance.meters, 1851000)
223-
self.assertEqual(item.distance.miles, 1150.1559)
224-
self.assertEqual(str(item.duration), '0d 17h 35m 44s')
223+
self.assertAlmostEqual(float(1851), item.distance.kilometers, delta=self.delta_km)
224+
self.assertAlmostEqual(float(1851000), item.distance.meters, delta=self.delta_m)
225+
self.assertAlmostEqual(float(1150.1559), item.distance.miles, delta=self.delta_miles)
226+
self.assertRegexpMatches(str(item.duration), self.duration_regex)
225227

226228

227229
if __name__ == '__main__':

0 commit comments

Comments
 (0)