summaryrefslogtreecommitdiff
path: root/django
diff options
context:
space:
mode:
authorSimon Charette <charette.s@gmail.com>2016-02-04 11:47:51 -0500
committerSimon Charette <charette.s@gmail.com>2016-02-04 12:30:34 -0500
commit6eb3ce11e4d6be237ad2e4895d8ae0b7bc1803dc (patch)
tree0b14e1f387c7009cb89fcf905722805bc43392f2 /django
parent19318507d92d35f5f5cee6bfb7c379efa309c4f8 (diff)
Fixed #26089 -- Removed custom user test models from public API.
Thanks to Tim Graham for the review.
Diffstat (limited to 'django')
-rw-r--r--django/contrib/auth/tests/custom_user.py113
1 files changed, 0 insertions, 113 deletions
diff --git a/django/contrib/auth/tests/custom_user.py b/django/contrib/auth/tests/custom_user.py
deleted file mode 100644
index f06d7d814b..0000000000
--- a/django/contrib/auth/tests/custom_user.py
+++ /dev/null
@@ -1,113 +0,0 @@
-from django.contrib.auth.models import (
- AbstractBaseUser, AbstractUser, BaseUserManager, Group, Permission,
- PermissionsMixin, UserManager,
-)
-from django.db import models
-
-
-# The custom User uses email as the unique identifier, and requires
-# that every user provide a date of birth. This lets us test
-# changes in username datatype, and non-text required fields.
-class CustomUserManager(BaseUserManager):
- def create_user(self, email, date_of_birth, password=None):
- """
- Creates and saves a User with the given email and password.
- """
- if not email:
- raise ValueError('Users must have an email address')
-
- user = self.model(
- email=self.normalize_email(email),
- date_of_birth=date_of_birth,
- )
-
- user.set_password(password)
- user.save(using=self._db)
- return user
-
- def create_superuser(self, email, password, date_of_birth):
- u = self.create_user(email, password=password, date_of_birth=date_of_birth)
- u.is_admin = True
- u.save(using=self._db)
- return u
-
-
-class CustomUser(AbstractBaseUser):
- email = models.EmailField(verbose_name='email address', max_length=255, unique=True)
- is_active = models.BooleanField(default=True)
- is_admin = models.BooleanField(default=False)
- date_of_birth = models.DateField()
-
- custom_objects = CustomUserManager()
-
- USERNAME_FIELD = 'email'
- REQUIRED_FIELDS = ['date_of_birth']
-
- class Meta:
- app_label = 'auth'
-
- def get_full_name(self):
- return self.email
-
- def get_short_name(self):
- return self.email
-
- def __unicode__(self):
- return self.email
-
- # Maybe required?
- def get_group_permissions(self, obj=None):
- return set()
-
- def get_all_permissions(self, obj=None):
- return set()
-
- def has_perm(self, perm, obj=None):
- return True
-
- def has_perms(self, perm_list, obj=None):
- return True
-
- def has_module_perms(self, app_label):
- return True
-
- # Admin required fields
- @property
- def is_staff(self):
- return self.is_admin
-
-
-class RemoveGroupsAndPermissions(object):
- """
- A context manager to temporarily remove the groups and user_permissions M2M
- fields from the AbstractUser class, so they don't clash with the
- related_name sets.
- """
- def __enter__(self):
- self._old_au_local_m2m = AbstractUser._meta.local_many_to_many
- self._old_pm_local_m2m = PermissionsMixin._meta.local_many_to_many
- groups = models.ManyToManyField(Group, blank=True)
- groups.contribute_to_class(PermissionsMixin, "groups")
- user_permissions = models.ManyToManyField(Permission, blank=True)
- user_permissions.contribute_to_class(PermissionsMixin, "user_permissions")
- PermissionsMixin._meta.local_many_to_many = [groups, user_permissions]
- AbstractUser._meta.local_many_to_many = [groups, user_permissions]
-
- def __exit__(self, exc_type, exc_value, traceback):
- AbstractUser._meta.local_many_to_many = self._old_au_local_m2m
- PermissionsMixin._meta.local_many_to_many = self._old_pm_local_m2m
-
-
-# The extension user is a simple extension of the built-in user class,
-# adding a required date_of_birth field. This allows us to check for
-# any hard references to the name "User" in forms/handlers etc.
-with RemoveGroupsAndPermissions():
- class ExtensionUser(AbstractUser):
- date_of_birth = models.DateField()
-
- custom_objects = UserManager()
-
- REQUIRED_FIELDS = AbstractUser.REQUIRED_FIELDS + ['date_of_birth']
-
- class Meta:
- app_label = 'auth'