Prechádzať zdrojové kódy

HUE-8758 [connectors] Avoid tests deleting traditional permissions for now

Romain 5 rokov pred
rodič
commit
c4623cf3cd

+ 1 - 2
apps/oozie/src/oozie/models2_tests.py

@@ -52,8 +52,7 @@ class TestEditor(OozieMockBase):
     super(TestEditor, self).setUp()
     self.wf = Workflow()
 
-    self.client_not_me = make_logged_in_client(username="not_perm_user", groupname="default", recreate=True,
-                                               is_superuser=False)
+    self.client_not_me = make_logged_in_client(username="not_perm_user", groupname="default", recreate=True, is_superuser=False)
     self.user_not_me = User.objects.get(username="not_perm_user")
 
 

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

@@ -357,7 +357,8 @@ def install_sample_user():
         is_active=False,
         is_superuser=False,
         id=SAMPLE_USER_ID,
-        pk=SAMPLE_USER_ID)
+        pk=SAMPLE_USER_ID
+      )
 
       if created:
         LOG.info('Installed a user called "%s"' % SAMPLE_USER_INSTALL)

+ 2 - 2
apps/useradmin/src/useradmin/templates/edit_permissions.mako

@@ -40,9 +40,9 @@ ${ layout.menubar(section='permissions') }
     <div class="control-group ${group_class}">
       <label class="control-label" for="id_${field.html_name}">${field.label}</label>
     <div class="controls">
-    ${unicode(field) | n}
+    ${ unicode(field) | n }
     % if len(field.errors):
-        <span class="help-inline">${unicode(field.errors) | n}</span>
+      <span class="help-inline">${unicode(field.errors) | n}</span>
     % endif
     </div>
     </div>

+ 69 - 47
apps/useradmin/src/useradmin/tests.py

@@ -311,11 +311,14 @@ class TestUserAdmin(BaseUserAdminTests):
     assert_true(b'Users' in response.content)
 
     assert_true(len(GroupPermission.objects.all()) == 0)
-    c.post('/useradmin/groups/edit/test-group',
-           dict(name="test-group",
-           members=[User.objects.get(username="test").pk],
-           permissions=[HuePermission.objects.get(app='useradmin',action='access').pk],
-           save="Save"), follow=True)
+    c.post('/useradmin/groups/edit/test-group', dict(
+        name="test-group",
+        members=[User.objects.get(username="test").pk],
+        permissions=[HuePermission.objects.get(app='useradmin',action='access').pk],
+        save="Save"
+      ),
+      follow=True
+    )
     assert_true(len(GroupPermission.objects.all()) == 1)
 
     # Get ourselves set up with a user and a group with superuser group priv
@@ -344,11 +347,12 @@ class TestUserAdmin(BaseUserAdminTests):
     # Create user to try to edit
     notused = User.objects.get_or_create(username="notused", is_superuser=False)
     response = cadmin.get('/useradmin/users/edit/notused?is_embeddable=true')
-    assert_true(b'Hue Users - Edit user: notused' in response.content)
+    assert_true(b'User notused' in response.content)
 
     # Make sure we can modify permissions
     response = cadmin.get('/useradmin/permissions/edit/useradmin/access/?is_embeddable=true')
-    assert_true(b'Hue Permissions - Edit app: useradmin' in response.content)
+    assert_true(b'Permissions' in response.content)
+    assert_true(b'Edit useradmin' in response.content, response.content)
 
     # Revoke superuser privilege from groups
     c.post('/useradmin/permissions/edit/useradmin/superuser', dict(
@@ -359,7 +363,7 @@ class TestUserAdmin(BaseUserAdminTests):
       ),
       follow=True
     )
-    assert_equal(len(GroupPermission.objects.all()), 1)
+    assert_equal(GroupPermission.objects.count(), 1)
 
     # Now test that we have limited access
     c1 = make_logged_in_client(username="nonadmin", is_superuser=False)
@@ -660,7 +664,7 @@ class TestUserAdmin(BaseUserAdminTests):
       # Test basic output.
       response = c.get('/useradmin/')
       assert_true(len(response.context[0]["users"]) > 0)
