1172
1172
self.server.add_user('joe', '')
1173
1173
t = self._transport(self.get_user_url('joe', ''))
1174
1174
self.assertEqual('contents of a\n', t.get('a').read())
1175
# Only one 'Authentication Required' error should occur
1176
self.assertEqual(1, self.server.auth_required_errors)
1176
1178
def test_user_pass(self):
1177
1179
self.server.add_user('joe', 'foo')
1178
1180
t = self._transport(self.get_user_url('joe', 'foo'))
1179
1181
self.assertEqual('contents of a\n', t.get('a').read())
1182
# Only one 'Authentication Required' error should occur
1183
self.assertEqual(1, self.server.auth_required_errors)
1181
1185
def test_unknown_user(self):
1182
1186
self.server.add_user('joe', 'foo')
1183
1187
t = self._transport(self.get_user_url('bill', 'foo'))
1184
1188
self.assertRaises(errors.InvalidHttpResponse, t.get, 'a')
1189
# Two 'Authentication Required' errors should occur (the
1190
# initial 'who are you' and 'I don't know you, who are
1192
self.assertEqual(2, self.server.auth_required_errors)
1186
1194
def test_wrong_pass(self):
1187
1195
self.server.add_user('joe', 'foo')
1188
1196
t = self._transport(self.get_user_url('joe', 'bar'))
1189
1197
self.assertRaises(errors.InvalidHttpResponse, t.get, 'a')
1198
# Two 'Authentication Required' error should occur (the
1199
# initial 'who are you' and 'this is not you, who are you')
1200
self.assertEqual(2, self.server.auth_required_errors)
1191
1202
def test_prompt_for_password(self):
1192
1203
self.server.add_user('joe', 'foo')
1202
1213
# And neither against a clone
1203
1214
self.assertEqual('contents of b\n',t2.get('b').read())
1215
# Only one 'Authentication Required' error should occur
1216
self.assertEqual(1, self.server.auth_required_errors)
1206
1220
class TestHTTPBasicAuth(TestHTTPAuth, TestCaseWithWebserver):