diff options
author | Ilya Etingof <etingof@gmail.com> | 2017-08-22 11:14:20 +0200 |
---|---|---|
committer | Ilya Etingof <etingof@gmail.com> | 2017-08-22 11:23:21 +0200 |
commit | a010010d681c3ccfb38300bbf010cadaa24830ac (patch) | |
tree | bd148c4a74b03bcc7dea750099a460b53f87d04a /tests/codec/ber/test_decoder.py | |
parent | a320d71872aa6c89621f9c584c526af0229b6071 (diff) | |
download | pyasn1-a010010d681c3ccfb38300bbf010cadaa24830ac.tar.gz |
at decoder, do not unconditionally cast substrate into bytes/str
Diffstat (limited to 'tests/codec/ber/test_decoder.py')
-rw-r--r-- | tests/codec/ber/test_decoder.py | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/tests/codec/ber/test_decoder.py b/tests/codec/ber/test_decoder.py index 03bfcab..0a53bcf 100644 --- a/tests/codec/ber/test_decoder.py +++ b/tests/codec/ber/test_decoder.py @@ -840,6 +840,30 @@ class EndOfOctetsTestCase(unittest.TestCase): assert 0, 'end-of-contents octets accepted with unexpected data' +class NonStringDecoderTestCase(unittest.TestCase): + def setUp(self): + self.s = univ.Sequence( + componentType=namedtype.NamedTypes( + namedtype.NamedType('place-holder', univ.Null(null)), + namedtype.NamedType('first-name', univ.OctetString(null)), + namedtype.NamedType('age', univ.Integer(33)) + ) + ) + self.s.setComponentByPosition(0, univ.Null(null)) + self.s.setComponentByPosition(1, univ.OctetString('quick brown')) + self.s.setComponentByPosition(2, univ.Integer(1)) + + self.substrate = ints2octs([48, 18, 5, 0, 4, 11, 113, 117, 105, 99, 107, 32, 98, 114, 111, 119, 110, 2, 1, 1]) + + def testOctetString(self): + s, _ = decoder.decode(univ.OctetString(self.substrate), asn1Spec=self.s) + assert self.s == s + + def testAny(self): + s, _ = decoder.decode(univ.Any(self.substrate), asn1Spec=self.s) + assert self.s == s + + suite = unittest.TestLoader().loadTestsFromModule(sys.modules[__name__]) if __name__ == '__main__': |