-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathapi_test.py
47 lines (37 loc) · 1.54 KB
/
api_test.py
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
import unittest, os, tempfile
from pprint import pprint
from json import loads, dumps
import requests, responses
import api
class ApiTest(unittest.TestCase):
def setUp(self):
api.app.config['TESTING'] = True
self.app = api.app.test_client()
with api.app.app_context():
pass
# api.init_db()
def get_json(self, path):
response = self.app.get(path)
return loads(response.get_data(as_text=True), 'utf8')
def test_index(self):
self.assertEqual(self.get_json('/')['status'], 'ok')
def test_list_stations(self):
stations = self.get_json('/stations')
self.assertEqual(stations['status'], 'ok')
def test_list_stations_near(self):
stations = self.get_json('/stations?near=Ljubljana')
self.assertEqual(stations['status'], 'ok')
@responses.activate
def test_geocode(self):
responses.add(responses.GET, 'http://maps.googleapis.com/maps/api/geocode/json',
dumps({'results': [{'geometry': {'location': {'lat': 1.1, 'lng': 1.1}}}]}))
result = api.geocode('Fake Lokacija', cache=False)
self.assertEqual(result, [1.1, 1.1])
@responses.activate
def test_geocode_caching(self):
responses.add(responses.GET, 'http://maps.googleapis.com/maps/api/geocode/json',
dumps({'results': [{'geometry': {'location': {'lat': 1.1, 'lng': 1.1}}}]}))
result = api.geocode('Fake Lokacija')
self.assertEqual(result, [1.1, 1.1])
if __name__ == '__main__':
unittest.main()