-      assert_true(b"Hue Users" in response.content)
+      assert_true(b"Users" in response.content)
 
       # Test editing a superuser
       # Just check that this comes back
@@ -745,7 +749,7 @@ class TestUserAdmin(BaseUserAdminTests):
       response = c.get('/useradmin/')
       assert_true(FUNNY_NAME in (response.content if isinstance(response.content, str) else response.content.decode()), response.content)
       assert_true(len(response.context[0]["users"]) > 1)
-      assert_true(b"Hue Users" in response.content)
+      assert_true(b"Users" in response.content)
       # Validate profile is created.
       assert_true(UserProfile.objects.filter(user__username=FUNNY_NAME).exists())
 
@@ -768,11 +772,14 @@ class TestUserAdmin(BaseUserAdminTests):
       test_user.save()
 
       # Regular user should be able to modify oneself
-      response = c_reg.post('/useradmin/users/edit/%s' % (FUNNY_NAME_QUOTED,),
-                            dict(username = FUNNY_NAME,
-                                 first_name = "Hello",
-                                 is_active = True,
-                                 groups=[group.id for group in test_user.groups.all()]), follow=True)
+      response = c_reg.post('/useradmin/users/edit/%s' % (FUNNY_NAME_QUOTED,), dict(
+          username = FUNNY_NAME,
+          first_name = "Hello",
+          is_active = True,
+          groups=[group.id for group in test_user.groups.all()]
+          ),
+          follow=True
+      )
       assert_equal(response.status_code, 200)
       response = c_reg.get('/useradmin/users/edit/%s' % (FUNNY_NAME_QUOTED,), follow=True)
       assert_equal(response.status_code, 200)
@@ -786,20 +793,25 @@ class TestUserAdmin(BaseUserAdminTests):
       # Revert to regular "test" user, that has superuser powers.
       c_su = make_logged_in_client()
       # Inactivate FUNNY_NAME
-      c_su.post('/useradmin/users/edit/%s' % (FUNNY_NAME_QUOTED,),
-                            dict(username = FUNNY_NAME,
-                                 first_name = "Hello",
-                                 is_active = False))
+      c_su.post('/useradmin/users/edit/%s' % (FUNNY_NAME_QUOTED,), dict(
+          username = FUNNY_NAME,
+          first_name = "Hello",
+          is_active = False)
+      )
       # Now make sure FUNNY_NAME can't log back in
       response = c_reg.get('/useradmin/users/edit/%s' % (FUNNY_NAME_QUOTED,))
-      assert_true(response.status_code == 302 and "login" in response["location"],
-                  "Inactivated user gets redirected to login page")
+      assert_true(
+          response.status_code == 302 and "login" in response["location"],
+          "Inactivated user gets redirected to login page"
+      )
 
       # Create a new user with unicode characters
-      response = c.post('/useradmin/users/new', dict(username='christian_häusler',
-                                                     password1="test",
-                                                     password2="test",
-                                                     is_active=True))
+      response = c.post('/useradmin/users/new', dict(
+          username='christian_häusler',
+          password1="test",
+          password2="test",
+          is_active=True)
+      )
       response = c.get('/useradmin/')
       assert_true('christian_häusler' in (response.content if isinstance(response.content, str) else response.content.decode()))
       assert_true(len(response.context[0]["users"]) > 1)
@@ -922,39 +934,49 @@ class TestUserAdmin(BaseUserAdminTests):
   def test_edit_user_xss(self):
     # Hue 3 Admin
     edit_user = make_logged_in_client('admin', is_superuser=True)
-    response = edit_user.post('/useradmin/users/edit/admin', dict(username="admin",
-                                                                      is_superuser=True,
-                                                                      password1="foo",
-                                                                      password2="foo",
-                                                                      language="en-us><script>alert('Hacked')</script>"
-                                                                      ))
+    response = edit_user.post('/useradmin/users/edit/admin', dict(
+        username="admin",
+        is_superuser=True,
+        password1="foo",
+        password2="foo",
+        language="en-us><script>alert('Hacked')</script>"
+        )
+    )
     assert_true(b'Select a valid choice. en-us&gt;&lt;script&gt;alert(&#39;Hacked&#39;)&lt;/script&gt; is not one of the available choices.' in response.content)
     # Hue 4 Admin
