diff --git a/http-api/api_gateway.py b/http-api/app/api_gateway.py similarity index 100% rename from http-api/api_gateway.py rename to http-api/app/api_gateway.py diff --git a/http-api/app.py b/http-api/app/app.py similarity index 100% rename from http-api/app.py rename to http-api/app/app.py diff --git a/http-api/auth.py b/http-api/app/auth.py similarity index 99% rename from http-api/auth.py rename to http-api/app/auth.py index a990635..e37fc21 100644 --- a/http-api/auth.py +++ b/http-api/app/auth.py @@ -26,7 +26,6 @@ Example from dataclasses import asdict, dataclass from typing import Any -import boto3 from aws_lambda_powertools import Logger, Tracer from aws_lambda_powertools.utilities.data_classes import event_source from aws_lambda_powertools.utilities.data_classes.api_gateway_authorizer_event import ( @@ -34,13 +33,14 @@ from aws_lambda_powertools.utilities.data_classes.api_gateway_authorizer_event i APIGatewayAuthorizerResponseV2, ) from aws_lambda_powertools.utilities.typing import LambdaContext +import boto3 from botocore.endpoint_provider import Enum from layercake.dynamodb import DynamoDBCollection, DynamoDBPersistenceLayer, KeyPair from layercake.funcs import pick from boto3clients import dynamodb_client from cognito import get_user -from settings import USER_TABLE +from conf import USER_TABLE APIKEY_PREFIX = 'sk-' diff --git a/http-api/boto3clients.py b/http-api/app/boto3clients.py similarity index 100% rename from http-api/boto3clients.py rename to http-api/app/boto3clients.py diff --git a/http-api/cognito.py b/http-api/app/cognito.py similarity index 100% rename from http-api/cognito.py rename to http-api/app/cognito.py diff --git a/http-api/settings.py b/http-api/app/conf.py similarity index 100% rename from http-api/settings.py rename to http-api/app/conf.py diff --git a/http-api/elastic.py b/http-api/app/elastic.py similarity index 100% rename from http-api/elastic.py rename to http-api/app/elastic.py diff --git a/http-api/konviva.py b/http-api/app/konviva.py similarity index 95% rename from http-api/konviva.py rename to http-api/app/konviva.py index 25f857d..9a6c43c 100644 --- a/http-api/konviva.py +++ b/http-api/app/konviva.py @@ -2,11 +2,11 @@ from dataclasses import asdict, dataclass from urllib.parse import quote as urlquote from urllib.parse import urlencode, urlparse -import requests from aws_lambda_powertools.event_handler.exceptions import BadRequestError from glom import glom +import requests -from settings import KONVIVA_API_URL, KONVIVA_SECRET_KEY +from conf import KONVIVA_API_URL, KONVIVA_SECRET_KEY class KonvivaError(BadRequestError): diff --git a/http-api/middlewares/__init__.py b/http-api/app/middlewares/__init__.py similarity index 100% rename from http-api/middlewares/__init__.py rename to http-api/app/middlewares/__init__.py diff --git a/http-api/middlewares/audit_log_middleware.py b/http-api/app/middlewares/audit_log_middleware.py similarity index 100% rename from http-api/middlewares/audit_log_middleware.py rename to http-api/app/middlewares/audit_log_middleware.py diff --git a/http-api/middlewares/authentication_middleware.py b/http-api/app/middlewares/authentication_middleware.py similarity index 99% rename from http-api/middlewares/authentication_middleware.py rename to http-api/app/middlewares/authentication_middleware.py index 7182e26..2c5a345 100644 --- a/http-api/middlewares/authentication_middleware.py +++ b/http-api/app/middlewares/authentication_middleware.py @@ -1,3 +1,4 @@ +from auth import AuthFlowType from aws_lambda_powertools.event_handler.api_gateway import ( APIGatewayHttpResolver, Response, @@ -8,9 +9,6 @@ from aws_lambda_powertools.event_handler.middlewares import ( ) from pydantic import UUID4, BaseModel, EmailStr, Field -from auth import AuthFlowType - - class User(BaseModel): id: str name: str diff --git a/http-api/middlewares/tenant_middelware.py b/http-api/app/middlewares/tenant_middelware.py similarity index 99% rename from http-api/middlewares/tenant_middelware.py rename to http-api/app/middlewares/tenant_middelware.py index 0018566..e5ffb64 100644 --- a/http-api/middlewares/tenant_middelware.py +++ b/http-api/app/middlewares/tenant_middelware.py @@ -1,5 +1,6 @@ from http import HTTPStatus +from auth import AuthFlowType from aws_lambda_powertools.event_handler.api_gateway import ( APIGatewayHttpResolver, Response, @@ -16,11 +17,8 @@ from aws_lambda_powertools.event_handler.middlewares import ( from layercake.dynamodb import ComposeKey, DynamoDBCollection, KeyPair from pydantic import UUID4, BaseModel -from auth import AuthFlowType - from .authentication_middleware import User - class Tenant(BaseModel): id: UUID4 | str name: str diff --git a/http-api/models.py b/http-api/app/models.py similarity index 100% rename from http-api/models.py rename to http-api/app/models.py diff --git a/http-api/routes/courses/__init__.py b/http-api/app/routes/courses/__init__.py similarity index 99% rename from http-api/routes/courses/__init__.py rename to http-api/app/routes/courses/__init__.py index 1cc9942..3a7c3e1 100644 --- a/http-api/routes/courses/__init__.py +++ b/http-api/app/routes/courses/__init__.py @@ -7,15 +7,15 @@ from meilisearch import Client as Meilisearch from api_gateway import JSONResponse from boto3clients import dynamodb_client -from middlewares import AuditLogMiddleware, Tenant, TenantMiddleware -from models import Course, Org -from rules.course import create_course, update_course -from settings import ( +from conf import ( COURSE_TABLE, MEILISEARCH_API_KEY, MEILISEARCH_HOST, USER_TABLE, ) +from middlewares import AuditLogMiddleware, Tenant, TenantMiddleware +from models import Course, Org +from rules.course import create_course, update_course router = Router() diff --git a/http-api/routes/enrollments/__init__.py b/http-api/app/routes/enrollments/__init__.py similarity index 97% rename from http-api/routes/enrollments/__init__.py rename to http-api/app/routes/enrollments/__init__.py index ab46915..6fbe36c 100644 --- a/http-api/routes/enrollments/__init__.py +++ b/http-api/app/routes/enrollments/__init__.py @@ -11,12 +11,12 @@ from layercake.dynamodb import ( ) from pydantic import UUID4, BaseModel -import elastic from boto3clients import dynamodb_client +from conf import ELASTIC_CONN, ENROLLMENT_TABLE, USER_TABLE +import elastic from middlewares.audit_log_middleware import AuditLogMiddleware from middlewares.authentication_middleware import User from rules.enrollment import set_status_as_canceled -from settings import ELASTIC_CONN, ENROLLMENT_TABLE, USER_TABLE from .vacancies import router as vacancies diff --git a/http-api/routes/enrollments/vacancies.py b/http-api/app/routes/enrollments/vacancies.py similarity index 97% rename from http-api/routes/enrollments/vacancies.py rename to http-api/app/routes/enrollments/vacancies.py index 7016c30..340c00c 100644 --- a/http-api/routes/enrollments/vacancies.py +++ b/http-api/app/routes/enrollments/vacancies.py @@ -7,11 +7,11 @@ from layercake.dynamodb import ( ) from boto3clients import dynamodb_client -from middlewares import Tenant, TenantMiddleware -from settings import ( +from conf import ( ENROLLMENT_TABLE, USER_TABLE, ) +from middlewares import Tenant, TenantMiddleware router = Router() diff --git a/http-api/routes/lookup/__init__.py b/http-api/app/routes/lookup/__init__.py similarity index 95% rename from http-api/routes/lookup/__init__.py rename to http-api/app/routes/lookup/__init__.py index 2fe5d22..7bb0e07 100644 --- a/http-api/routes/lookup/__init__.py +++ b/http-api/app/routes/lookup/__init__.py @@ -6,7 +6,7 @@ from elasticsearch import Elasticsearch from elasticsearch_dsl import Search from layercake.funcs import pick -from settings import ELASTIC_CONN, USER_TABLE +from conf import ELASTIC_CONN, USER_TABLE router = Router() elastic_client = Elasticsearch(**ELASTIC_CONN) diff --git a/http-api/routes/orders/__init__.py b/http-api/app/routes/orders/__init__.py similarity index 96% rename from http-api/routes/orders/__init__.py rename to http-api/app/routes/orders/__init__.py index 40e0b2d..b7b1baa 100644 --- a/http-api/routes/orders/__init__.py +++ b/http-api/app/routes/orders/__init__.py @@ -11,9 +11,9 @@ from layercake.dynamodb import ( KeyPair, ) -import elastic from boto3clients import dynamodb_client -from settings import ELASTIC_CONN, ORDER_TABLE +from conf import ELASTIC_CONN, ORDER_TABLE +import elastic router = Router() order_layer = DynamoDBPersistenceLayer(ORDER_TABLE, dynamodb_client) diff --git a/http-api/routes/orgs/__init__.py b/http-api/app/routes/orgs/__init__.py similarity index 100% rename from http-api/routes/orgs/__init__.py rename to http-api/app/routes/orgs/__init__.py diff --git a/http-api/routes/orgs/policies.py b/http-api/app/routes/orgs/policies.py similarity index 96% rename from http-api/routes/orgs/policies.py rename to http-api/app/routes/orgs/policies.py index 05eb5e2..4915382 100644 --- a/http-api/routes/orgs/policies.py +++ b/http-api/app/routes/orgs/policies.py @@ -1,4 +1,5 @@ from http import HTTPStatus +from typing import Literal from aws_lambda_powertools.event_handler import Response, content_types from aws_lambda_powertools.event_handler.api_gateway import Router @@ -12,11 +13,10 @@ from layercake.dynamodb import ( TransactKey, ) from pydantic.main import BaseModel -from typing_extensions import Literal from boto3clients import dynamodb_client +from conf import USER_TABLE from rules.org import update_policies -from settings import USER_TABLE router = Router() org_layer = DynamoDBPersistenceLayer(USER_TABLE, dynamodb_client) diff --git a/http-api/routes/settings/__init__.py b/http-api/app/routes/settings/__init__.py similarity index 97% rename from http-api/routes/settings/__init__.py rename to http-api/app/routes/settings/__init__.py index b813a73..a4d8217 100644 --- a/http-api/routes/settings/__init__.py +++ b/http-api/app/routes/settings/__init__.py @@ -6,10 +6,10 @@ from layercake.dynamodb import ( PrefixKey, ) -import konviva from boto3clients import dynamodb_client +from conf import USER_TABLE +import konviva from middlewares import User -from settings import USER_TABLE router = Router() user_layer = DynamoDBPersistenceLayer(USER_TABLE, dynamodb_client) diff --git a/http-api/routes/users/__init__.py b/http-api/app/routes/users/__init__.py similarity index 98% rename from http-api/routes/users/__init__.py rename to http-api/app/routes/users/__init__.py index 28db769..40fa103 100644 --- a/http-api/routes/users/__init__.py +++ b/http-api/app/routes/users/__init__.py @@ -1,5 +1,5 @@ -import json from http import HTTPStatus +import json from typing import Annotated from aws_lambda_powertools.event_handler.api_gateway import Router @@ -17,14 +17,14 @@ from layercake.dynamodb import ( from layercake.extra_types import CpfStr, NameStr from pydantic import UUID4, BaseModel, StringConstraints -import cognito -import elastic from api_gateway import JSONResponse from boto3clients import dynamodb_client, idp_client +import cognito +from conf import ELASTIC_CONN, USER_POOOL_ID, USER_TABLE +import elastic from middlewares import AuditLogMiddleware from models import User from rules.user import update_user -from settings import ELASTIC_CONN, USER_POOOL_ID, USER_TABLE from .emails import router as emails from .logs import router as logs diff --git a/http-api/routes/users/emails.py b/http-api/app/routes/users/emails.py similarity index 98% rename from http-api/routes/users/emails.py rename to http-api/app/routes/users/emails.py index f697ec7..0f2cb9c 100644 --- a/http-api/routes/users/emails.py +++ b/http-api/app/routes/users/emails.py @@ -15,9 +15,9 @@ from pydantic import BaseModel, EmailStr from api_gateway import JSONResponse from boto3clients import dynamodb_client +from conf import USER_TABLE from middlewares import AuditLogMiddleware from rules.user import add_email, del_email, set_email_as_primary -from settings import USER_TABLE class BadRequestError(MissingError, PowertoolsBadRequestError): ... diff --git a/http-api/routes/users/logs.py b/http-api/app/routes/users/logs.py similarity index 97% rename from http-api/routes/users/logs.py rename to http-api/app/routes/users/logs.py index 7a65e5a..9d95182 100644 --- a/http-api/routes/users/logs.py +++ b/http-api/app/routes/users/logs.py @@ -11,7 +11,7 @@ from layercake.dynamodb import ( ) from boto3clients import dynamodb_client -from settings import USER_TABLE +from conf import USER_TABLE from .orgs import router as orgs diff --git a/http-api/routes/users/orgs.py b/http-api/app/routes/users/orgs.py similarity index 98% rename from http-api/routes/users/orgs.py rename to http-api/app/routes/users/orgs.py index f510f1d..0330651 100644 --- a/http-api/routes/users/orgs.py +++ b/http-api/app/routes/users/orgs.py @@ -16,9 +16,9 @@ from pydantic import BaseModel from api_gateway import JSONResponse from boto3clients import dynamodb_client +from conf import USER_TABLE from middlewares.audit_log_middleware import AuditLogMiddleware from rules.user import del_org_member -from settings import USER_TABLE class BadRequestError(MissingError, PowertoolsBadRequestError): ... diff --git a/http-api/routes/webhooks/__init__.py b/http-api/app/routes/webhooks/__init__.py similarity index 100% rename from http-api/routes/webhooks/__init__.py rename to http-api/app/routes/webhooks/__init__.py diff --git a/http-api/rules/__init__.py b/http-api/app/rules/__init__.py similarity index 100% rename from http-api/rules/__init__.py rename to http-api/app/rules/__init__.py diff --git a/http-api/rules/course.py b/http-api/app/rules/course.py similarity index 100% rename from http-api/rules/course.py rename to http-api/app/rules/course.py diff --git a/http-api/rules/enrollment.py b/http-api/app/rules/enrollment.py similarity index 98% rename from http-api/rules/enrollment.py rename to http-api/app/rules/enrollment.py index 0fa4338..ad54fec 100644 --- a/http-api/rules/enrollment.py +++ b/http-api/app/rules/enrollment.py @@ -4,7 +4,7 @@ from uuid import uuid4 from layercake.dateutils import now from layercake.dynamodb import DynamoDBPersistenceLayer, KeyPair, TransactItems -from settings import ORDER_TABLE +from conf import ORDER_TABLE class Author(TypedDict): diff --git a/http-api/rules/org.py b/http-api/app/rules/org.py similarity index 100% rename from http-api/rules/org.py rename to http-api/app/rules/org.py diff --git a/http-api/rules/user.py b/http-api/app/rules/user.py similarity index 100% rename from http-api/rules/user.py rename to http-api/app/rules/user.py diff --git a/http-api/cli/collections.py b/http-api/cli/collections.py new file mode 100644 index 0000000..b9c774c --- /dev/null +++ b/http-api/cli/collections.py @@ -0,0 +1,62 @@ +import pprint + +from meilisearch import Client as Meilisearch + +MASTER_KEY = 'zrYPsSAG1hgq2zB1dkF0sB9xLoIwTLAz6uw38pWRf5abdpTjY2eeMTIsfPbDbqQR' +API_KEY = '1aa4c720611269e9425e8467df7e802f3a20ad6c5f31fe875ac886fc4efa2c83' + +client = Meilisearch( + # 'https://meili.vps.eduseg.com.br', + # '1aa4c720611269e9425e8467df7e802f3a20ad6c5f31fe875ac886fc4efa2c83', + 'http://localhost:7700' +) + +pp = pprint.PrettyPrinter(indent=4) + +courses = client.index('test-courses') + +courses.update_settings( + { + 'sortableAttributes': ['create_date'], + 'filterableAttributes': ['tenant__org_id'], + } +) + + +# with open('cli/search-results.json') as fp: +# docs = json.load(fp) +# courses.add_documents(docs) + +# pp.pprint(courses.search('')) + +# client.create_index('betaeducacao-prod-orders', {'primaryKey': 'id'}) +# client.create_index('betaeducacao-prod-enrollments', {'primaryKey': 'id'}) +# client.create_index('betaeducacao-prod-users_d2o3r5gmm4it7j', {'primaryKey': 'id'}) + +# An index is where the documents are stored. +# index = client.index('users') + +# pp.pprint(index.search(query='*')) + +# documents = [ +# {'id': 1, 'title': 'Carol', 'genres': ['Romance', 'Drama']}, +# {'id': 2, 'title': 'Wonder Woman', 'genres': ['Action', 'Adventure']}, +# {'id': 3, 'title': 'Life of Pi', 'genres': ['Adventure', 'Drama']}, +# { +# 'id': 4, +# 'title': 'Mad Max: Fury Road', +# 'genres': ['Adventure', 'Science Fiction'], +# }, +# {'id': 5, 'title': 'Moana', 'genres': ['Fantasy', 'Action']}, +# {'id': 6, 'title': 'Philadelphia', 'genres': ['Drama']}, +# ] + +# # # If the index 'movies' does not exist, Meilisearch creates it when you first add the documents. +# index.add_documents(documents +# +# ) + + +# pp.pprint(client.get_keys({'limit': 3}).model_dump_json()) +# +# uid='fdbdda56-00dd-4f53-934f-6629f3b08ee3' name=None description='Add, get documents and search' actions=['documents.add', 'documents.get', 'search'] indexes=['users', 'courses', 'enrollments', 'orders'] expires_at=None key='1aa4c720611269e9425e8467df7e802f3a20ad6c5f31fe875ac886fc4efa2c83' created_at=datetime.datetime(2025, 4, 1, 0, 46, 27, 751365) updated_at=datetime.datetime(2025, 4, 1, 0, 46, 27, 751365) diff --git a/http-api/cli/ddb.py b/http-api/cli/ddb.py new file mode 100644 index 0000000..6aa508c --- /dev/null +++ b/http-api/cli/ddb.py @@ -0,0 +1,8 @@ +import json + +from layercake.dynamodb import serialize + +with open('cli/search-results.json') as fp: + docs = json.load(fp) + for doc in docs: + print(json.dumps(serialize(doc))) diff --git a/http-api/cli/seeds.py b/http-api/cli/seeds.py index 950cd7e..b2e1f5a 100644 --- a/http-api/cli/seeds.py +++ b/http-api/cli/seeds.py @@ -1,8 +1,8 @@ from typing import Any, Generator import boto3 -import jsonlines from elasticsearch import Elasticsearch +import jsonlines from layercake.dynamodb import deserialize from tqdm import tqdm diff --git a/http-api/cli/unzip.py b/http-api/cli/unzip.py new file mode 100644 index 0000000..be01f0a --- /dev/null +++ b/http-api/cli/unzip.py @@ -0,0 +1,40 @@ +import gzip +from pathlib import Path + +def unzip_gzip(file: Path, target: str): + with gzip.open(file, 'rb') as r: + with open(target, 'wb') as w: + return w.write(r.read()) + + +def unzip_gzfiles(dirpath: Path) -> None: + """Unzip the .gz files from a dir.""" + if not dirpath.exists() or not dirpath.is_dir(): + print(f'"{dirpath}" not found') + return None + + gzfiles = list(dirpath.glob('*.gz')) + + if not gzfiles: + print(f'No .gz files found in "{dirpath}"') + return None + + # Create a directory to output the files + Path(f'{dirpath}/out').mkdir(exist_ok=True) + + for file in gzfiles: + filename = file.name.removesuffix('.gz') + + if not file.is_file(): + continue + + if unzip_gzip(file, f'{dirpath}/out/{filename}'): + print(f'Unzipped "{file.name}"') + + +if __name__ == '__main__': + try: + dirpath = input('Type the directory path\n') + unzip_gzfiles(Path(dirpath)) + except (KeyboardInterrupt, Exception): + print('See ya') diff --git a/http-api/env.json b/http-api/env.json new file mode 100644 index 0000000..f1d8de3 --- /dev/null +++ b/http-api/env.json @@ -0,0 +1,9 @@ +{ + "Parameters": { + "KONVIVA_API_KEY": "ac982dd94dbfab5067182d9adb88d3da", + "USER_TABLE": "test-users", + "ORDER_TABLE": "test-orders", + "ENROLLMENT_TABLE": "test-enrollments", + "COURSE_TABLE": "test-courses" + } +} diff --git a/http-api/pyproject.toml b/http-api/pyproject.toml index 1ad2580..6644655 100644 --- a/http-api/pyproject.toml +++ b/http-api/pyproject.toml @@ -16,10 +16,23 @@ dev = [ ] [tool.pytest.ini_options] +pythonpath = ["app/"] addopts = "--cov --cov-report html -v" +[tool.ruff] +target-version = "py311" +src = ["app"] + [tool.ruff.format] quote-style = "single" +[tool.ruff.lint] +select = ["E", "F", "I"] + +[tool.ruff.lint.isort] +lines-between-types = 1 +force-sort-within-sections = true + + [tool.uv.sources] layercake = { path = "../layercake" } diff --git a/http-api/pyrightconfig.json b/http-api/pyrightconfig.json new file mode 100644 index 0000000..78cdf4e --- /dev/null +++ b/http-api/pyrightconfig.json @@ -0,0 +1,3 @@ +{ + "extraPaths": ["app/"] +} diff --git a/http-api/template.yaml b/http-api/template.yaml index b39d227..4eaed09 100644 --- a/http-api/template.yaml +++ b/http-api/template.yaml @@ -17,13 +17,13 @@ Parameters: Globals: Function: - CodeUri: . + CodeUri: app/ Runtime: python3.13 Tracing: Active Architectures: - x86_64 Layers: - - !Sub arn:aws:lambda:sa-east-1:336641857101:layer:layercake:47 + - !Sub arn:aws:lambda:sa-east-1:336641857101:layer:layercake:48 Environment: Variables: TZ: America/Sao_Paulo diff --git a/http-api/tests/conftest.py b/http-api/tests/conftest.py index 834a221..afdfb41 100644 --- a/http-api/tests/conftest.py +++ b/http-api/tests/conftest.py @@ -1,12 +1,12 @@ import base64 -import json -import os from dataclasses import dataclass from http import HTTPMethod +import json +import os import jsonlines -import pytest from layercake.dynamodb import DynamoDBPersistenceLayer +import pytest PYTEST_TABLE_NAME = 'pytest' PK = os.getenv('DYNAMODB_PARTITION_KEY') diff --git a/http-api/tests/routes/test_courses.py b/http-api/tests/routes/test_courses.py index 34a531e..90e8d56 100644 --- a/http-api/tests/routes/test_courses.py +++ b/http-api/tests/routes/test_courses.py @@ -1,5 +1,5 @@ -import json from http import HTTPMethod, HTTPStatus +import json from layercake.dynamodb import ( ComposeKey, diff --git a/http-api/tests/routes/test_enrollments.py b/http-api/tests/routes/test_enrollments.py index 409bfbd..8e50359 100644 --- a/http-api/tests/routes/test_enrollments.py +++ b/http-api/tests/routes/test_enrollments.py @@ -10,7 +10,6 @@ from layercake.dynamodb import ( from ..conftest import HttpApiProxy, LambdaContext - def test_vacancies( mock_app, dynamodb_seeds, diff --git a/http-api/tests/routes/test_lookup.py b/http-api/tests/routes/test_lookup.py index 252d783..aad91b8 100644 --- a/http-api/tests/routes/test_lookup.py +++ b/http-api/tests/routes/test_lookup.py @@ -1,9 +1,8 @@ -import json from http import HTTPMethod, HTTPStatus +import json from ..conftest import HttpApiProxy, LambdaContext - def test_lookup( mock_app, http_api_proxy: HttpApiProxy, diff --git a/http-api/tests/routes/test_orgs.py b/http-api/tests/routes/test_orgs.py index 879e975..2435210 100644 --- a/http-api/tests/routes/test_orgs.py +++ b/http-api/tests/routes/test_orgs.py @@ -1,11 +1,10 @@ -import json from http import HTTPMethod, HTTPStatus +import json from layercake.dynamodb import DynamoDBCollection, DynamoDBPersistenceLayer, KeyPair from ..conftest import HttpApiProxy, LambdaContext - def test_get_policies( mock_app, dynamodb_seeds, diff --git a/http-api/tests/routes/test_settings.py b/http-api/tests/routes/test_settings.py index 17b2aea..017f9ae 100644 --- a/http-api/tests/routes/test_settings.py +++ b/http-api/tests/routes/test_settings.py @@ -1,9 +1,8 @@ -import json from http import HTTPMethod, HTTPStatus +import json from ..conftest import HttpApiProxy, LambdaContext - def test_settings( mock_app, dynamodb_seeds, diff --git a/http-api/tests/routes/test_users.py b/http-api/tests/routes/test_users.py index 7355d34..556081d 100644 --- a/http-api/tests/routes/test_users.py +++ b/http-api/tests/routes/test_users.py @@ -1,5 +1,5 @@ -import json from http import HTTPMethod, HTTPStatus +import json from layercake.dynamodb import ( DynamoDBCollection, @@ -11,7 +11,6 @@ from layercake.dynamodb import ( from ..conftest import HttpApiProxy, LambdaContext - def test_update_user_cpf( mock_app, dynamodb_seeds, diff --git a/http-api/tests/test_auth.py b/http-api/tests/test_auth.py index d1d95da..8724ac8 100644 --- a/http-api/tests/test_auth.py +++ b/http-api/tests/test_auth.py @@ -3,7 +3,6 @@ from auth import _parse_bearer_token from .conftest import LambdaContext - def test_bearer_jwt(lambda_context: LambdaContext): # You should mock the Cognito user to pass the test app.get_user = lambda *args, **kwargs: { diff --git a/http-api/tests/test_konviva.py b/http-api/tests/test_konviva.py index 2fd8994..6cb3dda 100644 --- a/http-api/tests/test_konviva.py +++ b/http-api/tests/test_konviva.py @@ -1,5 +1,5 @@ +from conf import KONVIVA_API_URL import konviva -from settings import KONVIVA_API_URL def test_konviva_token(): diff --git a/http-api/tests/test_middelwares.py b/http-api/tests/test_middelwares.py index 057890b..6244e92 100644 --- a/http-api/tests/test_middelwares.py +++ b/http-api/tests/test_middelwares.py @@ -1,14 +1,12 @@ from http import HTTPMethod -import pytest from aws_lambda_powertools.event_handler.api_gateway import APIGatewayHttpResolver from layercake.dynamodb import DynamoDBCollection, DynamoDBPersistenceLayer - from middlewares import AuthenticationMiddleware, TenantMiddleware +import pytest from .conftest import HttpApiProxy, LambdaContext - @pytest.fixture def mock_app(dynamodb_persistence_layer: DynamoDBPersistenceLayer): collect = DynamoDBCollection(dynamodb_persistence_layer)