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
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
self.assertSequenceEqual(obj.impl, impl_tag)
self.assertFalse(obj.expled)
- @given(binary())
+ @given(binary(min_size=1))
def test_expl_inherited(self, expl_tag):
class Inherited(self.base_klass):
expl = expl_tag
list(obj.pps())
pprint(obj, big_blobs=True, with_decode_path=True)
- @given(booleans(), booleans(), binary(), binary())
+ @given(booleans(), booleans(), binary(min_size=1), binary(min_size=1))
def test_comparison(self, value1, value2, tag1, tag2):
for klass in (Boolean, BooleanInherited):
obj1 = klass(value1)
pprint(obj, big_blobs=True, with_decode_path=True)
hash(obj)
- @given(integers(), integers(), binary(), binary())
+ @given(integers(), integers(), binary(min_size=1), binary(min_size=1))
def test_comparison(self, value1, value2, tag1, tag2):
for klass in (Integer, IntegerInherited):
obj1 = klass(value1)
list(obj.pps())
pprint(obj, big_blobs=True, with_decode_path=True)
- @given(binary(), binary())
+ @given(binary(min_size=1), binary(min_size=1))
def test_comparison(self, tag1, tag2):
for klass in (Null, NullInherited):
obj1 = klass(impl=tag1)
pprint(obj, big_blobs=True, with_decode_path=True)
hash(obj)
- @given(oid_strategy(), oid_strategy(), binary(), binary())
+ @given(oid_strategy(), oid_strategy(), binary(min_size=1), binary(min_size=1))
def test_comparison(self, value1, value2, tag1, tag2):
for klass in (ObjectIdentifier, ObjectIdentifierInherited):
obj1 = klass(value1)
list(obj.pps())
pprint(obj, big_blobs=True, with_decode_path=True)
- @given(integers(), integers(), binary(), binary())
+ @given(integers(), integers(), binary(min_size=1), binary(min_size=1))
def test_comparison(self, value1, value2, tag1, tag2):
class E(Enumerated):
schema = (
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()),
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)
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",
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",
(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):
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)
pprint(obj, big_blobs=True, with_decode_path=True)
self.assertSequenceEqual(obj.encode(), integer_encoded)
- @given(binary(), binary())
+ @given(binary(min_size=1), binary(min_size=1))
def test_comparison(self, value1, value2):
for klass in (Any, AnyInherited):
obj1 = klass(value1)
min_size=1,
)).items())
tags = [tag_encode(tag) for tag in d.draw(sets(
- integers(min_value=0),
+ integers(min_value=1),
min_size=len(_schema),
max_size=len(_schema),
))]
def test_missing_from_spec(self, d):
names = list(d.draw(sets(text_letters(), min_size=2)))
tags = [tag_encode(tag) for tag in d.draw(sets(
- integers(min_value=0),
+ integers(min_value=1),
min_size=len(names),
max_size=len(names),
))]
with assertRaisesRegex(self, ValueError, "schema must be specified"):
self.base_klass.__mro__[1]()
- @given(booleans(), booleans(), binary(), binary())
+ @given(booleans(), booleans(), binary(min_size=1), binary(min_size=1))
def test_comparison(self, value1, value2, tag1, tag2):
class SeqOf(self.base_klass):
schema = Boolean()