def test_invalid_json_will_return_bad_request(data, res_body): event = {'body': JsonUtil.dumps(data)} res = handler(event, {}) assert res['statusCode'] == HTTPStatus.BAD_REQUEST assert res['body'] == res_body
def test_valid_data_will_creates_pet(): event = { 'body': JsonUtil.dumps({ 'id': 1, 'name': 'dog', 'tags': [{ 'id': 1, 'name': 'some tag' }] }) } res = handler(event, {}) assert res['statusCode'] == HTTPStatus.CREATED data = JsonUtil.loads(res['body']) assert data['id'] == 1 assert data['name'] == 'dog' assert data['tags'][0]['id'] == 1 assert data['tags'][0]['name'] == 'some tag' dynamo_res = pets_table.get_item(Key={'id': 1}) assert 'Item' in dynamo_res item = dynamo_res['Item'] assert item['id'] == 1 assert item['name'] == 'dog'
def test_duplicate_id_return_conflict(): pets_table.put_item(Item={'id': 1, 'name': 'cat'}) event = { 'body': JsonUtil.dumps({ 'id': 1, 'name': 'dog', 'tags': [{ 'id': 1, 'name': 'some tag' }] }) } res = handler(event, {}) assert res['statusCode'] == HTTPStatus.CONFLICT assert len(pets_table.scan()['Items']) == 1
def ok(data, headers={}): return _create_response(HTTPStatus.OK, JsonUtil.dumps(data), headers)
def not_found(message, headers={}): return _create_response(HTTPStatus.NOT_FOUND, JsonUtil.dumps({'message': message}), headers)
def created(data, headers={}): return _create_response(HTTPStatus.CREATED, JsonUtil.dumps(data), headers)
def conflict(message, headers={}): return _create_response(HTTPStatus.CONFLICT, JsonUtil.dumps({'message': message}), headers)
def bad_request(errors, headers={}): return _create_response(HTTPStatus.BAD_REQUEST, JsonUtil.dumps({'message': errors}), headers)