X-Git-Url: http://www.git.cypherpunks.ru/?a=blobdiff_plain;f=tests%2Ftest_pyderasn.py;h=5ba9adf75a91928a109d3bf33b01b1a3f21b94a0;hb=90725be7bf59abd3ad67d62d28e9717826e63958;hp=d396c64ba300f610b4f1bafa31d6e1188ea9a6a0;hpb=517f9ab0bb42c9d89fade2aa69ec5da9501efc0a;p=pyderasn.git diff --git a/tests/test_pyderasn.py b/tests/test_pyderasn.py index d396c64..5ba9adf 100644 --- a/tests/test_pyderasn.py +++ b/tests/test_pyderasn.py @@ -20,6 +20,7 @@ from copy import deepcopy from datetime import datetime from datetime import timedelta from importlib import import_module +from os import environ from random import random from string import ascii_letters from string import digits @@ -126,8 +127,10 @@ from pyderasn import VideotexString from pyderasn import VisibleString +max_examples = environ.get("MAX_EXAMPLES") settings.register_profile("local", settings( deadline=5000, + **({"max_examples": int(max_examples)} if max_examples else {}) )) settings.load_profile("local") LONG_TEST_MAX_EXAMPLES = settings().max_examples * 4 @@ -4085,14 +4088,14 @@ class TestGeneralizedTime(TimeMixin, CommonMixin, TestCase): dt -= timedelta(seconds=sign * 60 * offset_minute) data += "%s%02d" % (minutes_separator, offset_minute) data = data.encode("ascii") - data = GeneralizedTime.tag_default + len_encode(len(data)) + data + data_der = GeneralizedTime.tag_default + len_encode(len(data)) + data try: - GeneralizedTime().decod(data) + GeneralizedTime().decod(data_der) except DecodeError: dered = False else: dered = True - obj = GeneralizedTime().decod(data, ctx={"bered": True}) + obj = GeneralizedTime().decod(data_der, ctx={"bered": True}) if dt.year > 1970: self.assertEqual( mktime(obj.todatetime().timetuple()), @@ -4102,7 +4105,8 @@ class TestGeneralizedTime(TimeMixin, CommonMixin, TestCase): self.assertEqual(obj.todatetime().timestamp(), dt.timestamp()) self.assertEqual(obj.ber_encoded, not dered) self.assertEqual(obj.bered, not dered) - self.assertEqual(obj.encode() == data, dered) + self.assertEqual(obj.ber_raw, None if dered else data) + self.assertEqual(obj.encode() == data_der, dered) repr(obj) bytes(obj) str(obj) @@ -4304,6 +4308,14 @@ class TestGeneralizedTime(TimeMixin, CommonMixin, TestCase): b"200001020304+5Z", b"20000102030405.+6Z", b"20000102030405.-6Z", + b"_2000102030405Z", + b"2000_102030405Z", + b"200001_2030405Z", + b"20000102_30405Z", + b"2000010203_405Z", + b"200001020304_5Z", + b"20000102030405._6Z", + b"20000102030405.6_Z", b" 2000102030405Z", b"2000 102030405Z", b"200001 2030405Z", @@ -4405,6 +4417,13 @@ class TestUTCTime(TimeMixin, CommonMixin, TestCase): b"000102+30405Z", b"00010203+405Z", b"0001020304+5Z", + b"_10102030405Z", + b"00_102030405Z", + b"0001_2030405Z", + b"000102_30405Z", + b"00010203_405Z", + b"0001020304_5Z", + b"00010203045_Z", b" 10102030405Z", b"00 102030405Z", b"0001 2030405Z", @@ -4428,13 +4447,14 @@ class TestUTCTime(TimeMixin, CommonMixin, TestCase): (b"0101021200Z", datetime(2001, 1, 2, 12)), (b"0101020700-0500", datetime(2001, 1, 2, 12)), )): - data = UTCTime.tag_default + len_encode(len(data)) + data - obj = UTCTime().decod(data, ctx={"bered": True}) + data_der = UTCTime.tag_default + len_encode(len(data)) + data + obj = UTCTime().decod(data_der, ctx={"bered": True}) self.assertEqual(obj, dt) self.assertEqual(obj.todatetime(), dt) self.assertTrue(obj.ber_encoded) self.assertTrue(obj.bered) - self.assertNotEqual(obj.encode(), data) + self.assertEqual(obj.ber_raw, data) + self.assertNotEqual(obj.encode(), data_der) repr(obj) def test_go_vectors_valid_ber(self): @@ -4488,13 +4508,14 @@ class TestUTCTime(TimeMixin, CommonMixin, TestCase): data += "+" data += "%02d%02d" % (offset_hour, offset_minute) data = data.encode("ascii") - data = UTCTime.tag_default + len_encode(len(data)) + data - obj = UTCTime().decod(data, ctx={"bered": True}) + data_der = UTCTime.tag_default + len_encode(len(data)) + data + obj = UTCTime().decod(data_der, ctx={"bered": True}) self.assertEqual(obj, dt) self.assertEqual(obj.todatetime(), dt) self.assertEqual(obj.ber_encoded, not dered) self.assertEqual(obj.bered, not dered) - self.assertEqual(obj.encode() == data, dered) + self.assertEqual(obj.ber_raw, None if dered else data) + self.assertEqual(obj.encode() == data_der, dered) repr(obj) bytes(obj) str(obj)