diff options
| author | Simon Charette <charette.s@gmail.com> | 2016-02-04 11:47:51 -0500 |
|---|---|---|
| committer | Simon Charette <charette.s@gmail.com> | 2016-02-04 12:30:34 -0500 |
| commit | 6eb3ce11e4d6be237ad2e4895d8ae0b7bc1803dc (patch) | |
| tree | 0b14e1f387c7009cb89fcf905722805bc43392f2 /django | |
| parent | 19318507d92d35f5f5cee6bfb7c379efa309c4f8 (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.py | 113 |
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' |
