def colored(what, *args, **kwargs):
return what
-__version__ = "9.0"
+try:
+ from dateutil.tz import tzutc
+except ImportError: # pragma: no cover
+ tzutc = None
+
+
+__version__ = "9.1"
__all__ = (
"agg_octet_string",
def todatetime(self):
return self._value
+ def totzdatetime(self):
+ if tzutc is None:
+ raise NotImplementedError(
+ "Package python-dateutil is required to use this feature",
+ )
+ return self._value.replace(tzinfo=tzutc())
+
def __repr__(self):
return pp_console_row(next(self.pps()))
"Topic :: Software Development :: Libraries :: Python Modules",
],
py_modules=["pyderasn"],
+ extras_require={
+ "utc": ["python-dateutil~=2.8"],
+ },
)
from time import mktime
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
with self.assertRaisesRegex(ValueError, "only naive"):
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",
+ ):
+ UTCTime(datetime.now()).totzdatetime()
+
+ def test_tzinfo_gives_datetime_with_tzutc_tzinfo(self):
+ self.assertEqual(UTCTime(datetime.now()).totzdatetime().tzinfo, tzutc())
+
@composite
def tlv_value_strategy(draw):