From c65f7c66eb0638694d60ceea16864a78e5bcc93c Mon Sep 17 00:00:00 2001 From: Jeffery To Date: Tue, 28 Nov 2023 12:05:24 +0800 Subject: [PATCH] python-pyasn1: Update to 0.5.1 This also adds a test.sh script for the packages feed CI. Signed-off-by: Jeffery To --- lang/python/python-pyasn1/Makefile | 4 +-- lang/python/python-pyasn1/test.sh | 51 ++++++++++++++++++++++++++++++ 2 files changed, 53 insertions(+), 2 deletions(-) create mode 100644 lang/python/python-pyasn1/test.sh diff --git a/lang/python/python-pyasn1/Makefile b/lang/python/python-pyasn1/Makefile index 998a06a571..b44ea2a424 100644 --- a/lang/python/python-pyasn1/Makefile +++ b/lang/python/python-pyasn1/Makefile @@ -8,11 +8,11 @@ include $(TOPDIR)/rules.mk PKG_NAME:=python-pyasn1 -PKG_VERSION:=0.5.0 +PKG_VERSION:=0.5.1 PKG_RELEASE:=1 PYPI_NAME:=pyasn1 -PKG_HASH:=97b7290ca68e62a832558ec3976f15cbf911bf5d7c7039d8b861c2a0ece69fde +PKG_HASH:=6d391a96e59b23130a5cfa74d6fd7f388dbbe26cc8f1edf39fdddf08d9d6676c PKG_LICENSE:=BSD-2-Clause PKG_LICENSE_FILES:=LICENSE.rst diff --git a/lang/python/python-pyasn1/test.sh b/lang/python/python-pyasn1/test.sh new file mode 100644 index 0000000000..2f13e5fc85 --- /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