Skip to content

Commit

Permalink
Merge pull request #1329 from GSA/fix_test_coverage
Browse files Browse the repository at this point in the history
bring test coverage back to 95%
  • Loading branch information
ccostino authored Sep 10, 2024
2 parents e236ed6 + 4e9e014 commit 1b98f45
Show file tree
Hide file tree
Showing 3 changed files with 23 additions and 3 deletions.
4 changes: 2 additions & 2 deletions .ds.baseline
Original file line number Diff line number Diff line change
Expand Up @@ -209,7 +209,7 @@
"filename": "tests/app/aws/test_s3.py",
"hashed_secret": "67a74306b06d0c01624fe0d0249a570f4d093747",
"is_verified": false,
"line_number": 25,
"line_number": 27,
"is_secret": false
}
],
Expand Down Expand Up @@ -384,5 +384,5 @@
}
]
},
"generated_at": "2024-08-22T18:00:24Z"
"generated_at": "2024-09-10T18:12:39Z"
}
8 changes: 7 additions & 1 deletion app/aws/s3.py
Original file line number Diff line number Diff line change
Expand Up @@ -82,15 +82,21 @@ def list_s3_objects():
)


def get_bucket_name():
return current_app.config["CSV_UPLOAD_BUCKET"]["bucket"]


def cleanup_old_s3_objects():

bucket_name = current_app.config["CSV_UPLOAD_BUCKET"]["bucket"]
bucket_name = get_bucket_name()

s3_client = get_s3_client()
# Our reports only support 7 days, but can be scheduled 3 days in advance
# Use 14 day for the v1.0 version of this behavior
time_limit = aware_utcnow() - datetime.timedelta(days=14)
try:
response = s3_client.list_objects_v2(Bucket=bucket_name)
print(f"RESPONSE = {response}")
while True:
for obj in response.get("Contents", []):
if obj["LastModified"] <= time_limit:
Expand Down
14 changes: 14 additions & 0 deletions tests/app/aws/test_s3.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
from botocore.exceptions import ClientError

from app.aws.s3 import (
cleanup_old_s3_objects,
file_exists,
get_job_from_s3,
get_personalisation_from_s3,
Expand All @@ -14,6 +15,7 @@
remove_s3_object,
)
from app.utils import utc_now
from notifications_utils import aware_utcnow

default_access_key = getenv("CSV_AWS_ACCESS_KEY_ID")
default_secret_key = getenv("CSV_AWS_SECRET_ACCESS_KEY")
Expand All @@ -28,6 +30,18 @@ def single_s3_object_stub(key="foo", last_modified=None):
}


def test_cleanup_old_s3_objects(mocker):
mocker.patch("app.aws.s3.get_bucket_name", return_value="Bucket")
mock_s3_client = mocker.Mock()
mocker.patch("app.aws.s3.get_s3_client", return_value=mock_s3_client)

mock_s3_client.list_objects_v2.return_value = {
"Contents": [{"Key": "A", "LastModified": aware_utcnow()}]
}
cleanup_old_s3_objects()
mock_s3_client.list_objects_v2.assert_called_with(Bucket="Bucket")


def test_get_s3_file_makes_correct_call(notify_api, mocker):
get_s3_mock = mocker.patch("app.aws.s3.get_s3_object")
get_s3_file(
Expand Down

0 comments on commit 1b98f45

Please sign in to comment.