-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathapitest.py
44 lines (35 loc) · 1.41 KB
/
apitest.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
import unittest
import requests
import os
class TestDogAPI(unittest.TestCase):
def setUp(self):
self.base_url = os.environ["READY_TEST_BASE_URL"]
def base(self, path):
return self.base_url + path
def test_unknown(self):
rawresp = requests.get(self.base("/count"),
params={'foo': 'x', 'bar': 'y', 'baz': 'z'})
self.assertEqual(rawresp.status_code, 400)
resp = rawresp.json()
self.assertEqual(resp['unknown fields'], ['bar', 'baz', 'foo'])
def test_content_type(self):
rawresp = requests.get(self.base("/count"), params={'dog_name': 'Buddy'})
self.assertEqual(rawresp.headers['Content-Type'], 'application/json')
def test_count_one(self):
rawresp = requests.get(self.base("/count"), params={'dog_name': 'Buddy'})
resp = rawresp.json()
self.assertEqual(resp['count'], 599)
def test_count_two(self):
rawresp = requests.get(self.base("/count"),
params={'gender': 'f', 'dominant_color': 'brindle'})
resp = rawresp.json()
self.assertEqual(resp['count'], 1245)
def test_count_three(self):
rawresp = requests.get(self.base("/count"), params={
'gender': 'm',
'borough': 'brooklyn',
'spayed_or_neutered': 'no'})
resp = rawresp.json()
self.assertEqual(resp['count'], 3230)
if __name__ == '__main__':
unittest.main()