X-Git-Url: http://www.git.cypherpunks.ru/?a=blobdiff_plain;f=tests%2Ftest_pyderasn.py;h=10ad675c49bceb537f509b2f685635e033043221;hb=05f030d41edef47ea94f68b9e770590d96e743af;hp=faa85699fd2d628058d3c9cf5d2ce83d8fbcc218;hpb=93983afa262463982e07a617c2904df7fbfb47b3;p=pyderasn.git diff --git a/tests/test_pyderasn.py b/tests/test_pyderasn.py index faa8569..10ad675 100644 --- a/tests/test_pyderasn.py +++ b/tests/test_pyderasn.py @@ -607,6 +607,7 @@ class TestBoolean(CommonMixin, TestCase): ) self.assertTrue(bool(obj)) self.assertTrue(obj.bered) + self.assertFalse(obj.lenindef) @given( integers(min_value=1).map(tag_ctxc), @@ -633,8 +634,26 @@ class TestBoolean(CommonMixin, TestCase): self.assertSequenceEqual(tail, b"") self.assertSequenceEqual([bool(v) for v in seqof], values) self.assertSetEqual( - set((v.tlvlen, v.expl_tlvlen, v.expl_tlen, v.expl_llen) for v in seqof), - set(((3 + EOC_LEN, len(expl) + 1 + 3 + EOC_LEN, len(expl), 1),)), + set( + ( + v.tlvlen, + v.expl_tlvlen, + v.expl_tlen, + v.expl_llen, + v.bered, + v.lenindef, + v.expl_lenindef, + ) for v in seqof + ), + set((( + 3 + EOC_LEN, + len(expl) + 1 + 3 + EOC_LEN, + len(expl), + 1, + False, + False, + True, + ),)), ) @@ -1485,7 +1504,10 @@ class TestBitString(CommonMixin, TestCase): ) with assertRaisesRegex(self, DecodeError, "unallowed BER"): BitString(impl=tag_encode(impl)).decode(encoded_indefinite) - for encoded in (encoded_indefinite, encoded_definite): + for lenindef_expected, encoded in ( + (True, encoded_indefinite), + (False, encoded_definite), + ): obj, tail = BitString(impl=tag_encode(impl)).decode( encoded, ctx={"bered": True} ) @@ -1493,6 +1515,7 @@ class TestBitString(CommonMixin, TestCase): self.assertEqual(obj.bit_len, bit_len_expected) self.assertSequenceEqual(bytes(obj), payload_expected) self.assertTrue(obj.bered) + self.assertEqual(obj.lenindef, lenindef_expected) self.assertEqual(len(encoded), obj.tlvlen) def test_x690_vector(self): @@ -1507,6 +1530,8 @@ class TestBitString(CommonMixin, TestCase): ) self.assertSequenceEqual(tail, b"") self.assertEqual(obj, vector) + self.assertTrue(obj.bered) + self.assertTrue(obj.lenindef) @composite @@ -1865,13 +1890,17 @@ class TestOctetString(CommonMixin, TestCase): ) with assertRaisesRegex(self, DecodeError, "unallowed BER"): OctetString(impl=tag_encode(impl)).decode(encoded_indefinite) - for encoded in (encoded_indefinite, encoded_definite): + for lenindef_expected, encoded in ( + (True, encoded_indefinite), + (False, encoded_definite), + ): obj, tail = OctetString(impl=tag_encode(impl)).decode( encoded, ctx={"bered": True} ) self.assertSequenceEqual(tail, b"") self.assertSequenceEqual(bytes(obj), payload_expected) self.assertTrue(obj.bered) + self.assertEqual(obj.lenindef, lenindef_expected) self.assertEqual(len(encoded), obj.tlvlen) @@ -3085,24 +3114,29 @@ class TestVisibleString( base_klass = VisibleString def test_x690_vector(self): - self.assertEqual( - str(VisibleString().decode(hexdec("1A054A6F6E6573"))[0]), - "Jones", - ) - self.assertEqual( - str(VisibleString().decode( - hexdec("3A0904034A6F6E04026573"), - ctx={"bered": True}, - )[0]), - "Jones", + obj, tail = VisibleString().decode(hexdec("1A054A6F6E6573")) + self.assertSequenceEqual(tail, b"") + self.assertEqual(str(obj), "Jones") + self.assertFalse(obj.bered) + self.assertFalse(obj.lenindef) + + obj, tail = VisibleString().decode( + hexdec("3A0904034A6F6E04026573"), + ctx={"bered": True}, ) - self.assertEqual( - str(VisibleString().decode( - hexdec("3A8004034A6F6E040265730000"), - ctx={"bered": True}, - )[0]), - "Jones", + self.assertSequenceEqual(tail, b"") + self.assertEqual(str(obj), "Jones") + self.assertTrue(obj.bered) + self.assertFalse(obj.lenindef) + + obj, tail = VisibleString().decode( + hexdec("3A8004034A6F6E040265730000"), + ctx={"bered": True}, ) + self.assertSequenceEqual(tail, b"") + self.assertEqual(str(obj), "Jones") + self.assertTrue(obj.bered) + self.assertTrue(obj.lenindef) class TestGeneralString(