def store_source_recording(scenario_name_key, record_session): host, scenario_name = scenario_name_key.split(':') # use original put/stub payload logged in tracker tracker = Tracker() last_used = tracker.session_last_used(scenario_name_key, record_session, 'record') if not last_used: # empty recordings are currently supported! log.debug('Unable to find a recording for session={0}, scenario={1}'.format(record_session, scenario_name_key)) return recording = tracker.get_last_recording(scenario_name, record_session, last_used['start_time']) recording = list(recording) if not recording: raise exception_response(400, title="Unable to find a recording for scenario='{0}', record_session='{1}'".format( scenario_name, record_session)) number_of_requests = len(recording) scenario_db = Scenario() for nrequest in range(number_of_requests): track = recording[nrequest] request_text = track.get('request_text') if not request_text: raise exception_response(400, title='Unable to obtain recording details, was full tracking enabled?') priority = int(track['request_params'].get('priority', nrequest + 1)) stub = parse_stub(request_text, scenario_name_key, track['request_params']) stub.set_priority(priority) scenario_db.insert_pre_stub(scenario_name_key, stub)
def store_source_recording(scenario_name_key, record_session): host, scenario_name = scenario_name_key.split(':') # use original put/stub payload logged in tracker tracker = Tracker() last_used = tracker.session_last_used(scenario_name_key, record_session, 'record') if not last_used: # empty recordings are currently supported! log.debug('Unable to find a recording for session={0}, scenario={1}'.format(record_session, scenario_name_key)) return recording = tracker.get_last_recording(scenario_name, record_session, last_used['start_time']) recording = list(recording) if not recording: raise exception_response(400, title="Unable to find a recording for scenario='{0}', record_session='{1}'".format(scenario_name, record_session)) number_of_requests = len(recording) scenario_db = Scenario() for nrequest in range(number_of_requests): track = recording[nrequest] request_text = track.get('request_text') if not request_text: raise exception_response(400, title='Unable to obtain recording details, was full tracking enabled?') priority = int(track['request_params'].get('priority', nrequest+1)) stub = parse_stub(request_text, scenario_name_key, track['request_params']) stub.set_priority(priority) scenario_db.insert_pre_stub(scenario_name_key, stub)
def put_stub(handler, session_name, delay_policy, stateful, priority, recorded=None, module_name=None, recorded_module_system_date=None): log.debug('put_stub request: {0}'.format(handler.request)) request = handler.request stubo_request = StuboRequest(request) session_name = session_name.partition(',')[0] cache = Cache(get_hostname(request)) scenario_key = cache.find_scenario_key(session_name) trace = TrackTrace(handler.track, 'put_stub') url_args = handler.track.request_params err_msg = 'put/stub body format error - {0}, for session: {1}' try: stub = parse_stub(stubo_request.body_unicode, scenario_key, url_args) except Exception, e: raise exception_response(400, title=err_msg.format(e.message, session_name))
def put_stub(handler, session_name, delay_policy, stateful, recorded=None, module_name=None, recorded_module_system_date=None): log.debug('put_stub request: {0}'.format(handler.request)) request = handler.request stubo_request = StuboRequest(request) session_name = session_name.partition(',')[0] cache = Cache(get_hostname(request)) scenario_key = cache.find_scenario_key(session_name) trace = TrackTrace(handler.track, 'put_stub') url_args = handler.track.request_params try: is_json = 'application/json' in request.headers.get('Content-Type', {}) stub = parse_stub(stubo_request.body_unicode, scenario_key, url_args, is_json) except Exception, e: raise exception_response(400, title='put/stub body format error - {0}, ' 'on session: {1}'.format( e.message, session_name))
def _func(self, request, scenario, json=True, **url_args): from stubo.model.stub import parse_stub return parse_stub(request, scenario, url_args)