瀏覽代碼

HUE-6708 [metadata] Mock clusterName call in the tests

Romain Rigaux 8 年之前
父節點
當前提交
3efae65d8b

+ 2 - 2
desktop/libs/metadata/src/metadata/navigator_client.py

@@ -33,7 +33,7 @@ from hadoop.conf import HDFS_CLUSTERS
 from libsentry.privilege_checker import get_checker
 from libsentry.sentry_site import get_hive_sentry_provider
 
-from metadata.conf import NAVIGATOR, get_navigator_auth_password, get_navigator_auth_username, has_navigator_file_search
+from metadata.conf import NAVIGATOR, get_navigator_auth_password, get_navigator_auth_username
 from metadata.metadata_sites import get_navigator_hue_server_name
 
 
@@ -56,7 +56,7 @@ def get_cluster_source_ids(api):
       LOG.info('Navigator cluster source ids: %s' % (sources,))
       if sources:
         # Sometimes sourceId seems to be missing
-        source_ids = ['sourceId:%s' % _id.get('sourceId') or _id.get('identity') for _id in sources]
+        source_ids = ['sourceId:%s' % (_id.get('sourceId') or _id.get('identity')) for _id in sources]
         CLUSTER_SOURCE_IDS = '(' + ' OR '.join(source_ids) + ') AND '
       else:
         # 0 means always false

+ 14 - 5
desktop/libs/metadata/src/metadata/navigator_client_tests.py

@@ -29,6 +29,7 @@ from libsentry.privilege_checker import SENTRY_PRIVILEGE_CACHE_KEY, PrivilegeChe
 from libsentry.test_privilege_checker import MockSentryApiV2
 
 from metadata.conf import NAVIGATOR
+from metadata.metadata_sites import get_navigator_hue_server_name
 from metadata.navigator_client import NavigatorApi
 
 
@@ -37,7 +38,10 @@ LOG = logging.getLogger(__name__)
 
 class MockedRoot():
   def get(self, relpath=None, params=None, headers=None, clear_cookies=False):
-    return params
+    if relpath == 'entities' and params and params[0] and params[0][0] == 'query' and params[0][1] and params[0][1].startswith('clusterName:'):
+      return [{'sourceId': 1}, {'identity': 2}]
+    else:
+      return params
 
 
 class NavigatorClientTest:
@@ -153,7 +157,7 @@ class TestNavigatorClientSecure(NavigatorClientTest):
       cache.delete(cache_key)
 
 
-class TestNavigatorClientTest(NavigatorClientTest):
+class TestNavigatorClient(NavigatorClientTest):
 
   def setUp(self):
     self.reset = NAVIGATOR.APPLY_SENTRY_PERMISSIONS.set_for_testing(False)
@@ -162,18 +166,23 @@ class TestNavigatorClientTest(NavigatorClientTest):
     self.reset()
 
   def test_search_entities(self):
+    if get_navigator_hue_server_name():
+      cluster_filter = '(sourceId:1 OR sourceId:2) AND (%s)'
+    else:
+      cluster_filter = '%s'
+
     assert_equal(
-        '((originalName:*cases*)OR(originalDescription:*cases*)OR(name:*cases*)OR(description:*cases*)OR(tags:*cases*)) AND (*) AND ((type:TABLE)OR(type:VIEW)) AND (sourceType:HIVE OR sourceType:IMPALA)',
+        cluster_filter % '((originalName:*cases*)OR(originalDescription:*cases*)OR(name:*cases*)OR(description:*cases*)OR(tags:*cases*)) AND (*) AND ((type:TABLE)OR(type:VIEW)) AND (sourceType:HIVE OR sourceType:IMPALA)',
         self.api.search_entities(query_s='cases', sources=['hive'])[0][1]
     )
 
     assert_equal(
-        '* AND ((type:FIELD*)) AND ((type:TABLE)OR(type:VIEW)OR(type:DATABASE)OR(type:PARTITION)OR(type:FIELD)) AND (sourceType:HIVE OR sourceType:IMPALA)',
+        cluster_filter % '* AND ((type:FIELD*)) AND ((type:TABLE)OR(type:VIEW)OR(type:DATABASE)OR(type:PARTITION)OR(type:FIELD)) AND (sourceType:HIVE OR sourceType:IMPALA)',
         self.api.search_entities(query_s='type:FIELD', sources=['hive'])[0][1]
     )
 
     assert_equal(
-        '* AND ((type:\\{\\}\\(\\)\\[\\]*)) AND ((type:TABLE)OR(type:VIEW)OR(type:DATABASE)OR(type:PARTITION)OR(type:FIELD)) AND (sourceType:HIVE OR sourceType:IMPALA)',
+        cluster_filter % '* AND ((type:\\{\\}\\(\\)\\[\\]*)) AND ((type:TABLE)OR(type:VIEW)OR(type:DATABASE)OR(type:PARTITION)OR(type:FIELD)) AND (sourceType:HIVE OR sourceType:IMPALA)',
         self.api.search_entities(query_s='type:{}()[]*', sources=['hive'])[0][1]
     )