Add migration for CustomToken test model.

Move authentication tests to sub-app to enable this.
This commit is contained in:
Carlton Gibson 2019-02-14 09:30:53 +01:00
parent cb4cbb61f2
commit 481ae69df3
6 changed files with 43 additions and 12 deletions

View File

View File

@ -0,0 +1,24 @@
# -*- coding: utf-8 -*-
from __future__ import unicode_literals
from django.conf import settings
from django.db import migrations, models
class Migration(migrations.Migration):
initial = True
dependencies = [
migrations.swappable_dependency(settings.AUTH_USER_MODEL),
]
operations = [
migrations.CreateModel(
name='CustomToken',
fields=[
('key', models.CharField(max_length=40, primary_key=True, serialize=False)),
('user', models.OneToOneField(on_delete=models.CASCADE, to=settings.AUTH_USER_MODEL)),
],
),
]

View File

@ -0,0 +1,10 @@
# coding: utf-8
from __future__ import unicode_literals
from django.conf import settings
from django.db import models
class CustomToken(models.Model):
key = models.CharField(max_length=40, primary_key=True)
user = models.OneToOneField(settings.AUTH_USER_MODEL, on_delete=models.CASCADE)

View File

@ -8,7 +8,6 @@ import pytest
from django.conf import settings from django.conf import settings
from django.conf.urls import include, url from django.conf.urls import include, url
from django.contrib.auth.models import User from django.contrib.auth.models import User
from django.db import models
from django.http import HttpResponse from django.http import HttpResponse
from django.test import TestCase, override_settings from django.test import TestCase, override_settings
from django.utils import six from django.utils import six
@ -26,14 +25,11 @@ from rest_framework.response import Response
from rest_framework.test import APIClient, APIRequestFactory from rest_framework.test import APIClient, APIRequestFactory
from rest_framework.views import APIView from rest_framework.views import APIView
from .models import CustomToken
factory = APIRequestFactory() factory = APIRequestFactory()
class CustomToken(models.Model):
key = models.CharField(max_length=40, primary_key=True)
user = models.OneToOneField(User, on_delete=models.CASCADE)
class CustomTokenAuthentication(TokenAuthentication): class CustomTokenAuthentication(TokenAuthentication):
model = CustomToken model = CustomToken
@ -87,7 +83,7 @@ urlpatterns = [
] ]
@override_settings(ROOT_URLCONF='tests.test_authentication') @override_settings(ROOT_URLCONF=__name__)
class BasicAuthTests(TestCase): class BasicAuthTests(TestCase):
"""Basic authentication""" """Basic authentication"""
def setUp(self): def setUp(self):
@ -169,7 +165,7 @@ class BasicAuthTests(TestCase):
assert response.status_code == status.HTTP_401_UNAUTHORIZED assert response.status_code == status.HTTP_401_UNAUTHORIZED
@override_settings(ROOT_URLCONF='tests.test_authentication') @override_settings(ROOT_URLCONF=__name__)
class SessionAuthTests(TestCase): class SessionAuthTests(TestCase):
"""User session authentication""" """User session authentication"""
def setUp(self): def setUp(self):
@ -370,7 +366,7 @@ class BaseTokenAuthTests(object):
assert response.status_code == status.HTTP_401_UNAUTHORIZED assert response.status_code == status.HTTP_401_UNAUTHORIZED
@override_settings(ROOT_URLCONF='tests.test_authentication') @override_settings(ROOT_URLCONF=__name__)
class TokenAuthTests(BaseTokenAuthTests, TestCase): class TokenAuthTests(BaseTokenAuthTests, TestCase):
model = Token model = Token
path = '/token/' path = '/token/'
@ -429,13 +425,13 @@ class TokenAuthTests(BaseTokenAuthTests, TestCase):
assert response.data['token'] == self.key assert response.data['token'] == self.key
@override_settings(ROOT_URLCONF='tests.test_authentication') @override_settings(ROOT_URLCONF=__name__)
class CustomTokenAuthTests(BaseTokenAuthTests, TestCase): class CustomTokenAuthTests(BaseTokenAuthTests, TestCase):
model = CustomToken model = CustomToken
path = '/customtoken/' path = '/customtoken/'
@override_settings(ROOT_URLCONF='tests.test_authentication') @override_settings(ROOT_URLCONF=__name__)
class CustomKeywordTokenAuthTests(BaseTokenAuthTests, TestCase): class CustomKeywordTokenAuthTests(BaseTokenAuthTests, TestCase):
model = Token model = Token
path = '/customkeywordtoken/' path = '/customkeywordtoken/'
@ -549,7 +545,7 @@ class BasicAuthenticationUnitTests(TestCase):
authentication.authenticate = old_authenticate authentication.authenticate = old_authenticate
@override_settings(ROOT_URLCONF='tests.test_authentication', @override_settings(ROOT_URLCONF=__name__,
AUTHENTICATION_BACKENDS=('django.contrib.auth.backends.RemoteUserBackend',)) AUTHENTICATION_BACKENDS=('django.contrib.auth.backends.RemoteUserBackend',))
class RemoteUserAuthenticationUnitTests(TestCase): class RemoteUserAuthenticationUnitTests(TestCase):
def setUp(self): def setUp(self):

View File

@ -56,6 +56,7 @@ def pytest_configure(config):
'django.contrib.staticfiles', 'django.contrib.staticfiles',
'rest_framework', 'rest_framework',
'rest_framework.authtoken', 'rest_framework.authtoken',
'tests.authentication',
'tests.importable', 'tests.importable',
'tests', 'tests',
), ),