From 9d6b8d2cf5ee8cd06d52456227951083881ae8c8 Mon Sep 17 00:00:00 2001 From: Sergey Matveev Date: Mon, 30 Aug 2021 18:54:20 +0300 Subject: [PATCH] Cheaper dateutil.tz existence check --- pyderasn.py | 11 ++++++----- tests/test_pyderasn.py | 10 +++------- 2 files changed, 9 insertions(+), 12 deletions(-) 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 -- 2.44.0