summaryrefslogtreecommitdiff
path: root/t/unit/utils
diff options
context:
space:
mode:
Diffstat (limited to 't/unit/utils')
-rw-r--r--t/unit/utils/test_amq_manager.py2
-rw-r--r--t/unit/utils/test_compat.py10
-rw-r--r--t/unit/utils/test_debug.py2
-rw-r--r--t/unit/utils/test_div.py2
-rw-r--r--t/unit/utils/test_encoding.py2
-rw-r--r--t/unit/utils/test_functional.py2
-rw-r--r--t/unit/utils/test_imports.py2
-rw-r--r--t/unit/utils/test_json.py60
-rw-r--r--t/unit/utils/test_objects.py2
-rw-r--r--t/unit/utils/test_scheduling.py2
-rw-r--r--t/unit/utils/test_time.py2
-rw-r--r--t/unit/utils/test_url.py2
-rw-r--r--t/unit/utils/test_utils.py2
-rw-r--r--t/unit/utils/test_uuid.py6
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)