]> Cypherpunks.ru repositories - pyderasn.git/commitdiff
Cheaper dateutil.tz existence check
authorSergey Matveev <stargrave@stargrave.org>
Mon, 30 Aug 2021 15:54:20 +0000 (18:54 +0300)
committerSergey Matveev <stargrave@stargrave.org>
Mon, 30 Aug 2021 16:14:48 +0000 (19:14 +0300)
pyderasn.py
tests/test_pyderasn.py

index 82021efab0391507dfda7e3d53402d71850cc037..d50415b962d078bab5ce192910bc86664d454127 100755 (executable)
@@ -1181,9 +1181,9 @@ except ImportError:  # pragma: no cover
         return what
 
 try:
-    from dateutil.tz import tzutc
+    from dateutil.tz import UTC as tzUTC
 except ImportError:  # pragma: no cover
-    tzutc = None
+    tzUTC = "missing"
 
 
 __version__ = "9.1"
@@ -5248,11 +5248,12 @@ class UTCTime(VisibleString):
         return self._value
 
     def totzdatetime(self):
-        if tzutc is None:
+        try:
+            return self._value.replace(tzinfo=tzUTC)
+        except TypeError as err:
             raise NotImplementedError(
                 "Package python-dateutil is required to use this feature",
-            )
-        return self._value.replace(tzinfo=tzutc())
+            ) from err
 
     def __repr__(self):
         return pp_console_row(next(self.pps()))
index f31967375c2f0e123051ebed97f071941ce22367..4febf7400a328699bba1d8d3cc17da131109df8f 100644 (file)
@@ -34,7 +34,6 @@ from time import time
 from unittest import TestCase
 from unittest.mock import patch
 
-from dateutil.tz import tzutc
 from dateutil.tz import UTC
 from hypothesis import assume
 from hypothesis import given
@@ -5065,15 +5064,12 @@ class TestUTCTime(TimeMixin, CommonMixin, TestCase):
             UTCTime(datetime(2000, 1, 1, 1, tzinfo=UTC))
 
     def test_raises_if_no_dateutil(self):
-        with patch("pyderasn.tzutc", new=None):
-            with self.assertRaisesRegex(
-                NotImplementedError,
-                "Package python-dateutil is required to use this feature",
-            ):
+        with patch("pyderasn.tzUTC", new="missing"):
+            with self.assertRaisesRegex(NotImplementedError, "dateutil"):
                 UTCTime(datetime.now()).totzdatetime()
 
     def test_tzinfo_gives_datetime_with_tzutc_tzinfo(self):
-        self.assertEqual(UTCTime(datetime.now()).totzdatetime().tzinfo, tzutc())
+        self.assertEqual(UTCTime(datetime.now()).totzdatetime().tzinfo, UTC)
 
 
 @composite