Files
saladeaula.digital/api.saladeaula.digital/tests/routes/test_orgs.py
2025-12-05 20:43:49 -03:00

93 lines
2.3 KiB
Python

import json
from http import HTTPMethod, HTTPStatus
from layercake.dynamodb import DynamoDBPersistenceLayer, KeyPair, PartitionKey
from ..conftest import HttpApiProxy, LambdaContext
def test_add_org(
app,
seeds,
dynamodb_persistence_layer: DynamoDBPersistenceLayer,
http_api_proxy: HttpApiProxy,
lambda_context: LambdaContext,
):
user_id = '213a6682-2c59-4404-9189-12eec0a846d4'
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
def test_get_scheduled(
app,
seeds,
http_api_proxy: HttpApiProxy,
lambda_context: LambdaContext,
):
r = app.lambda_handler(
http_api_proxy(
raw_path='/orgs/1234/enrollments/scheduled',
method=HTTPMethod.GET,
),
lambda_context,
)
assert r['statusCode'] == HTTPStatus.OK