implemented client_challenge on lease apis
This commit is contained in:
parent
d8cddd4b29
commit
685e1ce0bb
@ -710,7 +710,7 @@ async def leasing_v1_lessor(request: Request):
|
|||||||
Lease.create_or_update(db, data)
|
Lease.create_or_update(db, data)
|
||||||
|
|
||||||
response = {
|
response = {
|
||||||
"client_challenge": None,
|
"client_challenge": j.get('client_challenge'),
|
||||||
"lease_result_list": lease_result_list,
|
"lease_result_list": lease_result_list,
|
||||||
"result_code": None,
|
"result_code": None,
|
||||||
"sync_timestamp": cur_time.strftime(DT_FORMAT),
|
"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
|
# venv/lib/python3.9/site-packages/nls_core_lease/lease_single.py
|
||||||
@app.put('/leasing/v1/lease/{lease_ref}', description='renew a lease')
|
@app.put('/leasing/v1/lease/{lease_ref}', description='renew a lease')
|
||||||
async def leasing_v1_lease_renew(request: Request, lease_ref: str):
|
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')
|
origin_ref = token.get('origin_ref')
|
||||||
logger.info(f'> [ renew ]: {origin_ref}: renew {lease_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
|
expires = cur_time + LEASE_EXPIRE_DELTA
|
||||||
response = {
|
response = {
|
||||||
|
"client_challenge": j.get('client_challenge'),
|
||||||
"lease_ref": lease_ref,
|
"lease_ref": lease_ref,
|
||||||
"expires": expires.strftime(DT_FORMAT),
|
"expires": expires.strftime(DT_FORMAT),
|
||||||
"recommended_lease_renewal": LEASE_RENEWAL_PERIOD,
|
"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'})
|
return JSONr(status_code=404, content={'status': 404, 'detail': 'lease not found'})
|
||||||
|
|
||||||
response = {
|
response = {
|
||||||
|
"client_challenge": None,
|
||||||
"lease_ref": lease_ref,
|
"lease_ref": lease_ref,
|
||||||
"prompts": None,
|
"prompts": None,
|
||||||
"sync_timestamp": cur_time.strftime(DT_FORMAT),
|
"sync_timestamp": cur_time.strftime(DT_FORMAT),
|
||||||
|
10
test/main.py
10
test/main.py
@ -195,6 +195,7 @@ def test_auth_v1_token():
|
|||||||
|
|
||||||
def test_leasing_v1_lessor():
|
def test_leasing_v1_lessor():
|
||||||
payload = {
|
payload = {
|
||||||
|
'client_challenge': 'my_unique_string',
|
||||||
'fulfillment_context': {
|
'fulfillment_context': {
|
||||||
'fulfillment_class_ref_list': []
|
'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)})
|
response = client.post('/leasing/v1/lessor', json=payload, headers={'authorization': __bearer_token(ORIGIN_REF)})
|
||||||
assert response.status_code == 200
|
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')
|
lease_result_list = response.json().get('lease_result_list')
|
||||||
assert len(lease_result_list) == 1
|
assert len(lease_result_list) == 1
|
||||||
assert len(lease_result_list[0]['lease']['ref']) == 36
|
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
|
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')
|
lease_ref = response.json().get('lease_ref')
|
||||||
assert len(lease_ref) == 36
|
assert len(lease_ref) == 36
|
||||||
assert lease_ref == active_lease_ref
|
assert lease_ref == active_lease_ref
|
||||||
|
Loading…
Reference in New Issue
Block a user