Merge pull request #1505 from ticosax/test.client.logout

reset stored credentials when call client.logout()
This commit is contained in:
Tom Christie 2014-08-18 20:37:25 +01:00
commit 1d0c169e94
2 changed files with 15 additions and 0 deletions

View File

@ -154,6 +154,10 @@ class APIClient(APIRequestFactory, DjangoClient):
kwargs.update(self._credentials)
return super(APIClient, self).request(**kwargs)
def logout(self):
self._credentials = {}
return super(APIClient, self).logout()
class APITransactionTestCase(testcases.TransactionTestCase):
client_class = APIClient

View File

@ -99,6 +99,17 @@ class TestAPITestClient(TestCase):
self.assertEqual(response.status_code, 403)
self.assertEqual(response.data, expected)
def test_can_logout(self):
"""
`logout()` reset stored credentials
"""
self.client.credentials(HTTP_AUTHORIZATION='example')
response = self.client.get('/view/')
self.assertEqual(response.data['auth'], 'example')
self.client.logout()
response = self.client.get('/view/')
self.assertEqual(response.data['auth'], b'')
class TestAPIRequestFactory(TestCase):
def test_csrf_exempt_by_default(self):