Преглед изворни кода

[raz] Add test condition to check for S3 request params (#2423)

Harsh Gupta пре 4 година
родитељ
комит
fef27f478a
1 измењених фајлова са 54 додато и 30 уклоњено
  1. 54 30
      desktop/core/src/desktop/lib/raz/raz_client_test.py

+ 54 - 30
desktop/core/src/desktop/lib/raz/raz_client_test.py

@@ -99,6 +99,7 @@ class RazClientTest(unittest.TestCase):
   def setUp(self):
     self.username = 'gethue'
     self.raz_url = 'https://raz.gethue.com:8080'
+    self.raz_token = "mock_RAZ_token"
 
     self.s3_path = 'https://gethue-test.s3.amazonaws.com/gethue/data/customer.csv'
     self.adls_path = 'https://gethuestorageaccount.blob.core.windows.net/demo-gethue-container/demo-dir1/customer.csv'
@@ -125,7 +126,6 @@ class RazClientTest(unittest.TestCase):
   def test_check_access_adls(self):
     with patch('desktop.lib.raz.raz_client.requests.post') as requests_post:
       with patch('desktop.lib.raz.raz_client.uuid.uuid4') as uuid:
-        raz_token = "mock_RAZ_token"
 
         requests_post.return_value = Mock(
           json=Mock(return_value=
@@ -141,12 +141,12 @@ class RazClientTest(unittest.TestCase):
         )
         uuid.return_value = 'mock_request_id'
 
-        client = RazClient(self.raz_url, raz_token, username=self.username, service="adls", service_name="adls", cluster_name="cl1")
+        client = RazClient(self.raz_url, self.raz_token, username=self.username, service="adls", service_name="adls", cluster_name="cl1")
 
         resp = client.check_access(method='GET', url=self.adls_path)
 
         requests_post.assert_called_with(
-          "https://raz.gethue.com:8080/api/authz/adls/access?delegation=" + raz_token,
+          "https://raz.gethue.com:8080/api/authz/adls/access?delegation=mock_RAZ_token",
           headers={"Content-Type": "application/json"},
           json={
             'requestId': 'mock_request_id', 
@@ -196,39 +196,63 @@ class RazClientTest(unittest.TestCase):
         assert_equal(client.cluster_name, 'gethueCluster')
 
   def test_check_access_s3(self):
-    raz_token = Mock()
-
-    client = RazClient(self.raz_url, raz_token, username=self.username)
-
     with patch('desktop.lib.raz.raz_client.requests.post') as requests_post:
       with patch('desktop.lib.raz.raz_client.raz_signer.SignResponseProto') as SignResponseProto:
         with patch('desktop.lib.raz.raz_client.base64.b64decode') as b64decode:
-          requests_post.return_value = Mock(
-            json=Mock(return_value=
-              {
-                'operResult': {
-                  'result': 'ALLOWED',
-                  'additionalInfo': {
-                      'S3_SIGN_RESPONSE': 'My signed URL'
+          with patch('desktop.lib.raz.raz_client.uuid.uuid4') as uuid:
+
+            requests_post.return_value = Mock(
+              json=Mock(return_value=
+                {
+                  'operResult': {
+                    'result': 'ALLOWED',
+                    'additionalInfo': {
+                        'S3_SIGN_RESPONSE': 'My signed URL'
+                    }
                   }
                 }
-              }
+              )
             )
-          )
-          b64decode.return_value = 'https://gethue-test.s3.amazonaws.com/gethue/data/customer.csv?AWSAccessKeyId=AKIA23E77ZX2HVY76YGL&' \
-              'Signature=3lhK%2BwtQ9Q2u5VDIqb4MEpoY3X4%3D&Expires=1617207304'
-
-          SignResponseProto.return_value = Mock(
-            FromString=Mock(
-              return_value=Mock(
-                signer_generated_headers=[
-                  Mock(key='AWSAccessKeyId', value='AKIA23E77ZX2HVY76YGL')
-                ]
+            b64decode.return_value = 'https://gethue-test.s3.amazonaws.com/gethue/data/customer.csv?AWSAccessKeyId=AKIA23E77ZX2HVY76YGL&' \
+                'Signature=3lhK%2BwtQ9Q2u5VDIqb4MEpoY3X4%3D&Expires=1617207304'
+
+            SignResponseProto.return_value = Mock(
+              FromString=Mock(
+                return_value=Mock(
+                  signer_generated_headers=[
+                    Mock(key='AWSAccessKeyId', value='AKIA23E77ZX2HVY76YGL')
+                  ]
+                )
               )
             )
-          )
-
-          resp = client.check_access(method='GET', url=self.s3_path)
+            uuid.return_value = 'mock_request_id'
+
+            client = RazClient(self.raz_url, self.raz_token, username=self.username)
+
+            resp = client.check_access(method='GET', url=self.s3_path)
+
+            requests_post.assert_called_with(
+              'https://raz.gethue.com:8080/api/authz/s3/access?delegation=mock_RAZ_token', 
+              headers={'Content-Type': 'application/json', 'Accept-Encoding': 'gzip,deflate'}, 
+              json={
+                'requestId': 'mock_request_id',
+                'serviceType': 's3',
+                'serviceName': 'cm_s3',
+                'user': 'gethue',
+                'userGroups': [],
+                'clientIpAddress': '',
+                'clientType': '',
+                'clusterName':
+                'myCluster',
+                'clusterType': '',
+                'sessionId': '',
+                'accessTime': '',
+                'context': {
+                  'S3_SIGN_REQUEST': b'CiRodHRwczovL2dldGh1ZS10ZXN0LnMzLmFtYXpvbmF3cy5jb20QATIYZ2V0aHVlL2RhdGEvY3VzdG9tZXIuY3N2OABCAnMzSgJzMw=='
+                }
+              },
+              verify=False
+            )
 
-          assert_true(resp)
-          assert_equal(resp['AWSAccessKeyId'], 'AKIA23E77ZX2HVY76YGL')
+            assert_true(resp)
+            assert_equal(resp['AWSAccessKeyId'], 'AKIA23E77ZX2HVY76YGL')