Why Gemfury? Push, build, and install  RubyGems npm packages Python packages Maven artifacts PHP packages Go Modules Debian packages RPM packages NuGet packages

Repository URL to install this package:

Details    
fun-apps / tests / tests_auth.py
Size: Mime:
# -*- coding: utf-8 -*-

import json

from django.contrib.auth.models import User
from django.core.urlresolvers import reverse
from django.test import TestCase

from fun.tests.utils import skipUnlessLms


@skipUnlessLms
class APIAuthTest(TestCase):

    def setUp(self):
        self.get_token_url = reverse('fun-api:get-token')
        self.user = User.objects.create_user(
            username='user', password='password',
        )
        self.user_data = {'username': 'user', 'password': 'password'}

    def test_token_api_response_loads(self):
        self.user.is_superuser = True
        self.user.save()
        response = self.client.post(self.get_token_url, self.user_data)
        data = json.loads(response.content)
        self.assertEqual(response.status_code, 200)
        self.assertIn('token', data)

    def test_cannot_get_token_if_not_active(self):
        self.user.is_active = False
        self.user.is_staff = True
        self.user.save()
        response = self.client.post(self.get_token_url, self.user_data)
        self.assertNotEqual(response.status_code, 200)

    def test_cannot_get_token_if_not_staff(self):
        self.user.is_active = True
        self.user.is_staff = False
        self.user.save()
        response = self.client.post(self.get_token_url, self.user_data)
        self.assertNotEqual(response.status_code, 200)

    def test_can_get_token_if_staff(self):
        self.user.is_active = True
        self.user.is_staff = True
        self.user.save()
        response = self.client.post(self.get_token_url, self.user_data)
        self.assertContains(response, 'token')

    def test_can_get_token_if_superuser(self):
        self.user.is_active = True
        self.user.is_staff = False
        self.user.is_superuser = True
        self.user.save()
        response = self.client.post(self.get_token_url, self.user_data)
        self.assertContains(response, 'token')