109
109
call_api('http://localhost:9001/3.0/addresses/'
110
110
'anne@example.com/unverify/foo', {})
111
111
self.assertEqual(cm.exception.code, 400)
113
def test_address_added_to_user(self):
114
# Address is added to a user record.
115
user_manager = getUtility(IUserManager)
117
anne = user_manager.create_user('anne@example.com')
118
response, content = call_api(
119
'http://localhost:9001/3.0/users/anne@example.com/addresses', {
120
'email': 'anne.person@example.org',
122
self.assertIn('anne.person@example.org',
123
[addr.email for addr in anne.addresses])
124
self.assertEqual(content['status'], '201')
127
'http://localhost:9001/3.0/addresses/anne.person@example.org')
128
# The address has no display name.
129
anne_person = user_manager.get_address('anne.person@example.org')
130
self.assertEqual(anne_person.display_name, '')
132
def test_address_and_display_name_added_to_user(self):
133
# Address with a display name is added to the user record.
134
user_manager = getUtility(IUserManager)
136
anne = user_manager.create_user('anne@example.com')
137
response, content = call_api(
138
'http://localhost:9001/3.0/users/anne@example.com/addresses', {
139
'email': 'anne.person@example.org',
140
'display_name': 'Ann E Person',
142
self.assertIn('anne.person@example.org',
143
[addr.email for addr in anne.addresses])
144
self.assertEqual(content['status'], '201')
147
'http://localhost:9001/3.0/addresses/anne.person@example.org')
148
# The address has no display name.
149
anne_person = user_manager.get_address('anne.person@example.org')
150
self.assertEqual(anne_person.display_name, 'Ann E Person')
152
def test_existing_address_bad_request(self):
153
# Trying to add an existing address returns 400.
155
getUtility(IUserManager).create_user('anne@example.com')
156
with self.assertRaises(HTTPError) as cm:
158
'http://localhost:9001/3.0/users/anne@example.com/addresses', {
159
'email': 'anne@example.com',
161
self.assertEqual(cm.exception.code, 400)
162
self.assertEqual(cm.exception.reason, 'Address already exists')
164
def test_invalid_address_bad_request(self):
165
# Trying to add an invalid address string returns 400.
167
getUtility(IUserManager).create_user('anne@example.com')
168
with self.assertRaises(HTTPError) as cm:
170
'http://localhost:9001/3.0/users/anne@example.com/addresses', {
171
'email': 'invalid_address_string'
173
self.assertEqual(cm.exception.code, 400)
174
self.assertEqual(cm.exception.reason, 'Invalid email address')
176
def test_empty_address_bad_request(self):
177
# The address is required.
179
getUtility(IUserManager).create_user('anne@example.com')
180
with self.assertRaises(HTTPError) as cm:
182
'http://localhost:9001/3.0/users/anne@example.com/addresses',
184
self.assertEqual(cm.exception.code, 400)
185
self.assertEqual(cm.exception.reason, 'Missing parameters: email')
187
def test_add_address_to_missing_user(self):
188
# The user that the address is being added to must exist.
189
with self.assertRaises(HTTPError) as cm:
191
'http://localhost:9001/3.0/users/anne@example.com/addresses', {
192
'email': 'anne.person@example.org',
194
self.assertEqual(cm.exception.code, 404)