]> Cypherpunks.ru repositories - pyderasn.git/blobdiff - tests/test_pyderasn.py
Add `totzdatetime` method to UTCTime
[pyderasn.git] / tests / test_pyderasn.py
index f48548ecfb925a1368917b0aacf6dc9c57147336..f31967375c2f0e123051ebed97f071941ce22367 100644 (file)
@@ -32,7 +32,9 @@ from string import whitespace
 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
@@ -5062,6 +5064,17 @@ class TestUTCTime(TimeMixin, CommonMixin, TestCase):
         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):
@@ -5937,7 +5950,7 @@ def sequences_strategy(draw, seq_klass):
     return seq_outer, expect_outers
 
 
-class SeqMixing(object):
+class SeqMixin(object):
     def test_invalid_value_type(self):
         with self.assertRaises(InvalidValueType) as err:
             self.base_klass(123)
@@ -6451,7 +6464,7 @@ class SeqMixing(object):
         self.assertTrue(decoded.bered)
 
 
-class TestSequence(SeqMixing, CommonMixin, TestCase):
+class TestSequence(SeqMixin, CommonMixin, TestCase):
     base_klass = Sequence
 
     @given(
@@ -6497,7 +6510,7 @@ class TestSequence(SeqMixing, CommonMixin, TestCase):
         self.assertEqual(seq["ok"], True)
 
 
-class TestSet(SeqMixing, CommonMixin, TestCase):
+class TestSet(SeqMixin, CommonMixin, TestCase):
     base_klass = Set
 
     @settings(max_examples=LONG_TEST_MAX_EXAMPLES)
@@ -6612,7 +6625,7 @@ def seqof_values_strategy(draw, schema=None, do_expl=False):
     )
 
 
-class SeqOfMixing(object):
+class SeqOfMixin(object):
     def test_invalid_value_type(self):
         with self.assertRaises(InvalidValueType) as err:
             self.base_klass(123)
@@ -7082,7 +7095,7 @@ class SeqOfMixing(object):
         self.assertTrue(decoded.bered)
 
 
-class TestSequenceOf(SeqOfMixing, CommonMixin, TestCase):
+class TestSequenceOf(SeqOfMixin, CommonMixin, TestCase):
     class SeqOf(SequenceOf):
         schema = "whatever"
     base_klass = SeqOf
@@ -7166,7 +7179,7 @@ class TestSequenceOf(SeqOfMixing, CommonMixin, TestCase):
         self.assertFalse(seqof.ready)
 
 
-class TestSetOf(SeqOfMixing, CommonMixin, TestCase):
+class TestSetOf(SeqOfMixin, CommonMixin, TestCase):
     class SeqOf(SetOf):
         schema = "whatever"
     base_klass = SeqOf