From: Sergey Matveev Date: Mon, 30 Aug 2021 15:54:20 +0000 (+0300) Subject: Cheaper dateutil.tz existence check X-Git-Tag: 9.1~5 X-Git-Url: http://www.git.cypherpunks.ru/?p=pyderasn.git;a=commitdiff_plain;h=9d6b8d2cf5ee8cd06d52456227951083881ae8c8;hp=c6cf876ed3979538eeb0f0df60512c3feedb4715 Cheaper dateutil.tz existence check --- diff --git a/pyderasn.py b/pyderasn.py index 82021ef..d50415b 100755 --- a/pyderasn.py +++ b/pyderasn.py @@ -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())) diff --git a/tests/test_pyderasn.py b/tests/test_pyderasn.py index f319673..4febf74 100644 --- a/tests/test_pyderasn.py +++ b/tests/test_pyderasn.py @@ -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