/
UCS
/
openwrt_packages
Обзор
Документация
Войти
/
UCS
/
openwrt_packages
Код
Запросы
0
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
lang/python/python-pyasn1/test.sh
51 строка
2 KB
Jeffery To
python-pyasn1: Update to 0.5.1
30 ноя 2023, 07:58
30 ноя 2023, 07:58
c65f7c6
Код
Авторство
О чём код?
#!/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