-    response = edit_user.post('/useradmin/users/edit/admin', dict(username="admin",
-                                                                      is_superuser=True,
-                                                                      language="en-us><script>alert('Hacked')</script>",
-                                                                      is_embeddable=True))
+    response = edit_user.post('/useradmin/users/edit/admin', dict(
+        username="admin",
+        is_superuser=True,
+        language="en-us><script>alert('Hacked')</script>",
+        is_embeddable=True)
+    )
     content = json.loads(response.content)
     assert_true('Select a valid choice. en-us>alert(\'Hacked\') is not one of the available choices.', content['errors'][0]['message'][0])
 
     # Hue 3, User with access to useradmin app
     edit_user = make_logged_in_client('edit_user', is_superuser=False)
     grant_access('edit_user', 'edit_user', 'useradmin')
-    response = edit_user.post('/useradmin/users/edit/edit_user', dict(username="edit_user",
-                                                                      is_superuser=False,
-                                                                      password1="foo",
-                                                                      password2="foo",
-                                                                      language="en-us><script>alert('Hacked')</script>"
-                                                                      ))
+    response = edit_user.post('/useradmin/users/edit/edit_user', dict(
+        username="edit_user",
+        is_superuser=False,
+        password1="foo",
+        password2="foo",
+        language="en-us><script>alert('Hacked')</script>"
+        )
+    )
     assert_true(b'Select a valid choice. en-us&gt;&lt;script&gt;alert(&#39;Hacked&#39;)&lt;/script&gt; is not one of the available choices.' in response.content)
     # Hue 4, User with access to useradmin app
-    response = edit_user.post('/useradmin/users/edit/edit_user', dict(username="edit_user",
-                                                                      is_superuser=False,
-                                                                      language="en-us><script>alert('Hacked')</script>",
-                                                                      is_embeddable=True))
+    response = edit_user.post('/useradmin/users/edit/edit_user', dict(
+        username="edit_user",
+        is_superuser=False,
+        language="en-us><script>alert('Hacked')</script>",
+        is_embeddable=True)
+    )
     content = json.loads(response.content)
-    assert_true('Select a valid choice. en-us>alert(\'Hacked\') is not one of the available choices.',
-                content['errors'][0]['message'][0])
+    assert_true(
+        'Select a valid choice. en-us>alert(\'Hacked\') is not one of the available choices.',
+        content['errors'][0]['message'][0]
+    )
 
 
 class TestUserAdminWithHadoop(BaseUserAdminTests):

+ 3 - 3
desktop/core/src/desktop/js/ko/components/__snapshots__/ko.sidebar.test.js.snap

@@ -37,12 +37,12 @@ exports[`ko.sidebar.js should render component 1`] = `
           <!-- ko if: window.USER_VIEW_EDIT_USER_ENABLED -->
           <li><a href=\\"javascript:void(0);\\" data-bind=\\"
               hueLink: '/useradmin/users/edit/foo',
-              attr: { 
+              attr: {
                 'title': window.IS_LDAP_SETUP ? 'View Profile' : 'Edit Profile'
               }
             \\">My Profile</a></li>
           <!-- /ko -->
-          <!-- ko if: window.USER_IS_ADMIN -->
+          <!-- ko if: window.USER_IS_ADMIN || window.USER_IS_ORG_ADMIN -->
           <li><a href=\\"javascript: void(0);\\" data-bind=\\"hueLink: '/useradmin/users/'\\">Manage Users</a></li>
           <li><a href=\\"javascript: void(0);\\" data-bind=\\"hueLink: '/about/'\\">Administration</a></li>
           <!-- /ko -->
@@ -122,7 +122,7 @@ exports[`ko.sidebar.js should render component 1`] = `
         </div>
         <ul class=\\"sidebar-nav-list\\">
           <!-- ko if: window.USER_VIEW_EDIT_USER_ENABLED --><!-- /ko -->
