forked from codeforamerica/recordtrac
-
Notifications
You must be signed in to change notification settings - Fork 7
/
Copy pathtests.py
146 lines (119 loc) · 4.61 KB
/
tests.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
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
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
import os
from public_records_portal.prflask import app
import unittest
import random, string
class PublicRecordsTestCase(unittest.TestCase):
def random_content(self, content_type):
return "This is a new %s and some random string %s" %(content_type, ''.join(random.choice(string.lowercase) for i in range(10)))
def login(self):
return self.app.post('/login', data=dict(
email='email',
password='password'
), follow_redirects=True)
def logout(self):
return self.app.post('/logout')
def setUp(self):
self.app = app.test_client()
def test_route_request(self):
self.login()
reason = self.random_content('reason')
fields = dict(request_id = 5, owner_email = "[email protected]", owner_reason = reason)
page = self.submit_generic(fields = fields, endpoint = "update_a_owner")
self.logout()
assert reason in page.data
def test_index_logged_in(self):
self.login()
page = self.app.get('/', follow_redirects= True)
self.logout()
assert 'Requests assigned to you' in page.data
def test_index_logged_out(self):
page = self.app.get('/', follow_redirects= True)
assert 'Submit a Request' in page.data
def test_empty_db(self):
page = self.app.get('/requests')
assert 'No entries here so far' in page.data
def test_not_empty_db(self):
page = self.app.get('/requests')
assert 'All Requests' in page.data
def test_not_empty_db_city(self):
self.login()
page = self.app.get('/your_requests')
assert "Requests assigned to you" in page.data
self.logout()
def test_submit_request(self):
request = self.random_content('request')
page = self.submit_request('[email protected]', request)
assert request in page.data
def test_home(self):
page = self.app.get('/')
assert 'Submit a Request' in page.data
def test_ask_question(self):
self.login()
question = self.random_content('question')
fields = dict(request_id = 5, question_text = question)
page = self.submit_generic(fields = fields, endpoint = "add_a_qa")
self.logout()
assert question in page.data
def test_answer_question(self):
answer = self.random_content('answer')
fields = dict(request_id = 5, qa_id = 15, user_id = 2, answer_text = answer)
page = self.submit_generic(fields = fields, endpoint = "update_a_qa")
assert answer in page.data
def test_add_note(self):
self.login()
note_text = self.random_content('note')
fields = dict(request_id = 5, note_text = note_text)
page = self.submit_generic(fields = fields, endpoint = "add_a_note")
self.logout()
assert note_text in page.data
def test_add_offline_doc(self):
self.login()
record_description = self.random_content('record description')
record_access = self.random_content('record access')
fields = dict(request_id = 5, record_description = record_description, record_access = record_access)
page = self.submit_generic(fields = fields, endpoint = "add_a_record")
self.logout()
assert record_access in page.data
def test_add_link(self):
self.login()
link_description = self.random_content('link description')
link_url = 'http://www.google.com'
fields = dict(request_id = 5, record_description = link_description, link_url = link_url)
page = self.submit_generic(fields = fields, endpoint = "add_a_record")
self.logout()
assert link_description in page.data
def test_close_request(self):
self.login()
close_reason = self.random_content('close reason')
fields = dict(request_id = 4, close_reason = close_reason)
page = self.submit_generic(fields = fields, endpoint = "close")
self.logout()
assert close_reason in page.data
def test_submit_duplicate_request(self):
request = 'this is a duplicate request'
page = self.submit_request('[email protected]', request)
assert 'Your request is the same as' in page.data
def test_all_requests_logged_in(self):
self.login()
page = self.app.get('/requests')
self.logout()
assert '/city/request/' in page.data
def test_all_requests_logged_out(self):
page = self.app.get('/requests')
assert '/request/' in page.data
def test_reroute_owner(self):
self.login()
reroute_reason = self.random_content('reroute reason')
fields = dict(request_id = 5, owner_reason = reroute_reason, owner_email = "[email protected]")
page = self.submit_generic(fields = fields, endpoint = "update_a_owner")
self.logout()
assert reroute_reason in page.data
def submit_request(self, email, text):
return self.app.post('/new', data=dict(
request_text= text,
request_email = email
), follow_redirects=True)
def submit_generic(self, fields, endpoint = ""):
return self.app.post('/%s' % (endpoint), data = fields, follow_redirects= True)
if __name__ == '__main__':
unittest.main()