aboutsummaryrefslogtreecommitdiff
path: root/tests/codec/ber/test_decoder.py
diff options
context:
space:
mode:
authorIlya Etingof <etingof@gmail.com>2017-08-22 11:14:20 +0200
committerIlya Etingof <etingof@gmail.com>2017-08-22 11:23:21 +0200
commita010010d681c3ccfb38300bbf010cadaa24830ac (patch)
treebd148c4a74b03bcc7dea750099a460b53f87d04a /tests/codec/ber/test_decoder.py
parenta320d71872aa6c89621f9c584c526af0229b6071 (diff)
downloadpyasn1-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.py24
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__':