Skip to content

Commit

Permalink
Trying to do Django 1.7 support in tests
Browse files Browse the repository at this point in the history
  • Loading branch information
Rocky Meza authored and acatton committed Apr 24, 2015
1 parent 6499acc commit e93c3c6
Show file tree
Hide file tree
Showing 6 changed files with 62 additions and 15 deletions.
2 changes: 2 additions & 0 deletions .travis.yml
Expand Up @@ -10,8 +10,10 @@ env:
- TOX_ENV=py26-dj16
- TOX_ENV=py27-dj15
- TOX_ENV=py27-dj16
- TOX_ENV=py27-dj17
- TOX_ENV=py33-dj15
- TOX_ENV=py33-dj16
- TOX_ENV=py33-dj17
install:
- pip install --upgrade pip
- pip install tox==1.8.0
Expand Down
4 changes: 0 additions & 4 deletions tests/manage.py
Expand Up @@ -10,8 +10,4 @@

from django.core.management import execute_from_command_line

from django.contrib.auth.tests import custom_user
custom_user.AbstractUser._meta.local_many_to_many = []
custom_user.PermissionsMixin._meta.local_many_to_many = []

execute_from_command_line(sys.argv)
36 changes: 36 additions & 0 deletions tests/tests/migrations/0001_initial.py
@@ -0,0 +1,36 @@
# -*- coding: utf-8 -*-
from __future__ import unicode_literals

from django.db import models, migrations
import django.utils.timezone


class Migration(migrations.Migration):

dependencies = [
('auth', '0001_initial'),
]

operations = [
migrations.CreateModel(
name='User',
fields=[
('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)),
('password', models.CharField(max_length=128, verbose_name='password')),
('last_login', models.DateTimeField(default=django.utils.timezone.now, verbose_name='last login')),
('is_superuser', models.BooleanField(default=False, help_text='Designates that this user has all permissions without explicitly assigning them.', verbose_name='superuser status')),
('email', models.EmailField(unique=True, max_length=255, verbose_name='email address', db_index=True)),
('is_staff', models.BooleanField(default=False, help_text='Designates whether the user can log into this admin site.', verbose_name='staff status')),
('is_active', models.BooleanField(default=True, help_text='Designates whether this user should be treated as active. Unselect this instead of deleting accounts.', verbose_name='active')),
('date_joined', models.DateTimeField(default=django.utils.timezone.now, verbose_name='date joined')),
('full_name', models.CharField(max_length=255, verbose_name=b'full name', blank=True)),
('preferred_name', models.CharField(max_length=255, verbose_name=b'preferred name', blank=True)),
('groups', models.ManyToManyField(related_query_name='user', related_name='user_set', to='auth.Group', blank=True, help_text='The groups this user belongs to. A user will get all permissions granted to each of his/her group.', verbose_name='groups')),
('user_permissions', models.ManyToManyField(related_query_name='user', related_name='user_set', to='auth.Permission', blank=True, help_text='Specific permissions for this user.', verbose_name='user permissions')),
],
options={
'swappable': 'AUTH_USER_MODEL',
},
bases=(models.Model,),
),
]
Empty file.
31 changes: 21 additions & 10 deletions tests/tests/tests.py
Expand Up @@ -4,17 +4,20 @@
"""
import itertools

try:
from unittest import skipIf, skipUnless
except ImportError: # Python < 2.7
from django.utils.unittest import skipIf, skipUnless

from django.core import mail
from django.core.urlresolvers import reverse
from django.contrib.sites.models import Site, RequestSite
from django.contrib.auth import REDIRECT_FIELD_NAME, get_user_model
from django.contrib.auth.forms import AuthenticationForm
from django.contrib.auth.tests.utils import skipIfCustomUser
from django.utils.http import urlquote
from django.test import TestCase
from django.test.client import RequestFactory
from django.test.utils import override_settings
from django.utils import unittest
from django.utils.encoding import force_text
from django.utils.translation import ugettext as _
from django.forms.fields import Field
Expand All @@ -41,6 +44,17 @@
LogoutTest,
)

try:
from django.contrib.sites.shortcuts import get_current_site
except ImportError: # Django < 1.7
def get_current_site(request):
from django.contrib.sites.models import Site, RequestSite
if Site._meta.installed:
return Site.objects.get_current()
else:
return RequestSite(request)


from authtools.admin import BASE_FIELDS
from authtools.forms import UserCreationForm, UserChangeForm, FriendlyPasswordResetForm
from authtools.views import PasswordResetCompleteView, resolve_url_lazy
Expand All @@ -49,7 +63,7 @@


def skipIfNotCustomUser(test_func):
return unittest.skipIf(settings.AUTH_USER_MODEL == 'auth.User', 'Built-in User model in use')(test_func)
return skipIf(settings.AUTH_USER_MODEL == 'auth.User', 'Built-in User model in use')(test_func)


class AuthViewNamedURLTests(AuthViewNamedURLTests):
Expand Down Expand Up @@ -173,12 +187,9 @@ class LoginTest(LoginTest):
def test_current_site_in_context_after_login(self):
response = self.client.get(reverse('login'))
self.assertEqual(response.status_code, 200)
if Site._meta.installed:
site = Site.objects.get_current()
self.assertEqual(response.context['site'], site)
self.assertEqual(response.context['site_name'], site.name)
else:
self.assertIsInstance(response.context['site'], RequestSite)
site = get_current_site(response.request)
self.assertEqual(response.context['site'], site)
self.assertEqual(response.context['site_name'], site.name)
self.assertTrue(isinstance(response.context['form'], AuthenticationForm),
'Login form is not an AuthenticationForm')

Expand Down Expand Up @@ -478,7 +489,7 @@ def test_create_superuser(self):


class UserModelTest(TestCase):
@unittest.skipUnless(settings.AUTH_USER_MODEL == 'authtools.User',
@skipUnless(settings.AUTH_USER_MODEL == 'authtools.User',
"only check authuser's ordering")
def test_default_ordering(self):
self.assertSequenceEqual(['name', 'email'], User._meta.ordering)
Expand Down
4 changes: 3 additions & 1 deletion tox.ini
@@ -1,6 +1,7 @@
[tox]
envlist=
py{26,27,33}-dj{15,16}
py{26,27,33}-dj{15,16},
py{27,33}-dj{17}

[testenv]
basepython=
Expand All @@ -14,6 +15,7 @@ deps=
dj15,dj16: South>=1.0.2
dj15: Django>=1.5,<1.6
dj16: Django>=1.6,<1.7
dj17: Django>=1.7,<1.8
whitelist_externals=
env
make

0 comments on commit e93c3c6

Please sign in to comment.