test: strengthen #58 dedup trap to assert filtering
The trap mocked issue.filter to return only issue 2, so result == [2] would pass even with a wrong fix that suppresses TypeError but keeps all entries. Now the API mock returns both issues; only correct filtering of the pre-cutoff time entry keeps the result at [2]. Refs #67, #58
This commit is contained in:
@@ -779,12 +779,21 @@ def test_dedup_normalizes_naive_created_on_to_utc(mock_redmine_class):
|
||||
|
||||
mock_redmine.time_entry.filter.return_value = [e_old, e_new]
|
||||
|
||||
mock_issue1 = mock.MagicMock()
|
||||
mock_issue1.id = 1
|
||||
mock_issue1.project = "P"
|
||||
mock_issue1.subject = "T"
|
||||
mock_issue1.status = "New"
|
||||
mock_issue2 = mock.MagicMock()
|
||||
mock_issue2.id = 2
|
||||
mock_issue2.project = "P"
|
||||
mock_issue2.subject = "T"
|
||||
mock_issue2.status = "New"
|
||||
mock_redmine.issue.filter.return_value = [mock_issue2]
|
||||
# API возвращает обе задачи: issue 1 попадёт в результат, только если
|
||||
# её time entry не отсечён дедупликацией. Корректный фикс #58 отсекает
|
||||
# e_old (created_on/updated_on < cutoff) -> [2]; неправильный фикс
|
||||
# "погасить TypeError и оставить всё" даст [1, 2] и тест упадёт.
|
||||
mock_redmine.issue.filter.return_value = [mock_issue1, mock_issue2]
|
||||
|
||||
result = fetch_issues_with_spent_time(
|
||||
"2026-07-01", "2026-07-01", dedup_before=dedup_cutoff
|
||||
|
||||
Reference in New Issue
Block a user