python-pyasn1: Update to 0.5.1
authorJeffery To <jeffery.to@gmail.com>
Tue, 28 Nov 2023 04:05:24 +0000 (12:05 +0800)
committerTianling Shen <cnsztl@gmail.com>
Thu, 30 Nov 2023 04:58:15 +0000 (12:58 +0800)
This also adds a test.sh script for the packages feed CI.

Signed-off-by: Jeffery To <jeffery.to@gmail.com>
lang/python/python-pyasn1/Makefile
lang/python/python-pyasn1/test.sh [new file with mode: 0644]

index 998a06a5713e57ac88fba3e543883c98456007ee..b44ea2a4241bdda51f2d650a3ddab79acd32f751 100644 (file)
@@ -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 (file)
index 0000000..2f13e5f
--- /dev/null
@@ -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