summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTim Graham <timograham@gmail.com>2014-06-16 15:59:24 -0400
committerTim Graham <timograham@gmail.com>2014-06-16 16:21:37 -0400
commitb341f33697cdd26cc967c2ca4a0ac679f4167319 (patch)
tree3c4879507e0a999209f2b064e206954906c74bfa
parenta96dbda6d35d33f77293b595a6506a600261f17c (diff)
Added database migration for contrib.auth.
refs #22170.
-rw-r--r--django/contrib/auth/migrations/0001_initial.py66
-rw-r--r--django/contrib/auth/migrations/__init__.py0
-rw-r--r--tests/migrations/test_loader.py6
-rwxr-xr-xtests/runtests.py5
-rw-r--r--tests/urlpatterns_reverse/tests.py2
5 files changed, 75 insertions, 4 deletions
diff --git a/django/contrib/auth/migrations/0001_initial.py b/django/contrib/auth/migrations/0001_initial.py
new file mode 100644
index 0000000000..de38c960fb
--- /dev/null
+++ b/django/contrib/auth/migrations/0001_initial.py
@@ -0,0 +1,66 @@
+# -*- coding: utf-8 -*-
+from __future__ import unicode_literals
+
+from django.core import validators
+from django.db import models, migrations
+from django.utils import timezone
+
+
+class Migration(migrations.Migration):
+
+ dependencies = [
+ ('contenttypes', '__first__'),
+ ]
+
+ operations = [
+ migrations.CreateModel(
+ name='Permission',
+ fields=[
+ ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)),
+ ('name', models.CharField(max_length=50, verbose_name='name')),
+ ('content_type', models.ForeignKey(to='contenttypes.ContentType', to_field='id')),
+ ('codename', models.CharField(max_length=100, verbose_name='codename')),
+ ],
+ options={
+ 'ordering': ('content_type__app_label', 'content_type__model', 'codename'),
+ 'unique_together': set([('content_type', 'codename')]),
+ 'verbose_name': 'permission',
+ 'verbose_name_plural': 'permissions',
+ },
+ ),
+ migrations.CreateModel(
+ name='Group',
+ fields=[
+ ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)),
+ ('name', models.CharField(unique=True, max_length=80, verbose_name='name')),
+ ('permissions', models.ManyToManyField(to='auth.Permission', verbose_name='permissions', blank=True)),
+ ],
+ options={
+ 'verbose_name': 'group',
+ 'verbose_name_plural': 'groups',
+ },
+ ),
+ 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=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')),
+ ('username', models.CharField(help_text='Required. 30 characters or fewer. Letters, digits and @/./+/-/_ only.', unique=True, max_length=30, verbose_name='username', validators=[validators.RegexValidator('^[\\w.@+-]+$', 'Enter a valid username.', 'invalid')])),
+ ('first_name', models.CharField(max_length=30, verbose_name='first name', blank=True)),
+ ('last_name', models.CharField(max_length=30, verbose_name='last name', blank=True)),
+ ('email', models.EmailField(max_length=75, verbose_name='email address', blank=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=timezone.now, verbose_name='date joined')),
+ ('groups', models.ManyToManyField(to='auth.Group', verbose_name='groups', blank=True)),
+ ('user_permissions', models.ManyToManyField(to='auth.Permission', verbose_name='user permissions', blank=True)),
+ ],
+ options={
+ 'swappable': 'AUTH_USER_MODEL',
+ 'verbose_name': 'user',
+ 'verbose_name_plural': 'users',
+ },
+ ),
+ ]
diff --git a/django/contrib/auth/migrations/__init__.py b/django/contrib/auth/migrations/__init__.py
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/django/contrib/auth/migrations/__init__.py
diff --git a/tests/migrations/test_loader.py b/tests/migrations/test_loader.py
index e03873a1ea..78cde79a31 100644
--- a/tests/migrations/test_loader.py
+++ b/tests/migrations/test_loader.py
@@ -4,6 +4,7 @@ from django.test import TestCase, override_settings
from django.db import connection, connections
from django.db.migrations.loader import MigrationLoader, AmbiguityError
from django.db.migrations.recorder import MigrationRecorder
+from django.test import modify_settings
from django.utils import six
@@ -46,6 +47,7 @@ class LoaderTests(TestCase):
"""
@override_settings(MIGRATION_MODULES={"migrations": "migrations.test_migrations"})
+ @modify_settings(INSTALLED_APPS={'append': 'basic'})
def test_load(self):
"""
Makes sure the loader can load the migrations for the test apps,
@@ -77,7 +79,7 @@ class LoaderTests(TestCase):
)
# Ensure we've included unmigrated apps in there too
- self.assertIn("auth", project_state.real_apps)
+ self.assertIn("basic", project_state.real_apps)
@override_settings(MIGRATION_MODULES={"migrations": "migrations.test_migrations_unmigdep"})
def test_load_unmigrated_dependency(self):
@@ -89,6 +91,8 @@ class LoaderTests(TestCase):
self.assertEqual(
migration_loader.graph.forwards_plan(("migrations", "0001_initial")),
[
+ ('contenttypes', u'0001_initial'),
+ ('auth', u'0001_initial'),
("migrations", "0001_initial"),
],
)
diff --git a/tests/runtests.py b/tests/runtests.py
index 4c63415abf..656dfcebe4 100755
--- a/tests/runtests.py
+++ b/tests/runtests.py
@@ -129,8 +129,9 @@ def setup(verbosity, test_labels):
# Ensure the middleware classes are seen as overridden otherwise we get a compatibility warning.
settings._explicit_settings.add('MIDDLEWARE_CLASSES')
settings.MIGRATION_MODULES = {
- # this module doesn't actually exist, but this lets us skip creating
- # migrations for the test modules for some reason.
+ # these 'tests.migrations' modules don't actually exist, but this lets
+ # us skip creating migrations for the test models.
+ 'auth': 'django.contrib.auth.tests.migrations',
'contenttypes': 'django.contrib.contenttypes.tests.migrations',
}
diff --git a/tests/urlpatterns_reverse/tests.py b/tests/urlpatterns_reverse/tests.py
index ebe04393df..d2840a0037 100644
--- a/tests/urlpatterns_reverse/tests.py
+++ b/tests/urlpatterns_reverse/tests.py
@@ -325,7 +325,7 @@ LOGIN_URL = reverse_lazy('login')""")
self.remove_settings('settings.py')
def test_lazy_in_settings(self):
- out, err = self.run_manage(['sqlall', 'auth'])
+ out, err = self.run_manage(['validate'])
self.assertNoOutput(err)