def getURL(self, url, headers): logger.debug('file nws get url: ' + url) if url not in File._cache_db: response = get_mockdata_url("nws", self._conf, url, headers) else: logger.debug('using cache') response = MockHTTP() response.data = File._cache_db[url] response.status = 200 if response.status == 404: logger.debug('status 404') response.data = '{"error": {"code": "7000","message": "No record matched"}}' return response
def putURL(self, url, headers, body): response = MockHTTP() if body is not None: if "If-Match" in headers: response.status = 200 # update else: response.status = 201 # create response.headers = {"X-Data-Source": "GWS file mock data", "Content-Type": headers["Content-Type"]} response.data = body else: response.status = 400 response.data = "Bad Request: no POST body" return response
def getURL(self, url, headers): if url not in File._cache_db: response = get_mockdata_url("gws", self._conf, url, headers) else: response = MockHTTP() response.data = File._cache_db[url] response.status = 200 return response
def put_mockdata_url(service_name, conf, url, headers, body, dir_base=dirname(__file__)): """ :param service_name: possible "sws", "pws", "book", "hfs", etc. """ # Currently this put method does not return a response body response = MockHTTP() if body is not None: response.status = 204 response.headers = {"X-Data-Source": service_name + " file mock data", "Content-Type": headers['Content-Type']} else: response.status = 400 response.data = "Bad Request: no POST body" return response
def _load_resource_from_path(app_root, service_name, conf, url, headers): logger = logging.getLogger(__name__) mock_root = os.path.realpath(os.path.join(app_root, '../mock')) std_root = os.path.join(mock_root, service_name) if 'MOCK_ROOT' in conf and conf['MOCK_ROOT'] is not None: mock_root = conf['MOCK_ROOT'] root = os.path.join(mock_root, service_name) if url == "///": # Just a placeholder to put everything else in an else. # If there are things that need dynamic work, they'd go here pass else: try: file_path = convert_to_platform_safe(root + url) logger.debug('try1: ' + file_path) if os.path.isdir(file_path): file_path = file_path + '.resource' handle = open(file_path) except IOError: if std_root is not mock_root: try: file_path = convert_to_platform_safe(std_root + url) logger.debug('try2: ' + file_path) if os.path.isdir(file_path): file_path = file_path + '.resource' handle = open(file_path) except IOError: return logger.debug("URL: %s; File: %s" % (url, file_path)) response = MockHTTP() response.status = 200 data = handle.read() cut = data.find('MOCKDATA-MOCKDATA-MOCKDATA') if cut >= 0: data = data[(data.find('\n', cut)+1):] response.data = data response.headers = {"X-Data-Source": service_name + " file mock data", } try: headers = open(handle.name + '.http-headers') data = headers.read() cut = data.find('MOCKDATA-MOCKDATA-MOCKDATA') if cut >= 0: data = data[(data.find('\n', cut) + 1):] file_values = json.loads(data) if "headers" in file_values: response.headers = dict(response.headers.items() + file_values['headers'].items()) if 'status' in file_values: response.status = file_values['status'] else: response.headers = dict(response.headers.items() + file_values.items()) except IOError: pass return response