|
12 | 12 | # See the License for the specific language governing permissions and
|
13 | 13 | # limitations under the License.
|
14 | 14 |
|
15 |
| -import datetime |
| 15 | +from collections import UserDict |
| 16 | +from datetime import datetime, timedelta, timezone |
16 | 17 | from unittest.mock import MagicMock, Mock, patch
|
17 | 18 |
|
18 | 19 | import flask
|
@@ -52,23 +53,26 @@ def test_connection_pooling_404(app):
|
52 | 53 |
|
53 | 54 |
|
54 | 55 | def test_avoid_infinite_retries(capsys):
|
55 |
| - now = datetime.datetime.now() |
| 56 | + now = datetime.now(timezone.utc) |
56 | 57 |
|
57 |
| - with patch('main.datetime', wraps=datetime.datetime) as datetime_mock: |
| 58 | + with patch('main.datetime', wraps=datetime) as datetime_mock: |
58 | 59 | datetime_mock.now = Mock(return_value=now)
|
59 |
| - old_event = Mock( |
60 |
| - timestamp=(now - datetime.timedelta(seconds=15)).isoformat()) |
61 |
| - young_event = Mock( |
62 |
| - timestamp=(now - datetime.timedelta(seconds=5)).isoformat()) |
63 |
| - context = Mock(event_id='fake_event_id') |
64 | 60 |
|
65 |
| - main.avoid_infinite_retries(old_event, context) |
| 61 | + old_context = UserDict() |
| 62 | + old_context.timestamp = (now - timedelta(seconds=15)).isoformat() |
| 63 | + old_context.event_id = 'old_event_id' |
| 64 | + |
| 65 | + young_context = UserDict() |
| 66 | + young_context.timestamp = (now - timedelta(seconds=5)).isoformat() |
| 67 | + young_context.event_id = 'young_event_id' |
| 68 | + |
| 69 | + main.avoid_infinite_retries(None, old_context) |
66 | 70 | out, _ = capsys.readouterr()
|
67 |
| - assert 'Dropped {} (age 15000.0ms)'.format(context.event_id) in out |
| 71 | + assert f"Dropped {old_context.event_id} (age 15000.0ms)" in out |
68 | 72 |
|
69 |
| - main.avoid_infinite_retries(young_event, context) |
| 73 | + main.avoid_infinite_retries(None, young_context) |
70 | 74 | out, _ = capsys.readouterr()
|
71 |
| - assert 'Processed {} (age 5000.0ms)'.format(context.event_id) in out |
| 75 | + assert f"Processed {young_context.event_id} (age 5000.0ms)" in out |
72 | 76 |
|
73 | 77 |
|
74 | 78 | def test_retry_or_not():
|
|
0 commit comments