datetime(2010, 1, 2, 3, 4, 5, 0),
)
+ def test_encoding(self):
+ raw = GeneralizedTime(b"20100102030405Z").encode()
+ with assertRaisesRegex(self, DecodeError, "encoding"):
+ GeneralizedTime().decode(raw.replace(b"201001", "привет".encode("utf-8")))
+ with self.assertRaises(DecodeError):
+ GeneralizedTime().decode(raw.replace(b"20100", b"hello"))
+
class TestUTCTime(TimeMixin, CommonMixin, TestCase):
base_klass = UTCTime
1900 + year,
)
+ def test_encoding(self):
+ raw = UTCTime(b"910506234540Z").encode()
+ with assertRaisesRegex(self, DecodeError, "encoding"):
+ UTCTime().decode(raw.replace(b"910506", "привет".encode("utf-8")))
+ with self.assertRaises(DecodeError):
+ UTCTime().decode(raw.replace(b"91050", b"hello"))
+
@composite
def any_values_strategy(draw, do_expl=False):
def choice_values_strategy(draw, value_required=False, schema=None, do_expl=False):
if schema is None:
names = list(draw(sets(text_letters(), min_size=1, max_size=5)))
- tags = [tag_encode(tag) for tag in draw(sets(
- integers(min_value=0),
+ tags = [{tag_type: tag_value} for tag_type, tag_value in draw(sets(
+ one_of(
+ tuples(just("impl"), integers(min_value=0).map(tag_encode)),
+ tuples(just("expl"), integers(min_value=0).map(tag_ctxp)),
+ ),
min_size=len(names),
max_size=len(names),
))]
- schema = [(name, Integer(impl=tag)) for name, tag in zip(names, tags)]
+ schema = [
+ (name, Integer(**tag_kwargs))
+ for name, tag_kwargs in zip(names, tags)
+ ]
value = None
if value_required or draw(booleans()):
value = draw(tuples(
self.assertEqual(obj_decoded.expl_offset, offset)
self.assertSequenceEqual(
obj_expled_encoded[
- obj_decoded.value.offset - offset:
- obj_decoded.value.offset + obj_decoded.value.tlvlen - offset
+ obj_decoded.value.fulloffset - offset:
+ obj_decoded.value.fulloffset + obj_decoded.value.fulllen - offset
],
obj_encoded,
)