diff options
author | Ilya Etingof <etingof@gmail.com> | 2017-02-12 10:54:00 +0100 |
---|---|---|
committer | Ilya Etingof <etingof@gmail.com> | 2017-02-12 10:54:00 +0100 |
commit | 22e53a32753acfdc4101f6cb3f4d45397d72ce5c (patch) | |
tree | 574d16c8c1d71091db51798f1ec8c75a6494749e | |
parent | 1bbefa9040dcd38195bb94bfeb85349b441659bd (diff) | |
download | pyasn1-git-22e53a32753acfdc4101f6cb3f4d45397d72ce5c.tar.gz |
test dir renamed into tests
-rw-r--r-- | .travis.yml | 4 | ||||
-rw-r--r-- | CHANGES.rst | 2 | ||||
-rw-r--r-- | MANIFEST.in | 2 | ||||
-rw-r--r-- | examples/partial-decoding.py | 114 | ||||
-rw-r--r-- | setup.py | 2 | ||||
-rw-r--r-- | test/type/__main__.py | 23 | ||||
-rw-r--r-- | tests/__init__.py (renamed from test/__init__.py) | 0 | ||||
-rw-r--r-- | tests/__main__.py (renamed from test/__main__.py) | 6 | ||||
-rw-r--r-- | tests/codec/__init__.py (renamed from test/codec/__init__.py) | 0 | ||||
-rw-r--r-- | tests/codec/__main__.py (renamed from test/codec/__main__.py) | 8 | ||||
-rw-r--r-- | tests/codec/ber/__init__.py (renamed from test/codec/ber/__init__.py) | 0 | ||||
-rw-r--r-- | tests/codec/ber/__main__.py (renamed from test/codec/ber/__main__.py) | 4 | ||||
-rw-r--r-- | tests/codec/ber/test_decoder.py (renamed from test/codec/ber/test_decoder.py) | 0 | ||||
-rw-r--r-- | tests/codec/ber/test_encoder.py (renamed from test/codec/ber/test_encoder.py) | 0 | ||||
-rw-r--r-- | tests/codec/cer/__init__.py (renamed from test/codec/cer/__init__.py) | 0 | ||||
-rw-r--r-- | tests/codec/cer/__main__.py (renamed from test/codec/cer/__main__.py) | 4 | ||||
-rw-r--r-- | tests/codec/cer/test_decoder.py (renamed from test/codec/cer/test_decoder.py) | 0 | ||||
-rw-r--r-- | tests/codec/cer/test_encoder.py (renamed from test/codec/cer/test_encoder.py) | 0 | ||||
-rw-r--r-- | tests/codec/der/__init__.py (renamed from test/codec/der/__init__.py) | 0 | ||||
-rw-r--r-- | tests/codec/der/__main__.py (renamed from test/codec/der/__main__.py) | 4 | ||||
-rw-r--r-- | tests/codec/der/test_decoder.py (renamed from test/codec/der/test_decoder.py) | 0 | ||||
-rw-r--r-- | tests/codec/der/test_encoder.py (renamed from test/codec/der/test_encoder.py) | 0 | ||||
-rw-r--r-- | tests/codec/native/__init__.py (renamed from test/codec/native/__init__.py) | 0 | ||||
-rw-r--r-- | tests/codec/native/__main__.py (renamed from test/codec/native/__main__.py) | 4 | ||||
-rw-r--r-- | tests/codec/native/test_decoder.py (renamed from test/codec/native/test_decoder.py) | 0 | ||||
-rw-r--r-- | tests/codec/native/test_encoder.py (renamed from test/codec/native/test_encoder.py) | 0 | ||||
-rw-r--r-- | tests/test_debug.py (renamed from test/test_debug.py) | 0 | ||||
-rw-r--r-- | tests/type/__init__.py (renamed from test/type/__init__.py) | 0 | ||||
-rw-r--r-- | tests/type/__main__.py | 23 | ||||
-rw-r--r-- | tests/type/test_constraint.py (renamed from test/type/test_constraint.py) | 0 | ||||
-rw-r--r-- | tests/type/test_namedtype.py (renamed from test/type/test_namedtype.py) | 0 | ||||
-rw-r--r-- | tests/type/test_namedval.py (renamed from test/type/test_namedval.py) | 0 | ||||
-rw-r--r-- | tests/type/test_tag.py (renamed from test/type/test_tag.py) | 0 | ||||
-rw-r--r-- | tests/type/test_univ.py (renamed from test/type/test_univ.py) | 0 |
34 files changed, 158 insertions, 42 deletions
diff --git a/.travis.yml b/.travis.yml index b3d6671..2436cc5 100644 --- a/.travis.yml +++ b/.travis.yml @@ -15,7 +15,7 @@ install: - pip install codecov - python setup.py install script: - - PYTHONPATH=.:$PYTHONPATH python test/__main__.py + - python tests/__main__.py after_success: - - PYTHONPATH=.:$PYTHONPATH coverage run --omit=*test* test/__main__.py + - coverage run --omit=*test* tests/__main__.py - codecov diff --git a/CHANGES.rst b/CHANGES.rst index 49646e6..cb65465 100644 --- a/CHANGES.rst +++ b/CHANGES.rst @@ -11,6 +11,8 @@ Revision 0.2.3, released XX-02-2017 - Setter methods for constructed types consistently accept matchTags and matchConstraints flags to control the strictness of inner components compatibility verification. +- The "test" directory renamed into "tests" not to collide with + the "test" module. Revision 0.2.2, released 07-02-2017 ----------------------------------- diff --git a/MANIFEST.in b/MANIFEST.in index a7b3bb6..a4f00fe 100644 --- a/MANIFEST.in +++ b/MANIFEST.in @@ -1,5 +1,5 @@ include *.rst *.md -recursive-include test *.py +recursive-include tests *.py recursive-include doc Makefile *.rst prune doc/build prune doc/source/.templates
\ No newline at end of file diff --git a/examples/partial-decoding.py b/examples/partial-decoding.py new file mode 100644 index 0000000..0058317 --- /dev/null +++ b/examples/partial-decoding.py @@ -0,0 +1,114 @@ +from pyasn1.type import tag, namedtype, univ +from pyasn1.codec.native import encoder, decoder +from pyasn1 import debug + +x = str(univ.BitString('111')) + +x = repr(univ.BitString('111')) + +univ.BitString((1,1,1,1,1))[:3] + +#debug.setLogger(debug.Debug('all')) +# +# class TBSCertificate(univ.Sequence): +# componentType = namedtype.NamedTypes( +# namedtype.DefaultedNamedType('version', univ.Integer(1).subtype( +# explicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 0))), +# namedtype.NamedType('serialNumber', univ.Integer()), +# namedtype.NamedType('issuer', univ.OctetString()) +# ) +# +# +# tbsCertificate = TBSCertificate() +# +# tbsCertificate.update(version=1, serialNumber=2, issuer='someone'), +# +# class Certificate(univ.Sequence): +# componentType = namedtype.NamedTypes( +# namedtype.NamedType('tbsCertificate', TBSCertificate()), +# namedtype.NamedType('signatureAlgorithm', univ.ObjectIdentifier()), +# namedtype.NamedType('signatureValue', univ.BitString()) +# ) +# +# certificate = Certificate() +# +# certificate.update( +# tbsCertificate=tbsCertificate, +# signatureAlgorithm='1.3.2.1', +# signatureValue=(1, 0, 1, 0, 1, 1, 1, 1) +# ) +# +# #print(certificate.prettyPrint()) +# +# substrate = encoder.encode(certificate) +# +# #print(substrate) +# +# certificate = decoder.decode(substrate, asn1Spec=Certificate()) +# +# #print(certificate.prettyPrint()) + + +from pyasn1_modules import rfc2459 + +from pyasn1.codec.der import decoder, encoder +from pyasn1.error import PyAsn1Error +from pyasn1.type import namedtype, univ +# +# +# class _DSSSigValue(univ.Sequence): +# componentType = namedtype.NamedTypes( +# namedtype.NamedType('r', univ.Integer()), +# namedtype.NamedType('s', univ.Integer()) +# ) +# +# def decode_dss_signature(signature): +# try: +# data, remaining = decoder.decode(signature, asn1Spec=_DSSSigValue()) +# except PyAsn1Error: +# raise ValueError("Invalid signature data. Unable to decode ASN.1") +# +# if remaining: +# raise ValueError( +# "The signature contains bytes after the end of the ASN.1 sequence." +# ) +# +# r = int(data.getComponentByName('r')) +# s = int(data.getComponentByName('s')) +# return (r, s) +# +# +# sig=bytes.fromhex('3045022100a99e5b6a71f5622367286433638db4a7808becc63642d5f98a8c48b8f82fd82802201b872c32a1563df4918333960a3d0036ae4e2a8c4a7d77de182cbdba2dd5d061') + +import cProfile + +pr = cProfile.Profile() +pr.enable() + +#for x in range(20000): +# x = decode_dss_signature(sig) + + + +substrate = b'0\x82\x02\xe70\x82\x02P\x02\x01\x010\r\x06\t*\x86H\x86\xf7\r\x01\x01\x05\x05\x000\x81\xbb1$0"\x06\x03U\x04\x07\x13\x1bValiCert Validation Network1\x170\x15\x06\x03U\x04\n\x13\x0eValiCert, Inc.1503\x06\x03U\x04\x0b\x13,ValiCert Class 3 Policy Validation Authority1!0\x1f\x06\x03U\x04\x03\x13\x18http://www.valicert.com/1 0\x1e\x06\t*\x86H\x86\xf7\r\x01\t\x01\x16\x11info@valicert.com0\x1e\x17\r990626002233Z\x17\r190626002233Z0\x81\xbb1$0"\x06\x03U\x04\x07\x13\x1bValiCert Validation Network1\x170\x15\x06\x03U\x04\n\x13\x0eValiCert, Inc.1503\x06\x03U\x04\x0b\x13,ValiCert Class 3 Policy Validation Authority1!0\x1f\x06\x03U\x04\x03\x13\x18http://www.valicert.com/1 0\x1e\x06\t*\x86H\x86\xf7\r\x01\t\x01\x16\x11info@valicert.com0\x81\x9f0\r\x06\t*\x86H\x86\xf7\r\x01\x01\x01\x05\x00\x03\x81\x8d\x000\x81\x89\x02\x81\x81\x00\xe3\x98Q\x96\x1c\xe8\xd5\xb1\x06\x81jW\xc3ru\x93\xab\xcf\x9e\xa6\xfc\xf3\x16R\xd6-M\x9f5D\xa8.\x04M\x07I\x8a8)\xf5w7\xe7\xb7\xab]\xdf6q\x14\x99\x8f\xdc\xc2\x92\xf1\xe7`\x92\x97\xec\xd8H\xdc\xbf\xc1\x02 \xc6$\xa4(L0Zvm\xb1\\\xf3\xdd\xde\x9e\x10q\xa1\x88\xc7[\x9bAm\xca\xb0\xb8\x8e\x15\xee\xad3+\xcfG\x04\\uq\n\x98$\x98)\xa7IY\xa5\xdd\xf8\xb7Cba\xf3\xd3\xe2\xd0U?\x02\x03\x01\x00\x010\r\x06\t*\x86H\x86\xf7\r\x01\x01\x05\x05\x00\x03\x81\x81\x00V\xbb\x02X\x84g\x08,\xdf\x1f\xdb{I3\xf5\xd3g\x9d\xf4\xb4\n\x10\xb3\xc9\xc5,\xe2\x92jqx\'\xf2p\x83B\xd3>\xcf\xa9T\xf4\xf1\xd8\x92\x16\x8c\xd1\x04\xcbK\xab\xc9\x9fE\xae<\x8a\xa9\xb0q3]\xc8\xc5W\xdf\xaf\xa85\xb3\x7f\x89\x87\xe9\xe8%\x92\xb8\x7f\x85z\xae\xd6\xbc\x1e7X*g\xc9\x91\xcf*\x81>\xed\xc69\xdf\xc0>\x19\x9c\x19\xcc\x13M\x82A\xb5\x8c\xde\xe0=`\x08 \x0fE~k\xa2\x7f\xa3\x8c\x15\xee' + +# 17 secs +# 13 secs (w/o SequenceAndSetBase.clone()) + +for x in range(1000): + cert, rest = decoder.decode(substrate, asn1Spec=rfc2459.Certificate()) + + if encoder.encode(cert) != substrate: + raise Exception('!!!') + +pr.disable() +pr.print_stats(sort='tottime') + +# +# partialAsn1Spec = Certificate() +# +# partialAsn1Spec.update(tbsCertificate=dict(serialNumber=13)) +# +# partialCertificate, _ = decoder.decode(substrate, asn1Spec=partialAsn1Spec) +# +# print(partialCertificate.prettyPrint()) @@ -107,7 +107,7 @@ class PyTest(Command): def run(self): suite = unittest.TestLoader().loadTestsFromNames( - ['test.__main__.suite'] + ['tests.__main__.suite'] ) unittest.TextTestRunner(verbosity=2).run(suite) diff --git a/test/type/__main__.py b/test/type/__main__.py deleted file mode 100644 index da87042..0000000 --- a/test/type/__main__.py +++ /dev/null @@ -1,23 +0,0 @@ -# -# This file is part of pyasn1 software. -# -# Copyright (c) 2005-2017, Ilya Etingof <etingof@gmail.com> -# License: http://pyasn1.sf.net/license.html -# -try: - import unittest2 as unittest - -except ImportError: - import unittest - -suite = unittest.TestLoader().loadTestsFromNames( - ['test.type.test_constraint.suite', - 'test.type.test_namedtype.suite', - 'test.type.test_namedval.suite', - 'test.type.test_tag.suite', - 'test.type.test_univ.suite'] -) - - -if __name__ == '__main__': - unittest.TextTestRunner(verbosity=2).run(suite) diff --git a/test/__init__.py b/tests/__init__.py index 8c3066b..8c3066b 100644 --- a/test/__init__.py +++ b/tests/__init__.py diff --git a/test/__main__.py b/tests/__main__.py index 409a937..70bd9ea 100644 --- a/test/__main__.py +++ b/tests/__main__.py @@ -11,9 +11,9 @@ except ImportError: import unittest suite = unittest.TestLoader().loadTestsFromNames( - ['test.test_debug.suite', - 'test.type.__main__.suite', - 'test.codec.__main__.suite'] + ['tests.test_debug.suite', + 'tests.type.__main__.suite', + 'tests.codec.__main__.suite'] ) diff --git a/test/codec/__init__.py b/tests/codec/__init__.py index 8c3066b..8c3066b 100644 --- a/test/codec/__init__.py +++ b/tests/codec/__init__.py diff --git a/test/codec/__main__.py b/tests/codec/__main__.py index d289452..bcfd96f 100644 --- a/test/codec/__main__.py +++ b/tests/codec/__main__.py @@ -11,10 +11,10 @@ except ImportError: import unittest suite = unittest.TestLoader().loadTestsFromNames( - ['test.codec.ber.__main__.suite', - 'test.codec.cer.__main__.suite', - 'test.codec.der.__main__.suite', - 'test.codec.native.__main__.suite'] + ['tests.codec.ber.__main__.suite', + 'tests.codec.cer.__main__.suite', + 'tests.codec.der.__main__.suite', + 'tests.codec.native.__main__.suite'] ) diff --git a/test/codec/ber/__init__.py b/tests/codec/ber/__init__.py index 8c3066b..8c3066b 100644 --- a/test/codec/ber/__init__.py +++ b/tests/codec/ber/__init__.py diff --git a/test/codec/ber/__main__.py b/tests/codec/ber/__main__.py index 122bf76..2909628 100644 --- a/test/codec/ber/__main__.py +++ b/tests/codec/ber/__main__.py @@ -11,8 +11,8 @@ except ImportError: import unittest suite = unittest.TestLoader().loadTestsFromNames( - ['test.codec.ber.test_encoder.suite', - 'test.codec.ber.test_decoder.suite'] + ['tests.codec.ber.test_encoder.suite', + 'tests.codec.ber.test_decoder.suite'] ) diff --git a/test/codec/ber/test_decoder.py b/tests/codec/ber/test_decoder.py index c1852c4..c1852c4 100644 --- a/test/codec/ber/test_decoder.py +++ b/tests/codec/ber/test_decoder.py diff --git a/test/codec/ber/test_encoder.py b/tests/codec/ber/test_encoder.py index 48a916b..48a916b 100644 --- a/test/codec/ber/test_encoder.py +++ b/tests/codec/ber/test_encoder.py diff --git a/test/codec/cer/__init__.py b/tests/codec/cer/__init__.py index 8c3066b..8c3066b 100644 --- a/test/codec/cer/__init__.py +++ b/tests/codec/cer/__init__.py diff --git a/test/codec/cer/__main__.py b/tests/codec/cer/__main__.py index d63775b..f641b82 100644 --- a/test/codec/cer/__main__.py +++ b/tests/codec/cer/__main__.py @@ -11,8 +11,8 @@ except ImportError: import unittest suite = unittest.TestLoader().loadTestsFromNames( - ['test.codec.cer.test_encoder.suite', - 'test.codec.cer.test_decoder.suite'] + ['tests.codec.cer.test_encoder.suite', + 'tests.codec.cer.test_decoder.suite'] ) diff --git a/test/codec/cer/test_decoder.py b/tests/codec/cer/test_decoder.py index 3ae1f99..3ae1f99 100644 --- a/test/codec/cer/test_decoder.py +++ b/tests/codec/cer/test_decoder.py diff --git a/test/codec/cer/test_encoder.py b/tests/codec/cer/test_encoder.py index 0ced510..0ced510 100644 --- a/test/codec/cer/test_encoder.py +++ b/tests/codec/cer/test_encoder.py diff --git a/test/codec/der/__init__.py b/tests/codec/der/__init__.py index 8c3066b..8c3066b 100644 --- a/test/codec/der/__init__.py +++ b/tests/codec/der/__init__.py diff --git a/test/codec/der/__main__.py b/tests/codec/der/__main__.py index d734ff0..0db3904 100644 --- a/test/codec/der/__main__.py +++ b/tests/codec/der/__main__.py @@ -11,8 +11,8 @@ except ImportError: import unittest suite = unittest.TestLoader().loadTestsFromNames( - ['test.codec.der.test_encoder.suite', - 'test.codec.der.test_decoder.suite'] + ['tests.codec.der.test_encoder.suite', + 'tests.codec.der.test_decoder.suite'] ) diff --git a/test/codec/der/test_decoder.py b/tests/codec/der/test_decoder.py index 3fd55c3..3fd55c3 100644 --- a/test/codec/der/test_decoder.py +++ b/tests/codec/der/test_decoder.py diff --git a/test/codec/der/test_encoder.py b/tests/codec/der/test_encoder.py index b514e3b..b514e3b 100644 --- a/test/codec/der/test_encoder.py +++ b/tests/codec/der/test_encoder.py diff --git a/test/codec/native/__init__.py b/tests/codec/native/__init__.py index 8c3066b..8c3066b 100644 --- a/test/codec/native/__init__.py +++ b/tests/codec/native/__init__.py diff --git a/test/codec/native/__main__.py b/tests/codec/native/__main__.py index aef17d1..89f0e06 100644 --- a/test/codec/native/__main__.py +++ b/tests/codec/native/__main__.py @@ -11,8 +11,8 @@ except ImportError: import unittest suite = unittest.TestLoader().loadTestsFromNames( - ['test.codec.native.test_encoder.suite', - 'test.codec.native.test_decoder.suite'] + ['tests.codec.native.test_encoder.suite', + 'tests.codec.native.test_decoder.suite'] ) if __name__ == '__main__': diff --git a/test/codec/native/test_decoder.py b/tests/codec/native/test_decoder.py index 16fddfc..16fddfc 100644 --- a/test/codec/native/test_decoder.py +++ b/tests/codec/native/test_decoder.py diff --git a/test/codec/native/test_encoder.py b/tests/codec/native/test_encoder.py index a1d9efc..a1d9efc 100644 --- a/test/codec/native/test_encoder.py +++ b/tests/codec/native/test_encoder.py diff --git a/test/test_debug.py b/tests/test_debug.py index 742f7f1..742f7f1 100644 --- a/test/test_debug.py +++ b/tests/test_debug.py diff --git a/test/type/__init__.py b/tests/type/__init__.py index 8c3066b..8c3066b 100644 --- a/test/type/__init__.py +++ b/tests/type/__init__.py diff --git a/tests/type/__main__.py b/tests/type/__main__.py new file mode 100644 index 0000000..bd89f8b --- /dev/null +++ b/tests/type/__main__.py @@ -0,0 +1,23 @@ +# +# This file is part of pyasn1 software. +# +# Copyright (c) 2005-2017, Ilya Etingof <etingof@gmail.com> +# License: http://pyasn1.sf.net/license.html +# +try: + import unittest2 as unittest + +except ImportError: + import unittest + +suite = unittest.TestLoader().loadTestsFromNames( + ['tests.type.test_constraint.suite', + 'tests.type.test_namedtype.suite', + 'tests.type.test_namedval.suite', + 'tests.type.test_tag.suite', + 'tests.type.test_univ.suite'] +) + + +if __name__ == '__main__': + unittest.TextTestRunner(verbosity=2).run(suite) diff --git a/test/type/test_constraint.py b/tests/type/test_constraint.py index 0ea4ed4..0ea4ed4 100644 --- a/test/type/test_constraint.py +++ b/tests/type/test_constraint.py diff --git a/test/type/test_namedtype.py b/tests/type/test_namedtype.py index cbb9118..cbb9118 100644 --- a/test/type/test_namedtype.py +++ b/tests/type/test_namedtype.py diff --git a/test/type/test_namedval.py b/tests/type/test_namedval.py index e52f724..e52f724 100644 --- a/test/type/test_namedval.py +++ b/tests/type/test_namedval.py diff --git a/test/type/test_tag.py b/tests/type/test_tag.py index fac9783..fac9783 100644 --- a/test/type/test_tag.py +++ b/tests/type/test_tag.py diff --git a/test/type/test_univ.py b/tests/type/test_univ.py index 0d7e0ad..0d7e0ad 100644 --- a/test/type/test_univ.py +++ b/tests/type/test_univ.py |