diff options
| author | Tom Christie | 2012-11-19 13:30:49 -0800 | 
|---|---|---|
| committer | Tom Christie | 2012-11-19 13:30:49 -0800 | 
| commit | b9e5c9484ae34b6675ea940854d58e2561bcc7f9 (patch) | |
| tree | 8de7b921b7bc8b7cf9275cf07c8f26c3bf276d14 /rest_framework/tests | |
| parent | 25f024575bc36ea6ed386160a31b70abb5ac3e6e (diff) | |
| parent | f5f1ac49ec9d9cb180a00c791f2701c3f5a2d65b (diff) | |
| download | django-rest-framework-b9e5c9484ae34b6675ea940854d58e2561bcc7f9.tar.bz2 | |
Merge pull request #399 from robromano/master
Added login view for users of TokenAuthentication
Diffstat (limited to 'rest_framework/tests')
| -rw-r--r-- | rest_framework/tests/authentication.py | 33 | 
1 files changed, 32 insertions, 1 deletions
diff --git a/rest_framework/tests/authentication.py b/rest_framework/tests/authentication.py index 8ab4c4e4..96ca9f52 100644 --- a/rest_framework/tests/authentication.py +++ b/rest_framework/tests/authentication.py @@ -1,4 +1,4 @@ -from django.conf.urls.defaults import patterns +from django.conf.urls.defaults import patterns, include  from django.contrib.auth.models import User  from django.test import Client, TestCase @@ -27,6 +27,7 @@ MockView.authentication_classes += (TokenAuthentication,)  urlpatterns = patterns('',      (r'^$', MockView.as_view()), +    (r'^auth-token/', 'rest_framework.authtoken.views.obtain_auth_token'),  ) @@ -152,3 +153,33 @@ class TokenAuthTests(TestCase):          self.token.delete()          token = Token.objects.create(user=self.user)          self.assertTrue(bool(token.key)) + +    def test_token_login_json(self): +        """Ensure token login view using JSON POST works.""" +        client = Client(enforce_csrf_checks=True) +        response = client.post('/auth-token/login/',  +                               json.dumps({'username': self.username, 'password': self.password}), 'application/json') +        self.assertEqual(response.status_code, 200) +        self.assertEqual(json.loads(response.content)['token'], self.key) + +    def test_token_login_json_bad_creds(self): +        """Ensure token login view using JSON POST fails if bad credentials are used.""" +        client = Client(enforce_csrf_checks=True) +        response = client.post('/auth-token/login/',  +                               json.dumps({'username': self.username, 'password': "badpass"}), 'application/json') +        self.assertEqual(response.status_code, 400) + +    def test_token_login_json_missing_fields(self): +        """Ensure token login view using JSON POST fails if missing fields.""" +        client = Client(enforce_csrf_checks=True) +        response = client.post('/auth-token/login/',  +                               json.dumps({'username': self.username}), 'application/json') +        self.assertEqual(response.status_code, 400) + +    def test_token_login_form(self): +        """Ensure token login view using form POST works.""" +        client = Client(enforce_csrf_checks=True) +        response = client.post('/auth-token/login/',  +                               {'username': self.username, 'password': self.password}) +        self.assertEqual(response.status_code, 200) +        self.assertEqual(json.loads(response.content)['token'], self.key)  | 