-          <!-- ko if: window.USER_IS_ADMIN --><!-- /ko -->
+          <!-- ko if: window.USER_IS_ADMIN || window.USER_IS_ORG_ADMIN --><!-- /ko -->
           <li><a href=\\"javascript: void(0);\\" data-bind=\\"hueLink: '/accounts/logout'\\" title=\\"Sign out\\">Sign out</a></li>
         </ul>
       </div>

+ 1 - 1
desktop/core/src/desktop/js/ko/components/ko.sidebar.js

@@ -66,7 +66,7 @@ const TEMPLATE = `
           <!-- ko if: window.USER_VIEW_EDIT_USER_ENABLED -->
           <li><a href="javascript:void(0);" data-bind="
               hueLink: '/useradmin/users/edit/${window.LOGGED_USERNAME}',
-              attr: { 
+              attr: {
                 'title': window.IS_LDAP_SETUP ? '${I18n('View Profile')}' : '${I18n('Edit Profile')}'
               }
             ">${I18n('My Profile')}</a></li>

+ 7 - 1
desktop/core/src/desktop/lib/connectors/tests.py

@@ -15,8 +15,11 @@
 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 # See the License for the specific language governing permissions and
 # limitations under the License.
+
 import sys
+import unittest
 
+from nose.plugins.skip import SkipTest
 from nose.tools import assert_equal, assert_true, assert_false
 
 from desktop.auth.backend import rewrite_user
@@ -49,7 +52,7 @@ class TestConnectors(object):
     assert_equal(200, response.status_code)
 
 
-class TestConnectorListing():
+class TestConnectorListing(unittest.TestCase):
 
   def setUp(self):
     self.client = make_logged_in_client(
@@ -72,6 +75,9 @@ class TestConnectorListing():
 
   @classmethod
   def setUpClass(cls):
+    if not ENABLE_CONNECTORS.get():  # Skip for now
+      raise SkipTest
+
     cls._class_resets = [
       ENABLE_CONNECTORS.set_for_testing(True),
     ]

+ 8 - 9
desktop/core/src/desktop/redaction/tests.py

@@ -17,9 +17,8 @@
 
 from future import standard_library
 standard_library.install_aliases()
-from builtins import zip
-from builtins import range
-from builtins import object
+from builtins import zip, range, object
+
 import json
 import logging
 import os
@@ -28,16 +27,16 @@ import re
 import tempfile
 import threading
 
-from desktop.redaction.engine import RedactionEngine, \
-                                     RedactionPolicy, \
-                                     RedactionRule, \
-                                     parse_redaction_policy_from_file, \
-                                     _convert_java_pattern_to_python
-from desktop.redaction.logfilter import add_log_redaction_filter_to_logger
 from nose.tools import assert_true, assert_equal, assert_not_equal, raises
 
+from desktop.redaction.engine import RedactionEngine, RedactionPolicy, RedactionRule, parse_redaction_policy_from_file, \
+    _convert_java_pattern_to_python
+from desktop.redaction.logfilter import add_log_redaction_filter_to_logger
+
+
 MESSAGE = "This string is not redacted"
 
+
 def get_path(filename):
   return os.path.join(os.path.dirname(__file__), 'test_data', filename)
 

+ 7 - 3
desktop/libs/notebook/src/notebook/tests.py

@@ -532,9 +532,13 @@ def test_get_interpreters_to_show():
     )
 
     resets.append(INTERPRETERS_SHOWN_ON_WHEEL.set_for_testing('java,pig'))
-    assert_equal(list(expected_interpreters.values()), get_ordered_interpreters(),
-                 'get_interpreters_to_show did not return interpreters in the correct order expected: %s, actual: %s'
-                 % (list(expected_interpreters.values()), get_ordered_interpreters()))
+    assert_equal(
+      list(expected_interpreters.values()),
+      get_ordered_interpreters(),
+      'get_interpreters_to_show did not return interpreters in the correct order expected: %s, actual: %s' % (
+          list(expected_interpreters.values()), get_ordered_interpreters()
+      )
+    )
   finally:
     for reset in resets:
       reset()