more tests

This commit is contained in:
Kenneth Kehl
2025-06-30 09:09:16 -07:00
parent fc2a742596
commit 349caacf31

View File

@@ -1,7 +1,7 @@
import datetime import datetime
import os import os
import time import time
from datetime import timedelta from datetime import timedelta, timezone
from os import getenv from os import getenv
from unittest.mock import MagicMock, Mock, call 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): def test_list_s3_objects_pagination_and_filtering(monkeypatch):
recent = aware_utcnow() - datetime.timedelta(days=1) fake_now = datetime.datetime(2025, 6, 29, tzinfo=timezone.utc)
old = aware_utcnow() - datetime.timedelta(days=10) recent = fake_now - datetime.timedelta(days=1)
old = fake_now - datetime.timedelta(days=10)
client = MagicMock() client = MagicMock()
client.list_objectes_v2.side_effect = [ client.list_objectes_v2.side_effect = [
{ {
@@ -646,9 +647,29 @@ def test_list_s3_objects_pagination_and_filtering(monkeypatch):
{"Contents": [{"Key": "old", "LastModified": old}]}, {"Contents": [{"Key": "old", "LastModified": old}]},
] ]
monkeypatch.setattr(s3, "get_s3_client", lambda: client) monkeypatch.setattr(s3, "get_s3_client", lambda: client)
monkeypatch.setenv = lambda *a, **k: None
# set bucket name config # set bucket name config
s3.current_app = MagicMock() s3.current_app = MagicMock()
s3.current_app.config = {"CSV_UPLOAD_BUCKET": {"bucket": "b"}} s3.current_app.config = {"CSV_UPLOAD_BUCKET": {"bucket": "b"}}
s3.current_app.logger = MagicMock()
keys = list(s3.list_s3_objects()) keys = list(s3.list_s3_objects())
assert "new" in keys and "old" not in keys 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"}}