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 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"}}