diff --git a/app/main.py b/app/main.py index 60f56a2..6c6935a 100644 --- a/app/main.py +++ b/app/main.py @@ -710,7 +710,7 @@ async def leasing_v1_lessor(request: Request): Lease.create_or_update(db, data) response = { - "client_challenge": None, + "client_challenge": j.get('client_challenge'), "lease_result_list": lease_result_list, "result_code": None, "sync_timestamp": cur_time.strftime(DT_FORMAT), @@ -746,7 +746,7 @@ async def leasing_v1_lessor_lease(request: Request): # venv/lib/python3.9/site-packages/nls_core_lease/lease_single.py @app.put('/leasing/v1/lease/{lease_ref}', description='renew a lease') async def leasing_v1_lease_renew(request: Request, lease_ref: str): - token, cur_time = __get_token(request), datetime.now(UTC) + j, token, cur_time = json_loads((await request.body()).decode('utf-8')), __get_token(request), datetime.now(UTC) origin_ref = token.get('origin_ref') logger.info(f'> [ renew ]: {origin_ref}: renew {lease_ref}') @@ -757,6 +757,7 @@ async def leasing_v1_lease_renew(request: Request, lease_ref: str): expires = cur_time + LEASE_EXPIRE_DELTA response = { + "client_challenge": j.get('client_challenge'), "lease_ref": lease_ref, "expires": expires.strftime(DT_FORMAT), "recommended_lease_renewal": LEASE_RENEWAL_PERIOD, @@ -788,6 +789,7 @@ async def leasing_v1_lease_delete(request: Request, lease_ref: str): return JSONr(status_code=404, content={'status': 404, 'detail': 'lease not found'}) response = { + "client_challenge": None, "lease_ref": lease_ref, "prompts": None, "sync_timestamp": cur_time.strftime(DT_FORMAT), diff --git a/test/main.py b/test/main.py index 014a86f..681d538 100644 --- a/test/main.py +++ b/test/main.py @@ -195,6 +195,7 @@ def test_auth_v1_token(): def test_leasing_v1_lessor(): payload = { + 'client_challenge': 'my_unique_string', 'fulfillment_context': { 'fulfillment_class_ref_list': [] }, @@ -209,6 +210,9 @@ def test_leasing_v1_lessor(): response = client.post('/leasing/v1/lessor', json=payload, headers={'authorization': __bearer_token(ORIGIN_REF)}) assert response.status_code == 200 + client_challenge = response.json().get('client_challenge') + assert client_challenge == payload.get('client_challenge') + lease_result_list = response.json().get('lease_result_list') assert len(lease_result_list) == 1 assert len(lease_result_list[0]['lease']['ref']) == 36 @@ -232,9 +236,13 @@ def test_leasing_v1_lease_renew(): ### - response = client.put(f'/leasing/v1/lease/{active_lease_ref}', headers={'authorization': __bearer_token(ORIGIN_REF)}) + payload = {'client_challenge': 'my_unique_string'} + response = client.put(f'/leasing/v1/lease/{active_lease_ref}', json=payload, headers={'authorization': __bearer_token(ORIGIN_REF)}) assert response.status_code == 200 + client_challenge = response.json().get('client_challenge') + assert client_challenge == payload.get('client_challenge') + lease_ref = response.json().get('lease_ref') assert len(lease_ref) == 36 assert lease_ref == active_lease_ref