Selaa lähdekoodia

HUE-8530 [organization] Remove more dictionary attributes in User constructor

Romain 5 vuotta sitten
vanhempi
commit
b15dc5f378

+ 7 - 1
apps/useradmin/src/useradmin/models2.py

@@ -126,6 +126,7 @@ class UserManager(BaseUserManager):
 
   def order_by(self, *args, **kwargs):
     if 'username' in args:
+      args = list(args)
       args.remove('username')
       args.append('email')
 
@@ -141,8 +142,13 @@ class UserManager(BaseUserManager):
     user.save(using=self._db)
     return user
 
-  def create_user(self, email, password=None, **extra_fields):
+  def create_user(self, email=None, password=None, **extra_fields):
     """Create and save a regular User with the given email and password."""
+    if extra_fields.get('username'):
+      email = extra_fields.pop('username')
+    if not extra_fields.get('organization'):
+      extra_fields['organization'] = get_user_request_organization()
+
     extra_fields.setdefault('is_staff', False)
     extra_fields.setdefault('is_superuser', False)
     extra_fields.setdefault('is_admin', False)

+ 4 - 22
desktop/core/src/desktop/lib/django_test_util.py

@@ -24,8 +24,6 @@ import nose.tools
 
 from useradmin.models import User, Group, default_organization
 
-from desktop.conf import ENABLE_ORGANIZATIONS
-
 
 class Client(django.test.client.Client):
   """
@@ -53,25 +51,13 @@ def make_logged_in_client(username="test", password="test", is_superuser=True, r
   Sometimes we recreate the user, because some tests like to
   mess with is_active and such.
   """
-  if ENABLE_ORGANIZATIONS.get() and username == 'test':
-    username = username + '@gethue.com'
-
   try:
     user = User.objects.get(username=username)
     if recreate:
       user.delete()
       raise User.DoesNotExist
   except User.DoesNotExist:
-    user_attrs = {
-      'password': password
-    }
-    if ENABLE_ORGANIZATIONS.get():
-      user_attrs['email'] = username
-      user_attrs['organization'] = default_organization()
-    else:
-      user_attrs['username'] = username
-      user_attrs['email'] = username + '@localhost'
-    user = User.objects.create_user(**user_attrs)
+    user = User.objects.create_user(username=username, password=password)
     user.is_superuser = is_superuser
     user.save()
   else:
@@ -80,11 +66,7 @@ def make_logged_in_client(username="test", password="test", is_superuser=True, r
       user.save()
 
   if groupname is not None:
-    group_attrs = {'name': groupname}
-    if ENABLE_ORGANIZATIONS.get():
-      group_attrs['organization'] = default_organization()
-
-    group, created = Group.objects.get_or_create(**group_attrs)
+    group, created = Group.objects.get_or_create(name=groupname)
     if not user.groups.filter(name=group.name).exists():
       user.groups.add(group)
       user.save()
@@ -95,6 +77,7 @@ def make_logged_in_client(username="test", password="test", is_superuser=True, r
   assert ret, "Login failed (user '%s')." % username
   return c
 
+
 _MULTI_WHITESPACE = re.compile("\s+", flags=re.MULTILINE)
 
 def compact_whitespace(s):
@@ -133,8 +116,7 @@ def configure_django_for_test():
   # This must be run before importing models
   # Be sure not to include any INSTALLED_APPS, since then the models
   # code will try very hard to load it.
-  settings.configure(DATABASE_ENGINE="sqlite3", DATABASE_NAME=":memory:",
-    INSTALLED_APPS=())
+  settings.configure(DATABASE_ENGINE="sqlite3", DATABASE_NAME=":memory:", INSTALLED_APPS=())
 
 
 def create_tables(model):