Эх сурвалжийг харах

HUE-8530 [organization] Keep monkey patching of Django User model as-is

Romain 6 жил өмнө
parent
commit
700265bfbb

+ 2 - 1
apps/useradmin/src/useradmin/forms.py

@@ -89,7 +89,7 @@ class UserChangeForm(django.contrib.auth.forms.UserChangeForm):
       max_length=30,
       regex='^%s$' % (get_username_re_rule(),), # Could use UnicodeUsernameValidator()
       help_text = _t("Required. 30 characters or fewer. No whitespaces or colons."),
-      error_messages = {'invalid': _t("Whitespaces and ':' not allowed") })
+      error_messages = {'invalid': _t("Whitespaces and ':' are not allowed") })
 
   password1 = forms.CharField(
       label=_t("New Password"),
@@ -196,6 +196,7 @@ class UserChangeForm(django.contrib.auth.forms.UserChangeForm):
       self.save_m2m()
     return user
 
+
 if ENABLE_ORGANIZATIONS.get():
   class OrganizationUserChangeForm(UserChangeForm):
     username = None

+ 4 - 0
apps/useradmin/src/useradmin/models.py

@@ -66,6 +66,10 @@ else:
   def default_organization(): pass
   def get_organization(): pass
 
+from desktop.monkey_patches import monkey_patch_username_validator
+
+monkey_patch_username_validator()
+
 
 LOG = logging.getLogger(__name__)
 

+ 9 - 4
apps/useradmin/src/useradmin/tests.py

@@ -696,7 +696,7 @@ class TestUserAdmin(BaseUserAdminTests):
 
       # Create a new regular user (duplicate name)
       response = c.post('/useradmin/users/new', dict(username="test", password1="test", password2="test"))
-      assert_equal({ 'username': ['Username already exists.']}, response.context[0]["form"].errors)
+      assert_equal({'username': ['Username already exists.']}, response.context[0]["form"].errors)
 
       # Create a new regular user (for real)
       response = c.post('/useradmin/users/new', dict(
@@ -704,11 +704,16 @@ class TestUserAdmin(BaseUserAdminTests):
           password1="test",
           password2="test",
           is_superuser=True,
-          is_active=True)
+          is_active=True
+        ),
+        follow=True
       )
-      response = c.get('/useradmin/')
+      if response.status_code != 200:
+        assert_false(response.context[0]["form"].errors)
+      assert_equal(response.status_code, 200, response.content)
 
-      assert_true(FUNNY_NAME in response.content, response.context[0])
+      response = c.get('/useradmin/')
+      assert_true(FUNNY_NAME in response.content, response.content)
       assert_true(len(response.context[0]["users"]) > 1)
       assert_true("Hue Users" in response.content)
       # Validate profile is created.

+ 1 - 0
apps/useradmin/src/useradmin/urls.py

@@ -22,6 +22,7 @@ from desktop.lib.django_util import get_username_re_rule, get_groupname_re_rule
 from useradmin import views as useradmin_views
 from useradmin import api as useradmin_api
 
+
 username_re = get_username_re_rule()
 groupname_re = get_groupname_re_rule()
 

+ 3 - 2
desktop/core/src/desktop/lib/fsmanager.py

@@ -27,7 +27,7 @@ from azure.conf import is_adls_enabled, is_abfs_enabled, has_adls_access, has_ab
 
 from desktop.lib.fs.proxyfs import ProxyFS
 from desktop.conf import is_gs_enabled, has_gs_access
-from desktop.lib.fs.gc.client import get_client as get_client_gs 
+from desktop.lib.fs.gc.client import get_client as get_client_gs
 
 from hadoop.cluster import get_hdfs
 from hadoop.conf import has_hdfs_enabled
@@ -49,7 +49,7 @@ def has_access(fs=None, user=None):
     return has_gs_access(user)
 
 
-def is_enabled(fs=None):
+def is_enabled(fs):
   if fs == 'hdfs':
     return has_hdfs_enabled()
   elif fs == 'adl':
