# License along with this program. If not, see
# <http://www.gnu.org/licenses/>.
+from copy import deepcopy
from datetime import datetime
from string import ascii_letters
from string import digits
decode_path_strat = lists(integers(), max_size=3).map(
lambda decode_path: tuple(str(dp) for dp in decode_path)
)
+ctx_dummy = dictionaries(integers(), integers(), min_size=2, max_size=4).example()
class TestHex(TestCase):
list(obj_expled.pps())
pprint(obj_expled, big_blobs=True, with_decode_path=True)
obj_expled_encoded = obj_expled.encode()
+ ctx_copied = deepcopy(ctx_dummy)
obj_decoded, tail = obj_expled.decode(
obj_expled_encoded + tail_junk,
offset=offset,
+ ctx=ctx_copied,
)
+ self.assertDictEqual(ctx_copied, ctx_dummy)
repr(obj_decoded)
list(obj_decoded.pps())
pprint(obj_decoded, big_blobs=True, with_decode_path=True)
list(obj_expled.pps())
pprint(obj_expled, big_blobs=True, with_decode_path=True)
obj_expled_encoded = obj_expled.encode()
+ ctx_copied = deepcopy(ctx_dummy)
obj_decoded, tail = obj_expled.decode(
obj_expled_encoded + tail_junk,
offset=offset,
+ ctx=ctx_copied,
)
+ self.assertDictEqual(ctx_copied, ctx_dummy)
repr(obj_decoded)
list(obj_decoded.pps())
pprint(obj_decoded, big_blobs=True, with_decode_path=True)
list(obj_expled.pps())
pprint(obj_expled, big_blobs=True, with_decode_path=True)
obj_expled_encoded = obj_expled.encode()
+ ctx_copied = deepcopy(ctx_dummy)
obj_decoded, tail = obj_expled.decode(
obj_expled_encoded + tail_junk,
offset=offset,
+ ctx=ctx_copied,
)
+ self.assertDictEqual(ctx_copied, ctx_dummy)
repr(obj_decoded)
list(obj_decoded.pps())
pprint(obj_decoded, big_blobs=True, with_decode_path=True)
list(obj_expled.pps())
pprint(obj_expled, big_blobs=True, with_decode_path=True)
obj_expled_encoded = obj_expled.encode()
+ ctx_copied = deepcopy(ctx_dummy)
obj_decoded, tail = obj_expled.decode(
obj_expled_encoded + tail_junk,
offset=offset,
+ ctx=ctx_copied,
)
+ self.assertDictEqual(ctx_copied, ctx_dummy)
repr(obj_decoded)
list(obj_decoded.pps())
pprint(obj_decoded, big_blobs=True, with_decode_path=True)
list(obj_expled.pps())
pprint(obj_expled, big_blobs=True, with_decode_path=True)
obj_expled_encoded = obj_expled.encode()
+ ctx_copied = deepcopy(ctx_dummy)
obj_decoded, tail = obj_expled.decode(
obj_expled_encoded + tail_junk,
offset=offset,
+ ctx=ctx_copied,
)
+ self.assertDictEqual(ctx_copied, ctx_dummy)
repr(obj_decoded)
list(obj_decoded.pps())
pprint(obj_decoded, big_blobs=True, with_decode_path=True)
list(obj_expled.pps())
pprint(obj_expled, big_blobs=True, with_decode_path=True)
obj_expled_encoded = obj_expled.encode()
+ ctx_copied = deepcopy(ctx_dummy)
obj_decoded, tail = obj_expled.decode(
obj_expled_encoded + tail_junk,
offset=offset,
+ ctx=ctx_copied,
)
+ self.assertDictEqual(ctx_copied, ctx_dummy)
repr(obj_decoded)
list(obj_decoded.pps())
pprint(obj_decoded, big_blobs=True, with_decode_path=True)
list(obj_expled.pps())
pprint(obj_expled, big_blobs=True, with_decode_path=True)
obj_expled_encoded = obj_expled.encode()
+ ctx_copied = deepcopy(ctx_dummy)
obj_decoded, tail = obj_expled.decode(
obj_expled_encoded + tail_junk,
offset=offset,
+ ctx=ctx_copied,
)
+ self.assertDictEqual(ctx_copied, ctx_dummy)
repr(obj_decoded)
list(obj_decoded.pps())
pprint(obj_decoded, big_blobs=True, with_decode_path=True)
list(obj_expled.pps())
pprint(obj_expled, big_blobs=True, with_decode_path=True)
obj_expled_encoded = obj_expled.encode()
+ ctx_copied = deepcopy(ctx_dummy)
obj_decoded, tail = obj_expled.decode(
obj_expled_encoded + tail_junk,
offset=offset,
+ ctx=ctx_copied,
)
+ self.assertDictEqual(ctx_copied, ctx_dummy)
repr(obj_decoded)
list(obj_decoded.pps())
pprint(obj_decoded, big_blobs=True, with_decode_path=True)
list(obj_expled.pps())
pprint(obj_expled, big_blobs=True, with_decode_path=True)
obj_expled_encoded = obj_expled.encode()
+ ctx_copied = deepcopy(ctx_dummy)
obj_decoded, tail = obj_expled.decode(
obj_expled_encoded + tail_junk,
offset=offset,
+ ctx=ctx_copied,
)
+ self.assertDictEqual(ctx_copied, ctx_dummy)
repr(obj_decoded)
list(obj_decoded.pps())
pprint(obj_decoded, big_blobs=True, with_decode_path=True)
list(obj_expled.pps())
pprint(obj_expled, big_blobs=True, with_decode_path=True)
obj_expled_encoded = obj_expled.encode()
+ ctx_copied = deepcopy(ctx_dummy)
obj_decoded, tail = obj_expled.decode(
obj_expled_encoded + tail_junk,
offset=offset,
+ ctx=ctx_copied,
)
+ self.assertDictEqual(ctx_copied, ctx_dummy)
repr(obj_decoded)
list(obj_decoded.pps())
pprint(obj_decoded, big_blobs=True, with_decode_path=True)
list(obj_expled.pps())
pprint(obj_expled, big_blobs=True, with_decode_path=True)
obj_expled_encoded = obj_expled.encode()
+ ctx_copied = deepcopy(ctx_dummy)
obj_decoded, tail = obj_expled.decode(
obj_expled_encoded + tail_junk,
offset=offset,
+ ctx=ctx_copied,
)
+ self.assertDictEqual(ctx_copied, ctx_dummy)
repr(obj_decoded)
list(obj_decoded.pps())
pprint(obj_decoded, big_blobs=True, with_decode_path=True)
t, _, lv = tag_strip(seq_encoded)
_, _, v = len_decode(lv)
seq_encoded_lenindef = t + LENINDEF + v + EOC
+ ctx_copied = deepcopy(ctx_dummy)
+ ctx_copied["bered"] = True
seq_decoded_lenindef, tail_lenindef = seq.decode(
seq_encoded_lenindef + tail_junk,
- ctx={"bered": True},
+ ctx=ctx_copied,
)
+ del ctx_copied["bered"]
+ self.assertDictEqual(ctx_copied, ctx_dummy)
self.assertTrue(seq_decoded_lenindef.lenindef)
self.assertTrue(seq_decoded_lenindef.bered)
with self.assertRaises(DecodeError):
list(obj_expled.pps())
pprint(obj_expled, big_blobs=True, with_decode_path=True)
obj_expled_encoded = obj_expled.encode()
+ ctx_copied = deepcopy(ctx_dummy)
obj_decoded, tail = obj_expled.decode(
obj_expled_encoded + tail_junk,
offset=offset,
+ ctx=ctx_copied,
)
+ self.assertDictEqual(ctx_copied, ctx_dummy)
repr(obj_decoded)
list(obj_decoded.pps())
pprint(obj_decoded, big_blobs=True, with_decode_path=True)
pprint(seq_sequenced, big_blobs=True, with_decode_path=True)
defines_by_path = []
- seq_integered, _ = Seq().decode(seq_integered_raw)
+ ctx_copied = deepcopy(ctx_dummy)
+ seq_integered, _ = Seq().decode(
+ seq_integered_raw,
+ ctx=ctx_copied,
+ )
+ self.assertDictEqual(ctx_copied, ctx_dummy)
self.assertIsNone(seq_integered["value"].defined)
defines_by_path.append(
(("type",), ((("value",), {
type_sequenced: SeqInner(),
}),))
)
+ ctx_copied["defines_by_path"] = defines_by_path
seq_integered, _ = Seq().decode(
seq_integered_raw,
- ctx={"defines_by_path": defines_by_path},
+ ctx=ctx_copied,
)
+ del ctx_copied["defines_by_path"]
+ self.assertDictEqual(ctx_copied, ctx_dummy)
self.assertIsNotNone(seq_integered["value"].defined)
self.assertEqual(seq_integered["value"].defined[0], type_integered)
self.assertEqual(seq_integered["value"].defined[1], Integer(123))
list(seq_integered.pps())
pprint(seq_integered, big_blobs=True, with_decode_path=True)
+ ctx_copied["defines_by_path"] = defines_by_path
seq_sequenced, _ = Seq().decode(
seq_sequenced_raw,
- ctx={"defines_by_path": defines_by_path},
+ ctx=ctx_copied,
)
+ del ctx_copied["defines_by_path"]
+ self.assertDictEqual(ctx_copied, ctx_dummy)
self.assertIsNotNone(seq_sequenced["value"].defined)
self.assertEqual(seq_sequenced["value"].defined[0], type_sequenced)
seq_inner = seq_sequenced["value"].defined[1]
("value", DecodePathDefBy(type_sequenced), "typeInner"),
((("valueInner",), {type_innered: Pairs()}),),
))
+ ctx_copied["defines_by_path"] = defines_by_path
seq_sequenced, _ = Seq().decode(
seq_sequenced_raw,
- ctx={"defines_by_path": defines_by_path},
+ ctx=ctx_copied,
)
+ del ctx_copied["defines_by_path"]
+ self.assertDictEqual(ctx_copied, ctx_dummy)
self.assertIsNotNone(seq_sequenced["value"].defined)
self.assertEqual(seq_sequenced["value"].defined[0], type_sequenced)
seq_inner = seq_sequenced["value"].defined[1]
type_octet_stringed: OctetString(),
}),),
))
+ ctx_copied["defines_by_path"] = defines_by_path
seq_sequenced, _ = Seq().decode(
seq_sequenced_raw,
- ctx={"defines_by_path": defines_by_path},
+ ctx=ctx_copied,
)
+ del ctx_copied["defines_by_path"]
+ self.assertDictEqual(ctx_copied, ctx_dummy)
self.assertIsNotNone(seq_sequenced["value"].defined)
self.assertEqual(seq_sequenced["value"].defined[0], type_sequenced)
seq_inner = seq_sequenced["value"].defined[1]