import json from http import HTTPMethod, HTTPStatus from layercake.dynamodb import DynamoDBPersistenceLayer, KeyPair, PartitionKey from ..conftest import HttpApiProxy, LambdaContext def test_get_org( app, seeds, dynamodb_persistence_layer: DynamoDBPersistenceLayer, http_api_proxy: HttpApiProxy, lambda_context: LambdaContext, ): r = app.lambda_handler( http_api_proxy( raw_path='/orgs/7362ce9e-9dad-4483-a28b-fff4034a17a5', method=HTTPMethod.GET, ), lambda_context, ) body = json.loads(r['body']) assert 'address' in body assert 'subscription_frozen' in body def test_add_org( app, seeds, dynamodb_persistence_layer: DynamoDBPersistenceLayer, http_api_proxy: HttpApiProxy, lambda_context: LambdaContext, ): user_id = '15bacf02-1535-4bee-9022-19d106fd7518' r = app.lambda_handler( http_api_proxy( raw_path='/orgs', method=HTTPMethod.POST, body={ 'name': 'Banco Central do Brasil', 'cnpj': '00038166000105', 'user': { 'id': user_id, 'name': 'Sérgio R Siqueira', 'email': 'sergio@somosbeta.com.br', }, }, ), lambda_context, ) body = json.loads(r['body']) assert r['statusCode'] == HTTPStatus.CREATED org = dynamodb_persistence_layer.collection.query(PartitionKey(body['id'])) assert len(org['items']) == 3 user = dynamodb_persistence_layer.collection.query(KeyPair(user_id, 'orgs#')) # One item was added from seeds assert len(user['items']) == 2 def test_get_admins( app, seeds, http_api_proxy: HttpApiProxy, lambda_context: LambdaContext, ): r = app.lambda_handler( http_api_proxy( raw_path='/orgs/f6000f79-6e5c-49a0-952f-3bda330ef278/admins', method=HTTPMethod.GET, ), lambda_context, ) assert r['statusCode'] == HTTPStatus.OK r = json.loads(r['body']) assert len(r['items']) == 1 def test_revoke( app, seeds, http_api_proxy: HttpApiProxy, lambda_context: LambdaContext, ): r = app.lambda_handler( http_api_proxy( raw_path='/orgs/f6000f79-6e5c-49a0-952f-3bda330ef278/admins/15bacf02-1535-4bee-9022-19d106fd7518', method=HTTPMethod.DELETE, ), lambda_context, ) assert r['statusCode'] == HTTPStatus.NO_CONTENT