-
Notifications
You must be signed in to change notification settings - Fork 2
/
test_string_generator.py
59 lines (49 loc) · 1.99 KB
/
test_string_generator.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
48
49
50
51
52
53
54
55
56
57
58
59
#!/usr/bin/python
"""Test the string generator class."""
import cherrypy
from cherrypy.test import helper
from string_generator import StringGeneratorWebService
class TestStringGenerator(helper.CPWebCase):
"""The test framework for string generator service."""
PORT = 1234
HOST = '127.0.0.1'
@staticmethod
def setup_server():
"""Setup each test by starting the CherryPy server."""
cherrypy.config.update('server.conf')
cherrypy.tree.mount(StringGeneratorWebService(), '/', 'server.conf')
def test_get_method(self):
"""Test the GET method."""
self.getPage('/')
self.assertStatus('200 OK')
self.assertHeader('Content-Type', 'application/json')
self.assertBody('{"mystring": ""}')
def test_get_with_real_data(self):
"""Test the GET method with data in the system."""
self.getPage('/blah', method='PUT')
self.getPage('/')
self.assertStatus('200 OK')
self.assertHeader('Content-Type', 'application/json')
self.assertBody('{"mystring": "blah"}')
def test_put_method(self):
"""Test the PUT method."""
self.getPage('/blah', method='PUT')
self.assertStatus('200 OK')
self.assertHeader('Content-Type', 'application/json')
self.assertBody('{"mystring": "blah"}')
def test_post_method(self):
"""Test the POST method."""
self.getPage('/', method='POST')
self.assertStatus('200 OK')
self.assertHeader('Content-Type', 'application/json')
def test_delete_method(self):
"""Test the DELETE method."""
self.getPage('/blah', method='PUT')
self.getPage('/', method='DELETE')
self.assertStatus('204 No Content')
self.assertHeader('Content-Type', 'application/json')
def test_options_method(self):
"""Test the Options method."""
self.getPage('/', method='OPTIONS')
self.assertStatus('204 No Content')
self.assertHeader('Content-Type', 'application/json')