diff options
| author | Jeffery To <jeffery.to@gmail.com> | 2023-11-28 12:05:24 +0800 |
|---|---|---|
| committer | Tianling Shen <cnsztl@gmail.com> | 2023-11-30 12:58:15 +0800 |
| commit | c65f7c66eb0638694d60ceea16864a78e5bcc93c (patch) | |
| tree | 103af85d9cb62e302d59ecce7536c84b9021eed4 /lang/python/python-pyasn1/test.sh | |
| parent | 7d1febb77fde235fd960ec3dbf021da52f618ecf (diff) | |
python-pyasn1: Update to 0.5.1
This also adds a test.sh script for the packages feed CI.
Signed-off-by: Jeffery To <jeffery.to@gmail.com>
Diffstat (limited to 'lang/python/python-pyasn1/test.sh')
| -rw-r--r-- | lang/python/python-pyasn1/test.sh | 51 |
1 files changed, 51 insertions, 0 deletions
diff --git a/lang/python/python-pyasn1/test.sh b/lang/python/python-pyasn1/test.sh new file mode 100644 index 000000000..2f13e5fc8 --- /dev/null +++ b/lang/python/python-pyasn1/test.sh @@ -0,0 +1,51 @@ +#!/bin/sh + +[ "$1" = python3-pyasn1 ] || exit 0 + +python3 - << 'EOF' + +from collections import OrderedDict + +from pyasn1.type import namedtype +from pyasn1.type import tag +from pyasn1.type import univ +from pyasn1.codec.der.encoder import encode as derEncode +from pyasn1.codec.der.decoder import decode as derDecode +from pyasn1.codec.native.encoder import encode as nativeEncode +from pyasn1.codec.native.decoder import decode as nativeDecode + +class Record(univ.Sequence): + componentType = namedtype.NamedTypes( + namedtype.NamedType('id', univ.Integer()), + namedtype.OptionalNamedType( + 'room', univ.Integer().subtype( + implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 0) + ) + ), + namedtype.DefaultedNamedType( + 'house', univ.Integer(0).subtype( + implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 1) + ) + ) + ) + +# encoding modifies the object (https://github.com/pyasn1/pyasn1/issues/53) +# so test decoding before encoding + +record = Record() +record['id'] = 123 +record['room'] = 321 +assert str(record) == 'Record:\n id=123\n room=321\n' + +substrate = b'0\x07\x02\x01{\x80\x02\x01A' + +received_record, _ = derDecode(substrate, asn1Spec=Record()) +assert received_record == record + +dict_record = nativeDecode({'id': 123, 'room': 321}, asn1Spec=Record()) +assert dict_record == record + +assert derEncode(record) == substrate +assert nativeEncode(record) == OrderedDict([('id', 123), ('room', 321), ('house', 0)]) + +EOF |