@@ -111,6 +111,7 @@ def get_filesystem(name='default'):
 def get_filesystems(user):
   return [fs for fs in SUPPORTED_FS if is_enabled(fs) and has_access(fs, user)]
 
+
 def _get_client(fs=None):
   if fs == 'hdfs':
     return get_hdfs

+ 0 - 4
desktop/core/src/desktop/monkey_patches.py

@@ -20,7 +20,6 @@ import re
 from django.core.validators import RegexValidator
 
 from useradmin.models import User
-
 from desktop.lib.django_util import get_username_re_rule
 
 
@@ -40,6 +39,3 @@ def monkey_patch_username_validator():
   for validator in username.validators:
     if isinstance(validator, RegexValidator):
       validator.regex = regex
-
-
-monkey_patch_username_validator()

+ 2 - 9
desktop/core/src/desktop/tests.py

@@ -274,15 +274,8 @@ def test_dump_config():
 
   finish = desktop.conf.ENABLE_CONNECTORS.set_for_testing(True)
   try:
-    with patch('desktop.lib.connectors.api.CONNECTORS.get') as CONNECTORS:
-      CONNECTORS.return_value = {
-        'hdfs-1': Mock(
-          NICE_NAME=Mock(get=Mock(return_value='HDFS')),
-          DIALECT=Mock(get=Mock(return_value='hdfs')),
-          INTERFACE=Mock(get=Mock(return_value='rest')),
-          SETTINGS=Mock(get=Mock(return_value=[{"name": "server_url", "value": "http://gethue.com:20101/webhdfs/v1"}])),
-        )
-      }
+    with patch('desktop.lib.fsmanager.has_hdfs_enabled') as has_hdfs_enabled:
+      has_hdfs_enabled.return_value = True
       response = c.get(reverse('desktop.views.dump_config'))
       assert_equal(1, len(response.context[0]['apps']), response.context[0])
   finally:

+ 3 - 4
desktop/core/src/desktop/urls.py

@@ -198,10 +198,9 @@ if METRICS.ENABLE_WEB_METRICS.get():
     url(r'^desktop/metrics/?', include('desktop.lib.metrics.urls'))
   ]
 
-if has_connectors():
-  dynamic_patterns += [
-    url(r'^desktop/connectors/?', include('desktop.lib.connectors.urls'))
-  ]
+dynamic_patterns += [
+  url(r'^desktop/connectors/?', include('desktop.lib.connectors.urls'))
+]
 
 if ANALYTICS.IS_ENABLED.get():
   dynamic_patterns += [

+ 3 - 2
desktop/core/src/desktop/views.py

@@ -68,6 +68,7 @@ if sys.version_info[0] > 2:
 else:
   from StringIO import StringIO as string_io
 
+
 LOG = logging.getLogger(__name__)
 
 
@@ -133,7 +134,7 @@ def home(request):
 
 def home2(request, is_embeddable=False):
   apps = appmanager.get_apps_dict(request.user)
-  
+
   return render('home2.mako', request, {
     'apps': apps,
     'is_embeddable': request.GET.get('is_embeddable', False)
@@ -303,7 +304,7 @@ def dump_config(request):
 
   apps = sorted(app_modules, key=lambda app: app.name)
   apps_names = [app.name for app in apps]
-  top_level = sorted(list(GLOBAL_CONFIG.get().values()), key=lambda obj: apps_names.index(obj.config.key))
+  top_level = sorted(config_modules, key=lambda obj: apps_names.index(obj.config.key))
 
   return render("dump_config.mako", request, {
       'show_private': show_private,

+ 1 - 2
desktop/libs/hadoop/src/hadoop/conf.py

@@ -35,8 +35,7 @@ def find_file_recursive(desired_glob, root):
       matches = fnmatch.filter(filenames, desired_glob)
       if matches:
         if len(matches) != 1:
-          logging.warning("Found multiple jars matching %s: %s" %
-                          (desired_glob, matches))
+          logging.warning("Found multiple jars matching %s: %s" % (desired_glob, matches))
         return os.path.join(dirpath, matches[0])
 
     logging.error("Trouble finding jars matching %s" % (desired_glob,))