def test_token_auth_session_invalid_memory_token(self, mocked_decode_token): """ Test token_auth_session to throw TokenExpiredException when memory token is expired """ auth = {'token_auth': {'initial_token': "asdfg"}} status = CheckData() # load a token in memory for validation status.data['http://testhost:8089token'] = 'memorytokenpresent' persistence_check_name = "splunk_metric" config = FakeInstanceConfig() helper = SplunkHelper(config) helper.requests_session.headers.update( {'Authorization': "Bearer memorytokenpresent"}) helper._current_time = mock.MagicMock() helper._current_time.return_value = datetime.datetime( 2020, 06, 16, 15, 44, 51) check = False try: helper.token_auth_session(auth, config.base_url, status, persistence_check_name) except TokenExpiredException: check = True msg = "Current in use authentication token is expired. Please provide a valid token in the YAML " \ "and restart the Agent" self.assertTrue(check, msg)
def test_token_auth_session(self, mocked_decode_token): """ Test token_auth_session when memory token is valid and doesn't need renewal """ auth = {'token_auth': {'initial_token': "asdfg"}} # load a token in memory for validation status = CheckData() status.data['http://testhost:8089token'] = 'memorytokenpresent' persistence_check_name = "splunk_metric" config = FakeInstanceConfig() helper = SplunkHelper(config) # update headers with memory token helper.requests_session.headers.update( {'Authorization': "Bearer memorytokenpresent"}) helper._current_time = mock.MagicMock() helper._current_time.return_value = datetime.datetime( 2020, 05, 14, 15, 44, 51) helper.token_auth_session(auth, config.base_url, status, persistence_check_name) # Header should be still with the memory token expected_header = helper.requests_session.headers.get("Authorization") self.assertEqual(expected_header, "Bearer {}".format("memorytokenpresent"))
def test_token_auth_session_need_renewal_memory_token( self, mocked_decode_token, moccked_post): """ Test token_auth_session when memory token about to expire and need to be refreshed """ new_token = json.loads(mocked_token_create_response()).get( 'entry')[0].get('content').get('token') auth = {'token_auth': {'initial_token': "asdfg"}} status = CheckData() # load a token in memory for validation status.data['http://testhost:8089token'] = 'memorytokenpresent' persistence_check_name = "splunk_metric" config = FakeInstanceConfig() helper = SplunkHelper(config) helper.requests_session.headers.update( {'Authorization': "Bearer memorytokenpresent"}) helper._current_time = mock.MagicMock() helper._current_time.return_value = datetime.datetime( 2020, 06, 5, 15, 44, 51) helper.token_auth_session(auth, config.base_url, status, persistence_check_name) # Header should be updated with the new token expected_header = helper.requests_session.headers.get("Authorization") self.assertEqual(expected_header, "Bearer {}".format(new_token)) # persistence data will have new token as well self.assertEqual(status.data.get('http://testhost:8089token'), new_token) status.data.clear()
def load_status(self): self.status = CheckData.load_latest_status(self.persistence_check_name) if self.status is None: self.status = CheckData()
def load_status(self): self.status = CheckData.load_latest_status(Instance.INSTANCE_NAME) if self.status is None: self.status = CheckData()