def test_parse_object_location_true_content_type_xml(): headers = { 'Content-Type': 'multipart/parallel; boundary=2ce97979.83bf.368b.86c2.cc9295f41e3d', } body = (b'\r\n--2ce97979.83bf.368b.86c2.cc9295f41e3d' b'\r\nContent-ID: 8240151' b'\r\nObject-ID: 1' b'\r\nLocation: http://cdn.rets.com/1.jpg' b'\r\nContent-Description: Welcome Home!' b'\r\nContent-Type: text/xml' b'\r\n' b'\r\n<RETS ReplyCode="0" ReplyText="SUCCESS" >\r\n</RETS>\r\n' b'\r\n--2ce97979.83bf.368b.86c2.cc9295f41e3d--' b'\r\n') response = make_response(200, body, headers) assert parse_object(response) == (Object( mime_type='image/jpeg', content_id='8240151', description='Welcome Home!', object_id='1', url='http://cdn.rets.com/1.jpg', preferred=False, data=None, ), )
def test_parse_object_no_encoding(): # Note: there is no charset in the content-type headers = { 'Content-Type': 'multipart/parallel;boundary="FLEX1t7l9O45tdFUw2e92ASD3qKPxB0lf0Wo7atUz9qlAFoQdBGpDr"' } body = (b'\r\n--FLEX1t7l9O45tdFUw2e92ASD3qKPxB0lf0Wo7atUz9qlAFoQdBGpDr' b'\r\nContent-Type: image/jpeg' b'\r\nContent-ID: 20170817170218718581000000' b'\r\nObject-ID: 1' b'\r\nLocation: http://cdn.rets.com/1.jpg' b'\r\nContent-Description: anthem' b'\r\nPreferred: 1' b'\r\n\r\n' b'\r\n--FLEX1t7l9O45tdFUw2e92ASD3qKPxB0lf0Wo7atUz9qlAFoQdBGpDr--' b'\r\n') response = make_response(200, body, headers) assert parse_object(response) == (Object( mime_type='image/jpeg', content_id='20170817170218718581000000', description='anthem', object_id='1', url='http://cdn.rets.com/1.jpg', preferred=True, data=None, ), )
def test_parse_object_not_found(): headers = { 'Content-Type': 'text/xml;charset=US-ASCII', 'Content-ID': '201708171702187185810000009999', 'Object-ID': '1', 'Location': '', } body = b'<RETS ReplyCode="20403" ReplyText="No such object available for this resource"/>' response = make_response(200, body, headers) assert parse_object(response) == ()
def make_get_routes(repo, existing_pulls, unstable=False): result = {} async def list_pulls(request: web.Request): if unstable: return web.Response(status=200, text="", content_type="application/json") pulls = existing_pulls q = request.url.query if q.get("sort", "created") == "created": pulls.sort(key=lambda p: p["created_at"]) limit = int(q.get("per_page", 30)) offset = (int(q.get("page", 1)) - 1) * limit data = [p for p in pulls if p["state"] == q.get("state", "open")] return web.Response(status=200, text=json.dumps(data[offset:offset + limit]), content_type="application/json") for pull in existing_pulls: pull_path = "/repos/{}/pulls/{}".format(repo, pull["number"]) issue_path = "/repos/{}/issues/{}".format(repo, pull["number"]) if unstable and random.random() >= 0.5: code = random.choice([500, 501, 502]) result[pull_path] = utils.make_response(code, {}) result[issue_path] = utils.make_response(code, {}) else: result[pull_path] = utils.make_response(200, pull) result[issue_path] = utils.make_response(200, utils.as_issue(pull)) pulls_path = "/repos/{}/pulls".format(repo) result[pulls_path] = list_pulls return result
def test_parse_object_multi_location_false(): headers = { 'Content-Type': 'multipart/parallel;boundary="FLEX1t7l9O45tdFUw2e92ASD3qKPxB0lf0Wo7atUz9qlAFoQdBGpDr";' 'charset=US-ASCII', } body = (b'\r\n--FLEX1t7l9O45tdFUw2e92ASD3qKPxB0lf0Wo7atUz9qlAFoQdBGpDr' b'\r\nContent-Type: image/jpeg' b'\r\nContent-ID: 20170817170218718581000000' b'\r\nObject-ID: 1' b'\r\nContent-Description: anthem' b'\r\nPreferred: 1' b'\r\n' b'\r\nbinary content 1' b'\r\n--FLEX1t7l9O45tdFUw2e92ASD3qKPxB0lf0Wo7atUz9qlAFoQdBGpDr' b'\r\nContent-Type: image/jpeg' b'\r\nContent-ID: 20170817170218718581000000' b'\r\nObject-ID: 2' b'\r\nContent-Description: anthem2' b'\r\n' b'\r\nbinary content 2' b'\r\n--FLEX1t7l9O45tdFUw2e92ASD3qKPxB0lf0Wo7atUz9qlAFoQdBGpDr--' b'\r\n') response = make_response(200, body, headers) assert parse_object(response) == ( Object( mime_type='image/jpeg', content_id='20170817170218718581000000', description='anthem', object_id='1', url=None, preferred=True, data=b'binary content 1', ), Object( mime_type='image/jpeg', content_id='20170817170218718581000000', description='anthem2', object_id='2', url=None, preferred=False, data=b'binary content 2', ), )
def test_parse_object_single_location_false(): headers = { 'Content-Type': 'image/jpeg;charset=US-ASCII', 'Content-ID': '20170817170218718581000000', 'Object-ID': '1', 'Content-Description': 'anthem', 'Preferred': '1', } body = b'binary content' response = make_response(200, body, headers) assert parse_object(response) == (Object( mime_type='image/jpeg', content_id='20170817170218718581000000', description='anthem', object_id='1', url=None, preferred=True, data=b'binary content', ), )
def test_parse_object_single_location_true(): headers = { 'Content-Type': 'image/jpeg;charset=US-ASCII', 'Content-ID': '20170817170218718581000000', 'Object-ID': '1', 'Location': 'http://cdn.rets.com/1.jpg', 'Content-Description': 'anthem', 'Preferred': '1', } body = b'' response = make_response(200, body, headers) assert parse_object(response, CompactParser) == (Object( mime_type='image/jpeg', content_id='20170817170218718581000000', description='anthem', object_id='1', url='http://cdn.rets.com/1.jpg', preferred=True, data=None, ), )