Beispiel #1
0
 def __get_certs(self):
     request = RoaRequest(self.__PRODUCT, self.__API_VERSION,
                          'GetClusterById')
     request.set_uri_pattern('/clusters/[ClusterId]/certs')
     request.set_method('GET')
     request.add_path_param('ClusterId', self.__cluster_id)
     response = self.__client.do_action_with_exception(request)
     certs = json.loads(response.decode('utf-8'))
     return certs
    def test_get_signed_header(self, mock_get_rfc_2616_date):
        r = RoaRequest("product", "version", "action_name", headers={})
        r.set_uri_pattern('/users/[user]')
        r.set_path_params({'user': '******'})
        r.set_method('GET')
        mock_get_rfc_2616_date.return_value = "2018-12-04T03:25:29Z"
        headers = r.get_signed_header("regionid", "accesskeyid", "secret")
        mock_get_rfc_2616_date.assert_called_once_with()
        self.assertDictEqual(headers, {
            'Accept': 'application/octet-stream',
            'Authorization': 'acs accesskeyid:Lq1u0OzLW/uqLQswxwhne97Umlw=',
            'Date': '2018-12-04T03:25:29Z',
            'x-acs-region-id': 'regionid',
            'x-acs-signature-method': 'HMAC-SHA1',
            'x-acs-signature-version': '1.0',
            'x-acs-version': 'version'
        })

        r.set_query_params(None)
        headers = r.get_signed_header("regionid", "accesskeyid", "secret")
        self.assertDictEqual(headers, {
            'Accept': 'application/octet-stream',
            'Authorization': 'acs accesskeyid:Lq1u0OzLW/uqLQswxwhne97Umlw=',
            'Date': '2018-12-04T03:25:29Z',
            'x-acs-region-id': 'regionid',
            'x-acs-signature-method': 'HMAC-SHA1',
            'x-acs-signature-version': '1.0',
            'x-acs-version': 'version'
        })

        r.set_query_params({'RegionId': 'regionid'})
        headers = r.get_signed_header("regionid", "accesskeyid", "secret")
        self.assertDictEqual(headers, {
            'Accept': 'application/octet-stream',
            'Authorization': 'acs accesskeyid:Lq1u0OzLW/uqLQswxwhne97Umlw=',
            'Date': '2018-12-04T03:25:29Z',
            'x-acs-region-id': 'regionid',
            'x-acs-signature-method': 'HMAC-SHA1',
            'x-acs-signature-version': '1.0',
            'x-acs-version': 'version'
        })

        r.set_content("content")
        headers = r.get_signed_header("regionid", "accesskeyid", "secret")
        self.assertDictEqual(headers, {
            'Accept': 'application/octet-stream',
            'Authorization': 'acs accesskeyid:u2RdkokGTtn2BhUmzUNJjVUh448=',
            'Content-MD5': 'mgNkuembtIDdJeHwKEyFVQ==',
            'Date': '2018-12-04T03:25:29Z',
            'x-acs-region-id': 'regionid',
            'x-acs-signature-method': 'HMAC-SHA1',
            'x-acs-signature-version': '1.0',
            'x-acs-version': 'version'
        })
Beispiel #3
0
 def test_roa_request(self):
     r = RoaRequest("product", "version", "action_name")
     # accept format
     self.assertEqual(r.get_accept_format(), "RAW")
     r.set_accept_format('json')
     self.assertEqual(r.get_accept_format(), "json")
     # action name
     self.assertEqual(r.get_action_name(), "action_name")
     r.set_action_name('new action name')
     self.assertEqual(r.get_action_name(), "new action name")
     # body params
     self.assertDictEqual(r.get_body_params(), {})
     r.set_body_params({'key': 'value'})
     self.assertDictEqual(r.get_body_params(), {'key': 'value'})
     r.add_body_params("key2", "value2")
     self.assertDictEqual(r.get_body_params(), {
         'key': 'value',
         'key2': 'value2'
     })
     # content
     self.assertIsNone(r.get_content())
     r.set_content("content")
     self.assertEqual(r.get_content(), "content")
     # headers
     self.assertDictEqual(r.get_headers(), {'x-sdk-invoke-type': 'normal'})
     r.set_headers({})
     self.assertDictEqual(r.get_headers(), {})
     r.add_header("key", "value")
     self.assertDictEqual(r.get_headers(), {"key": "value"})
     # location endpoint type
     self.assertEqual(r.get_location_endpoint_type(), 'openAPI')
     # no set_location_endpoint_type ??
     # location_service_code
     self.assertEqual(r.get_location_service_code(), None)
     r.set_location_service_code('new service code')
     self.assertEqual(r.get_location_service_code(), 'new service code')
     # method
     self.assertEqual(r.get_method(), None)
     r.set_method('POST')
     self.assertEqual(r.get_method(), 'POST')
     # product
     self.assertEqual(r.get_product(), 'product')
     r.set_product('new-product')
     self.assertEqual(r.get_product(), 'new-product')
     # protocol_type
     self.assertEqual(r.get_protocol_type(), "http")
     r.set_protocol_type('https')
     self.assertEqual(r.get_protocol_type(), "https")
     # query params
     self.assertDictEqual(r.get_query_params(), {})
     r.set_query_params({'key': 'value'})
     self.assertDictEqual(r.get_query_params(), {'key': 'value'})
     r.add_query_param("key2", "value2")
     self.assertDictEqual(r.get_query_params(), {
         'key': 'value',
         "key2": "value2"
     })
     # signed_header
     # self.assertEqual(r.get_signed_header("region_id", "access_key_id",
     # "access_key_secret"), {})
     # r.add_header("x-acs-xxx", "value")
     # self.assertDictEqual(r.get_signed_header(), {"x-acs-xxx": "value"})
     # style
     self.assertEqual(r.get_style(), "ROA")
     # uri params
     self.assertEqual(r.get_uri_params(), None)
     r.set_uri_params({'user': "******"})
     self.assertDictEqual(r.get_uri_params(), {'user': '******'})
     # uri pattern
     self.assertEqual(r.get_uri_pattern(), None)
     r.set_uri_pattern('/users/:userid')
     self.assertEqual(r.get_uri_pattern(), '/users/:userid')
     # version
     self.assertEqual(r.get_version(), "version")
     r.set_version('2014-10-18')
     self.assertEqual(r.get_version(), "2014-10-18")
     # user-agent
     self.assertEqual(r.get_headers().get('User-Agent'), None)
     r.set_user_agent("user-agent")
     self.assertEqual(r.get_headers().get('User-Agent'), "user-agent")
     # content-type
     self.assertEqual(r.get_headers().get('Content-Type'), None)
     r.set_content_type("application/json")
     self.assertEqual(r.get_headers().get('Content-Type'),
                      "application/json")
     # path_params
     self.assertEqual(r.get_path_params(), None)
     r.add_path_param("userid", "jacksontian")
     r.add_path_param("repo", "snow")
     self.assertEqual(r.get_path_params(), {
         "userid": "jacksontian",
         "repo": "snow"
     })
     r.set_path_params({"userid": "linatian"})
     self.assertEqual(r.get_path_params(), {"userid": "linatian"})