def __get_raw_responses_from_db(): response_id_for_test_case = [] for msg in MessageDAO.get_messages_for_case_execution(3): if msg.message_text.find('request_id') != -1: load_message = HttpRequestDAO.get_code_request_response(msg.message_text.replace('request_id=', ''))[2] response_id_for_test_case.append(json.loads(load_message)) http_requests_from_execution = HttpRequestDAO.requests_for_script_execution_id(7) responses_from_http = [json.loads(HttpRequestDAO.get_code_request_response(x)[2]) for x in http_requests_from_execution] return responses_from_http
def request(cls, http_method, url, **kwargs): if not cls.replay_mode_on(): return None if cls._cursor < len(cls._http_request_ids): _method, _url, _request, _response, _status_code = HttpRequestDAO.retrieve(cls._http_request_ids[cls._cursor]) if url != _url: cts_error("{url:id} requested url={url} is different than url={_url} " + "that is stored in the database. Quitting Replay mode.", **locals()) sys.exit("Replay Error") try: request_obj_from_db = json.loads(_request) except (JSONDecodeError, ValueError) as err: request_obj_from_db = {} if not dictionaries_equal(kwargs, request_obj_from_db): request = json.dumps(sanitize_json(kwargs)) cts_warning("{url:id} request {request} is different than request {_request} from database. ", url=url, request=sanitize_json(kwargs), _request=sanitize_json(request_obj_from_db)) sys.exit("Replay Error") cls._cursor += 1 return _response else: cts_error("Reached end of recording. Quitting Replay mode.") cls._replay_mode_on = False return None
def request_from_control_channel(metadata_text): try: m = request_id_re.match(metadata_text) if m: request_id = int(m.group('request_id')) status_code, request, response = HttpRequestDAO.get_code_request_response( request_id) if request: yield status_code, request, response except: pass
def _register_request(self, http_method, kwargs, response, url): # register request/response in the database if self._is_controlled_by_framework: # Remove stuff to make the serializers work: lkwargs = kwargs.copy() del lkwargs['hooks'] response.request = None request_id = HttpRequestDAO.register_request( self.script_execution_id, http_method, url, json.dumps(lkwargs), pickle.dumps(response), response.status_code) print "%s::request_id=%d" % (LoggingLevel.CONTROL, request_id)
def _read_request_ids_from_database(script_execution_id): return HttpRequestDAO.requests_for_script_execution_id(script_execution_id)