mirror of
https://github.com/GSA/notifications-api.git
synced 2026-02-24 11:59:57 -05:00
more tests
This commit is contained in:
@@ -1,7 +1,7 @@
|
||||
import datetime
|
||||
import os
|
||||
import time
|
||||
from datetime import timedelta
|
||||
from datetime import timedelta, timezone
|
||||
from os import getenv
|
||||
from unittest.mock import MagicMock, Mock, call
|
||||
|
||||
@@ -635,8 +635,9 @@ def test_set_and_get_job_cache_and_expiry(monkeypatch):
|
||||
|
||||
|
||||
def test_list_s3_objects_pagination_and_filtering(monkeypatch):
|
||||
recent = aware_utcnow() - datetime.timedelta(days=1)
|
||||
old = aware_utcnow() - datetime.timedelta(days=10)
|
||||
fake_now = datetime.datetime(2025, 6, 29, tzinfo=timezone.utc)
|
||||
recent = fake_now - datetime.timedelta(days=1)
|
||||
old = fake_now - datetime.timedelta(days=10)
|
||||
client = MagicMock()
|
||||
client.list_objectes_v2.side_effect = [
|
||||
{
|
||||
@@ -646,9 +647,29 @@ def test_list_s3_objects_pagination_and_filtering(monkeypatch):
|
||||
{"Contents": [{"Key": "old", "LastModified": old}]},
|
||||
]
|
||||
monkeypatch.setattr(s3, "get_s3_client", lambda: client)
|
||||
monkeypatch.setenv = lambda *a, **k: None
|
||||
|
||||
# set bucket name config
|
||||
s3.current_app = MagicMock()
|
||||
s3.current_app.config = {"CSV_UPLOAD_BUCKET": {"bucket": "b"}}
|
||||
s3.current_app.logger = MagicMock()
|
||||
keys = list(s3.list_s3_objects())
|
||||
assert "new" in keys and "old" not in keys
|
||||
|
||||
|
||||
def test_read_s3_file_populates_cache(monkeypatch):
|
||||
fake_csv = "Phone number,Name\r\n+1-555-1234,Alice"
|
||||
obj = MagicMock()
|
||||
obj.get.return_value = {"Body": MagicMock(read=lambda: fake_csv.encode())}
|
||||
s3res = MagicMock(Object=lambda b, o: obj)
|
||||
monkeypatch.setattr(s3, "get_job_cache", lambda k: None)
|
||||
monkeypatch.setattr(s3, "extract_phones", lambda job, sid, jid: {"0", "15551234"})
|
||||
monkeypatch.setattr(
|
||||
s3, "extract_personalisation", lambda job: {0: {"Name": "Alice"}}
|
||||
)
|
||||
monkeypatch.setattr(
|
||||
s3, "set_job_cache", lambda k, v: job_cache.update({k: (v, time.time() + 1)})
|
||||
)
|
||||
s3.read_s3_file("bucket" < "service-XX-notify/66.csv", s3res)
|
||||
assert job_cache.get("66")[0].startswith("Phone number")
|
||||
assert job_cache.get("66_phones")[0] == {"0": "15551234"}
|
||||
assert job_cache.get("66_personalisation")[0] == {0: {"Name": "Alice"}}
|
||||
|
||||
Reference in New Issue
Block a user