def test_json_parsing(): input_path = os.path.join(os.path.dirname(__file__), 'json') input_path = os.path.join(input_path, 'inputs') output_path = os.path.join(os.path.dirname(__file__), 'json') output_path = os.path.join(output_path, 'outputs') session = botocore.session.get_session() jsonfiles = glob.glob('%s/*.json' % input_path) service_names = set() for fn in jsonfiles: service_names.add(os.path.split(fn)[1].split('-')[0]) for service_name in service_names: service = session.get_service(service_name) service_input_files = glob.glob('%s/%s-*.json' % (input_path, service_name)) for inputfile in service_input_files: dirname, filename = os.path.split(inputfile) outputfile = os.path.join(output_path, filename) basename = os.path.splitext(filename)[0] sn, opname = basename.split('-', 1) operation = service.get_operation(opname) r = JSONResponse(session, operation) with open(inputfile, 'rb') as fp: jsondoc = fp.read() r.parse(jsondoc, 'utf-8') save_jsonfile(outputfile, r) fp = open(outputfile) data = json.load(fp) fp.close() yield check_dicts, inputfile, r.get_value(), data
def test_json_parsing(): input_path = os.path.join(os.path.dirname(__file__), 'json') input_path = os.path.join(input_path, 'inputs') output_path = os.path.join(os.path.dirname(__file__), 'json') output_path = os.path.join(output_path, 'outputs') session = botocore.session.get_session() jsonfiles = glob.glob('%s/*.json' % input_path) service_names = set() for fn in jsonfiles: service_names.add(os.path.split(fn)[1].split('-')[0]) for service_name in service_names: service = session.get_service(service_name) service_input_files = glob.glob('%s/%s-*.json' % (input_path, service_name)) for inputfile in service_input_files: dirname, filename = os.path.split(inputfile) outputfile = os.path.join(output_path, filename) basename = os.path.splitext(filename)[0] sn, opname = basename.split('-', 1) operation = service.get_operation(opname) r = JSONResponse(session, operation) headers = {} with open(inputfile, 'r') as fp: jsondoc = fp.read() # Try to get any headers using a special key try: parsed = json.loads(jsondoc) except ValueError: # This will error later, let it go on parsed = {} if '__headers' in parsed: headers = parsed['__headers'] del parsed['__headers'] jsondoc = json.dumps(parsed) r.parse(jsondoc.encode('utf-8'), 'utf-8') r.merge_header_values(headers) save_jsonfile(outputfile, r) fp = open(outputfile) data = json.load(fp) fp.close() yield check_dicts, inputfile, r.get_value(), data