Skip to content

Commit 73832c1

Browse files
committed
MNT/TST: Update tests and ignore module level imports in tests
We don't care if the tests import things later which enables mocks to be set up before any external imports
1 parent 81ace32 commit 73832c1

6 files changed

Lines changed: 25 additions & 14 deletions

File tree

lambda_layer/database/requirements.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -169,6 +169,7 @@ psycopg2-binary==2.9.10 ; python_version >= "3.10" and python_version < "4" \
169169
--hash=sha256:245159e7ab20a71d989da00f280ca57da7641fa2cdcf71749c193cea540a74f7 \
170170
--hash=sha256:26540d4a9a4e2b096f1ff9cce51253d0504dca5a85872c7f7be23be5a53eb18d \
171171
--hash=sha256:270934a475a0e4b6925b5f804e3809dd5f90f8613621d062848dd82f9cd62007 \
172+
--hash=sha256:27422aa5f11fbcd9b18da48373eb67081243662f9b46e6fd07c3eb46e4535142 \
172173
--hash=sha256:2ad26b467a405c798aaa1458ba09d7e2b6e5f96b1ce0ac15d82fd9f95dc38a92 \
173174
--hash=sha256:2b3d2491d4d78b6b14f76881905c7a8a8abcf974aad4a8a0b065273a0ed7a2cb \
174175
--hash=sha256:2ce3e21dc3437b1d960521eca599d57408a695a0d3c26797ea0f72e834c7ffe5 \

poetry.lock

Lines changed: 1 addition & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

pyproject.toml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -128,3 +128,6 @@ lint.ignore = ["D104", "D203", "D213", "D300", "D413", "S101", "S104", "PLR0913"
128128
# subprocess calls within these modules are expected
129129
"tests/lambda_endpoints/conftest.py" = ["S"]
130130
"tests/infrastructure/test_website_cloudfront_function.py" = ["S"]
131+
# Module level imports which we sometimes want within functions to
132+
# make for easier moto mocking
133+
"tests/*" = ["PLC0415"]

tests/infrastructure/test_api_key_dynamodb.py

Lines changed: 20 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -14,16 +14,6 @@
1414
import pytest
1515
from moto import mock_dynamodb
1616

17-
from sds_data_manager.lambda_code.authorization.lambda_api_key_authorizer import (
18-
get_api_key_metadata,
19-
lambda_handler,
20-
)
21-
from sds_data_manager.lambda_code.authorization.manage_api_keys import (
22-
add_key_to_db,
23-
get_keys,
24-
remove_key_from_db,
25-
)
26-
2717
TABLE_NAME = "imap-sdc-api-keys"
2818

2919

@@ -45,6 +35,16 @@ def dynamodb_table():
4535

4636
def test_api_key_management(dynamodb_table):
4737
"""Test API key management operations."""
38+
# Import after mocks are set up
39+
from sds_data_manager.lambda_code.authorization.lambda_api_key_authorizer import (
40+
lambda_handler,
41+
)
42+
from sds_data_manager.lambda_code.authorization.manage_api_keys import (
43+
add_key_to_db,
44+
get_keys,
45+
remove_key_from_db,
46+
)
47+
4848
# Test adding a key
4949
test_key = "test123456789abcdef"
5050
add_key_to_db(
@@ -58,8 +58,8 @@ def test_api_key_management(dynamodb_table):
5858
assert keys[test_key]["email"] == "test@example.com"
5959
assert keys[test_key]["scope"] == "full"
6060

61-
# Test getting metadata for authorization
62-
metadata = get_api_key_metadata(test_key)
61+
# Test getting metadata for authorization (direct table access)
62+
metadata = dynamodb_table.get_item(Key={"api_key": test_key}).get("Item")
6363
assert metadata is not None
6464
assert metadata["owner"] == "Test User"
6565

@@ -88,6 +88,14 @@ def test_api_key_management(dynamodb_table):
8888

8989
def test_scope_restrictions(dynamodb_table):
9090
"""Test scope-based access restrictions."""
91+
# Import after mocks are set up
92+
from sds_data_manager.lambda_code.authorization.lambda_api_key_authorizer import (
93+
lambda_handler,
94+
)
95+
from sds_data_manager.lambda_code.authorization.manage_api_keys import (
96+
add_key_to_db,
97+
)
98+
9199
# Add a key with limited scope
92100
limited_key = "limited123456789abc"
93101
add_key_to_db(

tests/lambda_endpoints/test_ialirt_db_query_api.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
"""Tests for the I-ALiRT DB Query API Lambda function."""
2-
# ruff: noqa: PLC0415
32

43
import importlib
54
import json

tests/lambda_endpoints/test_ialirt_db_query_api_formatted.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
"""Tests for the I-ALiRT DB Query API Lambda function."""
2-
# ruff: noqa: PLC0415
32

43
import importlib
54
import json

0 commit comments

Comments
 (0)