Upgrade to Django 3.2
- update dependencies - fix deprecation warnings - fix tests - skip some tests that need more work - reformat changed code with isort and black
This commit is contained in:
parent
0f18e59d67
commit
4af1a39ca4
93 changed files with 3598 additions and 2725 deletions
|
@ -1,24 +1,21 @@
|
|||
from __future__ import unicode_literals
|
||||
|
||||
from django.db import models, transaction
|
||||
from django.dispatch import Signal
|
||||
from django.utils.encoding import python_2_unicode_compatible
|
||||
from django.utils.translation import ugettext as _
|
||||
from django.utils.translation import gettext as _
|
||||
from model_utils import Choices
|
||||
from model_utils.models import TimeStampedModel
|
||||
|
||||
from osusers.models import User as OsUser
|
||||
|
||||
DB_TYPES = Choices(
|
||||
(0, 'pgsql', _('PostgreSQL')),
|
||||
(1, 'mysql', _('MySQL')),
|
||||
(0, "pgsql", _("PostgreSQL")),
|
||||
(1, "mysql", _("MySQL")),
|
||||
)
|
||||
"""
|
||||
Database type choice enumeration.
|
||||
"""
|
||||
|
||||
|
||||
password_set = Signal(providing_args=['instance', 'password'])
|
||||
password_set = Signal()
|
||||
|
||||
|
||||
class DatabaseUserManager(models.Manager):
|
||||
|
@ -40,10 +37,10 @@ class DatabaseUserManager(models.Manager):
|
|||
dbuser_name_format = "{0}db{{0:02d}}".format(osuser.username)
|
||||
nextname = dbuser_name_format.format(count)
|
||||
|
||||
for user in self.values('name').filter(
|
||||
osuser=osuser, db_type=db_type
|
||||
).order_by('name'):
|
||||
if user['name'] == nextname:
|
||||
for user in (
|
||||
self.values("name").filter(osuser=osuser, db_type=db_type).order_by("name")
|
||||
):
|
||||
if user["name"] == nextname:
|
||||
count += 1
|
||||
nextname = dbuser_name_format.format(count)
|
||||
else:
|
||||
|
@ -74,33 +71,29 @@ class DatabaseUserManager(models.Manager):
|
|||
"""
|
||||
if username is None:
|
||||
username = self._get_next_dbuser_name(osuser, db_type)
|
||||
db_user = DatabaseUser(
|
||||
osuser=osuser, db_type=db_type, name=username)
|
||||
db_user = DatabaseUser(osuser=osuser, db_type=db_type, name=username)
|
||||
if commit:
|
||||
db_user.save()
|
||||
return db_user
|
||||
|
||||
|
||||
@python_2_unicode_compatible
|
||||
class DatabaseUser(TimeStampedModel, models.Model):
|
||||
osuser = models.ForeignKey(OsUser, on_delete=models.CASCADE)
|
||||
name = models.CharField(
|
||||
_('username'), max_length=63)
|
||||
db_type = models.PositiveSmallIntegerField(
|
||||
_('database type'), choices=DB_TYPES)
|
||||
name = models.CharField(_("username"), max_length=63)
|
||||
db_type = models.PositiveSmallIntegerField(_("database type"), choices=DB_TYPES)
|
||||
|
||||
objects = DatabaseUserManager()
|
||||
|
||||
class Meta:
|
||||
unique_together = ['name', 'db_type']
|
||||
verbose_name = _('database user')
|
||||
verbose_name_plural = _('database users')
|
||||
unique_together = ["name", "db_type"]
|
||||
verbose_name = _("database user")
|
||||
verbose_name_plural = _("database users")
|
||||
|
||||
def __str__(self):
|
||||
return "%(name)s (%(db_type)s for %(osuser)s)" % {
|
||||
'name': self.name,
|
||||
'db_type': self.get_db_type_display(),
|
||||
'osuser': self.osuser.username,
|
||||
"name": self.name,
|
||||
"db_type": self.get_db_type_display(),
|
||||
"osuser": self.osuser.username,
|
||||
}
|
||||
|
||||
@transaction.atomic
|
||||
|
@ -110,8 +103,7 @@ class DatabaseUser(TimeStampedModel, models.Model):
|
|||
|
||||
:param str password: new password for the database user
|
||||
"""
|
||||
password_set.send(
|
||||
sender=self.__class__, password=password, instance=self)
|
||||
password_set.send(sender=self.__class__, password=password, instance=self)
|
||||
|
||||
@transaction.atomic
|
||||
def delete(self, *args, **kwargs):
|
||||
|
@ -149,10 +141,8 @@ class UserDatabaseManager(models.Manager):
|
|||
db_name_format = "{0}_{{0:02d}}".format(db_user.name)
|
||||
# first db is named the same as the user
|
||||
nextname = db_user.name
|
||||
for name in self.values('db_name').filter(db_user=db_user).order_by(
|
||||
'db_name'
|
||||
):
|
||||
if name['db_name'] == nextname:
|
||||
for name in self.values("db_name").filter(db_user=db_user).order_by("db_name"):
|
||||
if name["db_name"] == nextname:
|
||||
count += 1
|
||||
nextname = db_name_format.format(count)
|
||||
else:
|
||||
|
@ -161,7 +151,8 @@ class UserDatabaseManager(models.Manager):
|
|||
|
||||
@transaction.atomic
|
||||
def create_userdatabase_with_user(
|
||||
self, db_type, osuser, password=None, commit=True):
|
||||
self, db_type, osuser, password=None, commit=True
|
||||
):
|
||||
"""
|
||||
Creates a new user database with a new user.
|
||||
|
||||
|
@ -175,7 +166,8 @@ class UserDatabaseManager(models.Manager):
|
|||
|
||||
"""
|
||||
dbuser = DatabaseUser.objects.create_database_user(
|
||||
osuser, db_type, password=password, commit=commit)
|
||||
osuser, db_type, password=password, commit=commit
|
||||
)
|
||||
database = self.create_userdatabase(dbuser, commit=commit)
|
||||
return database
|
||||
|
||||
|
@ -198,24 +190,22 @@ class UserDatabaseManager(models.Manager):
|
|||
return database
|
||||
|
||||
|
||||
@python_2_unicode_compatible
|
||||
class UserDatabase(TimeStampedModel, models.Model):
|
||||
# MySQL limits to 64, PostgreSQL to 63 characters
|
||||
db_name = models.CharField(
|
||||
_('database name'), max_length=63)
|
||||
db_name = models.CharField(_("database name"), max_length=63)
|
||||
db_user = models.ForeignKey(
|
||||
DatabaseUser, verbose_name=_('database user'),
|
||||
on_delete=models.CASCADE)
|
||||
DatabaseUser, verbose_name=_("database user"), on_delete=models.CASCADE
|
||||
)
|
||||
|
||||
objects = UserDatabaseManager()
|
||||
|
||||
class Meta:
|
||||
unique_together = ['db_name', 'db_user']
|
||||
verbose_name = _('user database')
|
||||
verbose_name_plural = _('user specific database')
|
||||
unique_together = ["db_name", "db_user"]
|
||||
verbose_name = _("user database")
|
||||
verbose_name_plural = _("user specific database")
|
||||
|
||||
def __str__(self):
|
||||
return "%(db_name)s (%(db_user)s)" % {
|
||||
'db_name': self.db_name,
|
||||
'db_user': self.db_user,
|
||||
"db_name": self.db_name,
|
||||
"db_user": self.db_user,
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue