Skip to content

Commit f29214e

Browse files
committed
refined logging
1 parent 6f344ff commit f29214e

File tree

2 files changed

+21
-17
lines changed

2 files changed

+21
-17
lines changed

src/jobs/strikes_handler.py

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
import logging
22
from src.utils.log_setup import logger
33

4-
54
class StrikesHandler:
65
def __init__(self, job_name, arr, max_strikes):
76
self.job_name = job_name
@@ -35,15 +34,20 @@ def log_change(self, recovered, paused, affected_items):
3534
if strikes == 1:
3635
added.append(d_id)
3736
elif strikes > 1:
38-
incremented.append(f"{d_id} ({strikes}x)")
37+
incremented.append(f"{d_id} ({strikes}/{self.max_strikes})")
3938

4039
removed = list(affected_items.keys())
4140
logger.debug(
42-
"Strike status changed | Added: %s | Incremented: %s | Recovered: %s | Tracking Paused: %s | Removed: %s",
41+
"Strike status changed | %s Added: %s | %s Incremented (strikes): %s | %s Recovered: %s | %s Tracking Paused: %s | %s Removed: %s",
42+
len(added) or 0,
4343
added or "None",
44+
len(incremented) or 0,
4445
incremented or "None",
46+
len(recovered) or 0,
4547
recovered or "None",
48+
len(paused) or 0,
4649
paused or "None",
50+
len(removed) or 0,
4751
removed or "None",
4852
)
4953
return added, incremented, recovered, removed, paused

tests/jobs/test_strikes_handler.py

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import logging
12
from unittest.mock import MagicMock, patch
23

34
import pytest
@@ -94,35 +95,34 @@ def test_apply_strikes_and_filter(
9495
assert "HASH1" not in result
9596

9697

97-
def test_log_change_logs_expected_strike_changes():
98+
def test_log_change_logs_expected_strike_changes(caplog):
9899
handler = StrikesHandler(job_name="remove_stalled", arr=MagicMock(), max_strikes=3)
99100
handler.tracker = MagicMock()
100101
handler.tracker.defective = {
101102
"remove_stalled": {
102-
"hash_new": {"title": "A", "strikes": 1}, # should show in added
103-
"hash_inc": {"title": "B", "strikes": 2}, # should show in incremented
103+
"hash_new": {"title": "A", "strikes": 1}, # should show in added
104+
"hash_inc": {"title": "B", "strikes": 2}, # should show in incremented
104105
"hash_paused": {"title": "C", "strikes": 2}, # should show in paused
105106
}
106107
}
108+
107109
recovered = ["hash_old"]
108110
paused = ["hash_paused"]
109111
affected = {"hash_gone": {"title": "Gone"}}
110112

111-
with patch("src.jobs.strikes_handler.logger") as mock_logger:
113+
with caplog.at_level(logging.DEBUG, logger="src.utils.log_setup"):
112114
handler.log_change(recovered, paused, affected)
113115

114-
mock_logger.debug.assert_called_once()
115-
args, _ = mock_logger.debug.call_args
116-
117-
log_msg = args[0]
118-
# Check keywords in the message string
119-
for keyword in ["Added", "Incremented", "Recovered", "Removed", "Paused"]:
120-
assert keyword in log_msg
116+
log_messages = "\n".join(record.message for record in caplog.records)
121117

122-
# Check keys in the entire call arguments (as string)
123-
for key in ["hash_new", "hash_inc", "hash_old", "hash_gone", "hash_paused"]:
124-
assert key in str(args)
118+
# Check category keywords exist
119+
for keyword in ["Added", "Incremented", "Recovered", "Removed", "Paused"]:
120+
assert keyword in log_messages
125121

122+
# Check actual IDs exist
123+
for key in ["hash_new", "hash_inc", "hash_old", "hash_gone", "hash_paused"]:
124+
assert key in log_messages
125+
126126

127127
@pytest.mark.parametrize(
128128
"max_strikes, initial_strikes, expected_removed_after_two_runs",

0 commit comments

Comments
 (0)