Best Python code snippet using tempest_python
oauth_token_client.py
Source:oauth_token_client.py  
...82        signature = hmac.new(key_utf8, text_utf8, hashlib.sha1)83        sig = binascii.b2a_base64(signature.digest())[:-1].decode('utf-8')84        oauth_params.append(('oauth_signature', sig))85        return oauth_params86    def _generate_oauth_header(self, oauth_params):87        authorization_header = {}88        authorization_header_parameters_parts = []89        for oauth_parameter_name, value in oauth_params:90            escaped_name = self._escape(oauth_parameter_name)91            escaped_value = self._escape(value)92            part = '{0}="{1}"'.format(escaped_name, escaped_value)93            authorization_header_parameters_parts.append(part)94        authorization_header_parameters = ', '.join(95            authorization_header_parameters_parts)96        oauth_string = 'OAuth %s' % authorization_header_parameters97        authorization_header['Authorization'] = oauth_string98        return authorization_header99    def create_request_token(self, consumer_key, consumer_secret, project_id):100        """Create request token.101        For more information, please refer to the official API reference:102        https://docs.openstack.org/api-ref/identity/v3-ext/#create-request-token103        """104        endpoint = 'OS-OAUTH1/request_token'105        headers = {'Requested-Project-Id': project_id}106        oauth_params = self._generate_params_with_signature(107            consumer_key,108            self.base_url + '/' + endpoint,109            client_secret=consumer_secret,110            callback_uri='oob',111            http_method='POST')112        oauth_header = self._generate_oauth_header(oauth_params)113        headers.update(oauth_header)114        resp, body = self.post(endpoint,115                               body=None,116                               headers=headers)117        self.expected_success(201, resp.status)118        if not isinstance(body, str):119            body = body.decode('utf-8')120        body = dict(item.split("=") for item in body.split("&"))121        return rest_client.ResponseBody(resp, body)122    def authorize_request_token(self, request_token_id, role_ids):123        """Authorize request token.124        For more information, please refer to the official API reference:125        https://docs.openstack.org/api-ref/identity/v3-ext/#authorize-request-token126        """127        roles = [{'id': role_id} for role_id in role_ids]128        body = {'roles': roles}129        post_body = json.dumps(body)130        resp, body = self.put("OS-OAUTH1/authorize/%s" % request_token_id,131                              post_body)132        self.expected_success(200, resp.status)133        body = json.loads(body)134        return rest_client.ResponseBody(resp, body)135    def create_access_token(self, consumer_key, consumer_secret, request_key,136                            request_secret, oauth_verifier):137        """Create access token.138        For more information, please refer to the official API reference:139        https://docs.openstack.org/api-ref/identity/v3-ext/#create-access-token140        """141        endpoint = 'OS-OAUTH1/access_token'142        oauth_params = self._generate_params_with_signature(143            consumer_key,144            self.base_url + '/' + endpoint,145            client_secret=consumer_secret,146            resource_owner_key=request_key,147            resource_owner_secret=request_secret,148            verifier=oauth_verifier,149            http_method='POST')150        headers = self._generate_oauth_header(oauth_params)151        resp, body = self.post(endpoint, body=None, headers=headers)152        self.expected_success(201, resp.status)153        if not isinstance(body, str):154            body = body.decode('utf-8')155        body = dict(item.split("=") for item in body.split("&"))156        return rest_client.ResponseBody(resp, body)157    def get_access_token(self, user_id, access_token_id):158        """Get access token.159        For more information, please refer to the official API reference:160        https://docs.openstack.org/api-ref/identity/v3-ext/#get-access-token161        """162        resp, body = self.get("users/%s/OS-OAUTH1/access_tokens/%s"163                              % (user_id, access_token_id))164        self.expected_success(200, resp.status)...Learn to execute automation testing from scratch with LambdaTest Learning Hub. Right from setting up the prerequisites to run your first automation test, to following best practices and diving deeper into advanced test scenarios. LambdaTest Learning Hubs compile a list of step-by-step guides to help you be proficient with different test automation frameworks i.e. Selenium, Cypress, TestNG etc.
You could also refer to video tutorials over LambdaTest YouTube channel to get step by step demonstration from industry experts.
Get 100 minutes of automation test minutes FREE!!
