diff options
Diffstat (limited to 't/unit/utils')
| -rw-r--r-- | t/unit/utils/test_amq_manager.py | 2 | ||||
| -rw-r--r-- | t/unit/utils/test_compat.py | 10 | ||||
| -rw-r--r-- | t/unit/utils/test_debug.py | 2 | ||||
| -rw-r--r-- | t/unit/utils/test_div.py | 2 | ||||
| -rw-r--r-- | t/unit/utils/test_encoding.py | 2 | ||||
| -rw-r--r-- | t/unit/utils/test_functional.py | 2 | ||||
| -rw-r--r-- | t/unit/utils/test_imports.py | 2 | ||||
| -rw-r--r-- | t/unit/utils/test_json.py | 60 | ||||
| -rw-r--r-- | t/unit/utils/test_objects.py | 2 | ||||
| -rw-r--r-- | t/unit/utils/test_scheduling.py | 2 | ||||
| -rw-r--r-- | t/unit/utils/test_time.py | 2 | ||||
| -rw-r--r-- | t/unit/utils/test_url.py | 2 | ||||
| -rw-r--r-- | t/unit/utils/test_utils.py | 2 | ||||
| -rw-r--r-- | t/unit/utils/test_uuid.py | 6 |
14 files changed, 72 insertions, 26 deletions
diff --git a/t/unit/utils/test_amq_manager.py b/t/unit/utils/test_amq_manager.py index ca6adb6e..22fb9355 100644 --- a/t/unit/utils/test_amq_manager.py +++ b/t/unit/utils/test_amq_manager.py @@ -1,3 +1,5 @@ +from __future__ import annotations + from unittest.mock import patch import pytest diff --git a/t/unit/utils/test_compat.py b/t/unit/utils/test_compat.py index d3159b76..d1fa0055 100644 --- a/t/unit/utils/test_compat.py +++ b/t/unit/utils/test_compat.py @@ -1,3 +1,5 @@ +from __future__ import annotations + import socket import sys import types @@ -14,10 +16,14 @@ def test_entrypoints(): 'kombu.utils.compat.importlib_metadata.entry_points', create=True ) as iterep: eps = [Mock(), Mock()] - iterep.return_value = {'kombu.test': eps} + iterep.return_value = ( + {'kombu.test': eps} if sys.version_info < (3, 10) else eps) assert list(entrypoints('kombu.test')) - iterep.assert_called_with() + if sys.version_info < (3, 10): + iterep.assert_called_with() + else: + iterep.assert_called_with(group='kombu.test') eps[0].load.assert_called_with() eps[1].load.assert_called_with() diff --git a/t/unit/utils/test_debug.py b/t/unit/utils/test_debug.py index 020bc849..a4955507 100644 --- a/t/unit/utils/test_debug.py +++ b/t/unit/utils/test_debug.py @@ -1,3 +1,5 @@ +from __future__ import annotations + import logging from unittest.mock import Mock, patch diff --git a/t/unit/utils/test_div.py b/t/unit/utils/test_div.py index b29b6119..a6e988e8 100644 --- a/t/unit/utils/test_div.py +++ b/t/unit/utils/test_div.py @@ -1,3 +1,5 @@ +from __future__ import annotations + import pickle from io import BytesIO, StringIO diff --git a/t/unit/utils/test_encoding.py b/t/unit/utils/test_encoding.py index 26e3ef36..81358a7a 100644 --- a/t/unit/utils/test_encoding.py +++ b/t/unit/utils/test_encoding.py @@ -1,3 +1,5 @@ +from __future__ import annotations + import sys from contextlib import contextmanager from unittest.mock import patch diff --git a/t/unit/utils/test_functional.py b/t/unit/utils/test_functional.py index 73a98e52..26f28733 100644 --- a/t/unit/utils/test_functional.py +++ b/t/unit/utils/test_functional.py @@ -1,3 +1,5 @@ +from __future__ import annotations + import pickle from itertools import count from unittest.mock import Mock diff --git a/t/unit/utils/test_imports.py b/t/unit/utils/test_imports.py index 8a4873df..8f515bd8 100644 --- a/t/unit/utils/test_imports.py +++ b/t/unit/utils/test_imports.py @@ -1,3 +1,5 @@ +from __future__ import annotations + from unittest.mock import Mock import pytest diff --git a/t/unit/utils/test_json.py b/t/unit/utils/test_json.py index 6af1c13b..8dcc7e32 100644 --- a/t/unit/utils/test_json.py +++ b/t/unit/utils/test_json.py @@ -1,14 +1,17 @@ +from __future__ import annotations + +import uuid from collections import namedtuple from datetime import datetime from decimal import Decimal -from unittest.mock import MagicMock, Mock -from uuid import uuid4 import pytest import pytz +from hypothesis import given, settings +from hypothesis import strategies as st from kombu.utils.encoding import str_to_bytes -from kombu.utils.json import _DecodeError, dumps, loads +from kombu.utils.json import dumps, loads class Custom: @@ -21,35 +24,54 @@ class Custom: class test_JSONEncoder: - + @pytest.mark.freeze_time("2015-10-21") def test_datetime(self): now = datetime.utcnow() now_utc = now.replace(tzinfo=pytz.utc) - stripped = datetime(*now.timetuple()[:3]) - serialized = loads(dumps({ + + original = { 'datetime': now, 'tz': now_utc, 'date': now.date(), - 'time': now.time()}, - )) + 'time': now.time(), + } + + serialized = loads(dumps(original)) + + assert serialized == original + + @given(message=st.binary()) + @settings(print_blob=True) + def test_binary(self, message): + serialized = loads(dumps({ + 'args': (message,), + })) assert serialized == { - 'datetime': now.isoformat(), - 'tz': '{}Z'.format(now_utc.isoformat().split('+', 1)[0]), - 'time': now.time().isoformat(), - 'date': stripped.isoformat(), + 'args': [message], } def test_Decimal(self): - d = Decimal('3314132.13363235235324234123213213214134') - assert loads(dumps({'d': d})), {'d': str(d)} + original = {'d': Decimal('3314132.13363235235324234123213213214134')} + serialized = loads(dumps(original)) + + assert serialized == original def test_namedtuple(self): Foo = namedtuple('Foo', ['bar']) assert loads(dumps(Foo(123))) == [123] def test_UUID(self): - id = uuid4() - assert loads(dumps({'u': id})), {'u': str(id)} + constructors = [ + uuid.uuid1, + lambda: uuid.uuid3(uuid.NAMESPACE_URL, "https://example.org"), + uuid.uuid4, + lambda: uuid.uuid5(uuid.NAMESPACE_URL, "https://example.org"), + ] + for constructor in constructors: + id = constructor() + loaded_value = loads(dumps({'u': id})) + assert loaded_value == {'u': id} + assert loaded_value["u"].version == id.version def test_default(self): with pytest.raises(TypeError): @@ -81,9 +103,3 @@ class test_dumps_loads: assert loads( str_to_bytes(dumps({'x': 'z'})), decode_bytes=True) == {'x': 'z'} - - def test_loads_DecodeError(self): - _loads = Mock(name='_loads') - _loads.side_effect = _DecodeError( - MagicMock(), MagicMock(), MagicMock()) - assert loads(dumps({'x': 'z'}), _loads=_loads) == {'x': 'z'} diff --git a/t/unit/utils/test_objects.py b/t/unit/utils/test_objects.py index 93a88b4f..b9f1484a 100644 --- a/t/unit/utils/test_objects.py +++ b/t/unit/utils/test_objects.py @@ -1,3 +1,5 @@ +from __future__ import annotations + from kombu.utils.objects import cached_property diff --git a/t/unit/utils/test_scheduling.py b/t/unit/utils/test_scheduling.py index 44cf01a2..7bc76b96 100644 --- a/t/unit/utils/test_scheduling.py +++ b/t/unit/utils/test_scheduling.py @@ -1,3 +1,5 @@ +from __future__ import annotations + from unittest.mock import Mock import pytest diff --git a/t/unit/utils/test_time.py b/t/unit/utils/test_time.py index 660ae8ec..a8f7de0f 100644 --- a/t/unit/utils/test_time.py +++ b/t/unit/utils/test_time.py @@ -1,3 +1,5 @@ +from __future__ import annotations + import pytest from kombu.utils.time import maybe_s_to_ms diff --git a/t/unit/utils/test_url.py b/t/unit/utils/test_url.py index 71ea0f9b..f219002b 100644 --- a/t/unit/utils/test_url.py +++ b/t/unit/utils/test_url.py @@ -1,3 +1,5 @@ +from __future__ import annotations + try: from urllib.parse import urlencode except ImportError: diff --git a/t/unit/utils/test_utils.py b/t/unit/utils/test_utils.py index d118d46e..08f95083 100644 --- a/t/unit/utils/test_utils.py +++ b/t/unit/utils/test_utils.py @@ -1,3 +1,5 @@ +from __future__ import annotations + import pytest from kombu import version_info_t diff --git a/t/unit/utils/test_uuid.py b/t/unit/utils/test_uuid.py index 05d89125..bc69474a 100644 --- a/t/unit/utils/test_uuid.py +++ b/t/unit/utils/test_uuid.py @@ -1,12 +1,14 @@ +from __future__ import annotations + from kombu.utils.uuid import uuid class test_UUID: - def test_uuid4(self): + def test_uuid4(self) -> None: assert uuid() != uuid() - def test_uuid(self): + def test_uuid(self) -> None: i1 = uuid() i2 = uuid() assert isinstance(i1, str) |
