def test_reply_mode_off_when_script_execution_id_not_set_via_env_var(self): with mock.patch( 'cts_core.commons.replay_controller.ReplayController._read_request_ids_from_database' ) as read_ids: controller_class = ReplayController().__class__() controller_class.initialize() self.assertFalse(controller_class.replay_mode_on())
def _do_request(self, kwargs, url, http_method): if ReplayController.replay_mode_on(): response = ReplayController.request(http_method, url, **kwargs) else: response = None if response is None: requests_method = { HttpMethods.GET: requests.get, HttpMethods.PATCH: requests.patch, HttpMethods.POST: requests.post, HttpMethods.DELETE: requests.delete }[http_method] try: self._suppress_urllib3_error() response = requests_method(url, **kwargs) except OpenSSL.SSL.Error as ose: cts_error("There is a problem with CertFile or KeyFile: {err}", err=' '.join(ose.message[0])) except requests.RequestException as err: cts_error("{method} {url:id} Error {err:exception}", method=http_method, url=url, err=err) return None return response
def test_reply_mode_on_when_correct_script_execution_id(self): with mock.patch( 'cts_core.commons.replay_controller.ReplayController._read_request_ids_from_database' ) as read_ids: controller_class = ReplayController().__class__() read_ids.return_value = [22, 33] controller_class.initialize() self.assertTrue(controller_class.replay_mode_on())
def test_reply_mode_off_when_list_of_registered_requests_is_empty(self): with mock.patch( 'cts_core.commons.replay_controller.ReplayController._read_request_ids_from_database' ) as read_ids: controller_class = ReplayController().__class__() read_ids.return_value = [] #empty list controller_class.initialize() self.assertFalse(controller_class.replay_mode_on())
def test_retrieve_request_from_database(self): with mock.patch('cts_core.commons.replay_controller.ReplayController._read_request_ids_from_database') as read_ids: controller_class = ReplayController().__class__() read_ids.return_value = [22,33] controller_class.initialize() with mock.patch('cts_framework.db.dao.http_request_dao.HttpRequestDAO.retrieve') as retrieve: retrieve.return_value = ('_method', 'url', '{"anything":"something"}', '_response', '_status_code') self.assertEqual('_response', controller_class.request("http_method", "url", anything='something')) retrieve.assert_called_with(22)
def before_run(self): digest = DirDigest(Constants.DIR_HOME_CTS_TESTS, '.py', DirDigest.LABEL_TESTS) if not digest.is_valid() and not getenv('CTS_SKIP', None): cts_error("Tests located in {dir} are corrupted or has been tampered. Expected: {expected}, " "Is: {current}", dir=Constants.DIR_HOME_CTS_TESTS, expected=digest.official_digest, current=digest.digest) print "MESSAGE::{count} test scripts have been found in {dir}".format(count=len(digest), dir=Constants.DIR_HOME_CTS_TESTS) digest.report_differences() self._parse_ignore_types() self._parse_map_types() self._parse_service_types_override() ReplayController.initialize()
def before_run(self): digest = DirDigest(Constants.DIR_HOME_CTS_TESTS, '.py', DirDigest.LABEL_TESTS) if not digest.is_valid() and not getenv('CTS_SKIP', None): cts_error( "Tests located in {dir} are corrupted or has been tampered. Expected: {expected}, " "Is: {current}", dir=Constants.DIR_HOME_CTS_TESTS, expected=digest.official_digest, current=digest.digest) print "MESSAGE::{count} test scripts have been found in {dir}".format( count=len(digest), dir=Constants.DIR_HOME_CTS_TESTS) digest.report_differences() self._parse_ignore_types() self._parse_map_types() self._parse_service_types_override() ReplayController.initialize()
def test_retrieve_request_from_database(self): with mock.patch( 'cts_core.commons.replay_controller.ReplayController._read_request_ids_from_database' ) as read_ids: controller_class = ReplayController().__class__() read_ids.return_value = [22, 33] controller_class.initialize() with mock.patch( 'cts_framework.db.dao.http_request_dao.HttpRequestDAO.retrieve' ) as retrieve: retrieve.return_value = ('_method', 'url', '{"anything":"something"}', '_response', '_status_code') self.assertEqual( '_response', controller_class.request("http_method", "url", anything='something')) retrieve.assert_called_with(22)
def _do_request(self, kwargs, url, http_method): response = None if ReplayController.replay_mode_on(): response = ReplayController.request(http_method, url, **kwargs) if response is None: requests_method = {HttpMethods.GET: requests.get, HttpMethods.PATCH: requests.patch, HttpMethods.POST: requests.post, HttpMethods.DELETE: requests.delete}[http_method] try: self._suppress_urllib3_error() response = requests_method(url, **kwargs) except OpenSSL.SSL.Error as ose: cts_error("There is a problem with CertFile or KeyFile: {err}", err=' '.join(ose.message[0])) return None, ReturnCodes.INVALID_CERTS except requests.HTTPError as err: cts_error("{method} {url:id} Error {err:exception}", method=http_method, url=url, err=err) return None, ReturnCodes.METHOD_NOT_ALLOWED except requests.TooManyRedirects as err: cts_error("{method} {url:id} Error {err:exception}", method=http_method, url=url, err=err) return None, ReturnCodes.INVALID_FORWARDING except requests.Timeout as err: cts_error("{method} {url:id} Error {err:exception}", method=http_method, url=url, err=err) return None, ReturnCodes.TIMEOUT except requests.ConnectionError as err: cts_error("{method} {url:id} Error {err:exception}", method=http_method, url=url, err=err) return None, ReturnCodes.NOT_FOUND except requests.RequestException as err: cts_error("{method} {url:id} Error {err:exception}", method=http_method, url=url, err=err) return None, ReturnCodes.BAD_REQUEST return response, response.status_code
def _do_request(self, kwargs, url, http_method): if ReplayController.replay_mode_on(): response = ReplayController.request(http_method, url, **kwargs) else: response = None if response is None: requests_method = {HttpMethods.GET: requests.get, HttpMethods.PATCH: requests.patch, HttpMethods.POST: requests.post, HttpMethods.DELETE: requests.delete}[http_method] try: self._suppress_urllib3_error() response = requests_method(url, **kwargs) except OpenSSL.SSL.Error as ose: cts_error("There is a problem with CertFile or KeyFile: {err}", err=' '.join(ose.message[0])) except requests.RequestException as err: cts_error("{method} {url:id} Error {err:exception}", method=http_method, url=url, err=err) return None return response
def test_request_returns_none_when_replay_mode_is_off(self): controller_class = ReplayController().__class__() controller_class.initialize() self.assertIsNone(controller_class.request("http_method", "url"))
def test_reply_mode_off_when_script_execution_id_not_set_via_env_var(self): with mock.patch('cts_core.commons.replay_controller.ReplayController._read_request_ids_from_database') as read_ids: controller_class = ReplayController().__class__() controller_class.initialize() self.assertFalse(controller_class.replay_mode_on())
def test_reply_mode_on_when_correct_script_execution_id(self): with mock.patch('cts_core.commons.replay_controller.ReplayController._read_request_ids_from_database') as read_ids: controller_class = ReplayController().__class__() read_ids.return_value = [22,33] controller_class.initialize() self.assertTrue(controller_class.replay_mode_on())
def test_reply_mode_off_when_list_of_registered_requests_is_empty(self): with mock.patch('cts_core.commons.replay_controller.ReplayController._read_request_ids_from_database') as read_ids: controller_class = ReplayController().__class__() read_ids.return_value = [] #empty list controller_class.initialize() self.assertFalse(controller_class.replay_mode_on())