diff options
Diffstat (limited to 'tests/codec')
-rw-r--r-- | tests/codec/ber/test_decoder.py | 125 | ||||
-rw-r--r-- | tests/codec/ber/test_encoder.py | 73 | ||||
-rw-r--r-- | tests/codec/cer/test_decoder.py | 9 | ||||
-rw-r--r-- | tests/codec/cer/test_encoder.py | 50 | ||||
-rw-r--r-- | tests/codec/der/test_decoder.py | 7 | ||||
-rw-r--r-- | tests/codec/der/test_encoder.py | 29 | ||||
-rw-r--r-- | tests/codec/native/test_decoder.py | 33 | ||||
-rw-r--r-- | tests/codec/native/test_encoder.py | 48 |
8 files changed, 231 insertions, 143 deletions
diff --git a/tests/codec/ber/test_decoder.py b/tests/codec/ber/test_decoder.py index d2f02ad..5ec3a5f 100644 --- a/tests/codec/ber/test_decoder.py +++ b/tests/codec/ber/test_decoder.py @@ -10,13 +10,15 @@ try: except ImportError: import unittest +from tests.base import BaseTestCase + from pyasn1.type import tag, namedtype, univ, char from pyasn1.codec.ber import decoder, eoo from pyasn1.compat.octets import ints2octs, str2octs, null from pyasn1.error import PyAsn1Error -class LargeTagDecoderTestCase(unittest.TestCase): +class LargeTagDecoderTestCase(BaseTestCase): def testLargeTag(self): assert decoder.decode(ints2octs((127, 141, 245, 182, 253, 47, 3, 2, 1, 1))) == (1, null) @@ -29,12 +31,12 @@ class LargeTagDecoderTestCase(unittest.TestCase): ints2octs((0x9f, 0x00, 0x02, 0x01, 0x02)), asn1Spec=integer) -class DecoderCacheTestCase(unittest.TestCase): +class DecoderCacheTestCase(BaseTestCase): def testCache(self): assert decoder.decode(ints2octs((0x1f, 2, 1, 0))) == decoder.decode(ints2octs((0x1f, 2, 1, 0))) -class IntegerDecoderTestCase(unittest.TestCase): +class IntegerDecoderTestCase(BaseTestCase): def testPosInt(self): assert decoder.decode(ints2octs((2, 1, 12))) == (12, null) @@ -82,7 +84,7 @@ class IntegerDecoderTestCase(unittest.TestCase): assert 0, 'wrong tagFormat worked out' -class BooleanDecoderTestCase(unittest.TestCase): +class BooleanDecoderTestCase(BaseTestCase): def testTrue(self): assert decoder.decode(ints2octs((1, 1, 1))) == (1, null) @@ -104,7 +106,7 @@ class BooleanDecoderTestCase(unittest.TestCase): assert 0, 'wrong tagFormat worked out' -class BitStringDecoderTestCase(unittest.TestCase): +class BitStringDecoderTestCase(BaseTestCase): def testDefMode(self): assert decoder.decode( ints2octs((3, 3, 1, 169, 138)) @@ -128,14 +130,14 @@ class BitStringDecoderTestCase(unittest.TestCase): def testDefModeChunkedSubst(self): assert decoder.decode( ints2octs((35, 8, 3, 2, 0, 169, 3, 2, 1, 138)), - substrateFun=lambda a, b, c: (b, c) - ) == (ints2octs((3, 2, 0, 169, 3, 2, 1, 138)), 8) + substrateFun=lambda a, b, c: (b, b[c:]) + ) == (ints2octs((3, 2, 0, 169, 3, 2, 1, 138)), str2octs('')) def testIndefModeChunkedSubst(self): assert decoder.decode( ints2octs((35, 128, 3, 2, 0, 169, 3, 2, 1, 138, 0, 0)), - substrateFun=lambda a, b, c: (b, c) - ) == (ints2octs((3, 2, 0, 169, 3, 2, 1, 138, 0, 0)), -1) + substrateFun=lambda a, b, c: (b, str2octs('')) + ) == (ints2octs((3, 2, 0, 169, 3, 2, 1, 138, 0, 0)), str2octs('')) def testTypeChecking(self): try: @@ -146,7 +148,7 @@ class BitStringDecoderTestCase(unittest.TestCase): assert 0, 'accepted mis-encoded bit-string constructed out of an integer' -class OctetStringDecoderTestCase(unittest.TestCase): +class OctetStringDecoderTestCase(BaseTestCase): def testDefMode(self): assert decoder.decode( ints2octs((4, 15, 81, 117, 105, 99, 107, 32, 98, 114, 111, 119, 110, 32, 102, 111, 120)) @@ -173,21 +175,21 @@ class OctetStringDecoderTestCase(unittest.TestCase): assert decoder.decode( ints2octs( (36, 23, 4, 4, 81, 117, 105, 99, 4, 4, 107, 32, 98, 114, 4, 4, 111, 119, 110, 32, 4, 3, 102, 111, 120)), - substrateFun=lambda a, b, c: (b, c) - ) == (ints2octs((4, 4, 81, 117, 105, 99, 4, 4, 107, 32, 98, 114, 4, 4, 111, 119, 110, 32, 4, 3, 102, 111, 120)), - 23) + substrateFun=lambda a, b, c: (b, b[c:]) + ) == (ints2octs((4, 4, 81, 117, 105, 99, 4, 4, 107, 32, 98, 114, 4, 4, 111, 119, 110, 32, 4, 3, 102, 111, 120)), str2octs('')) def testIndefModeChunkedSubst(self): assert decoder.decode( ints2octs((36, 128, 4, 4, 81, 117, 105, 99, 4, 4, 107, 32, 98, 114, 4, 4, 111, 119, 110, 32, 4, 3, 102, 111, 120, 0, 0)), - substrateFun=lambda a, b, c: (b, c) + substrateFun=lambda a, b, c: (b, str2octs('')) ) == (ints2octs( - (4, 4, 81, 117, 105, 99, 4, 4, 107, 32, 98, 114, 4, 4, 111, 119, 110, 32, 4, 3, 102, 111, 120, 0, 0)), -1) + (4, 4, 81, 117, 105, 99, 4, 4, 107, 32, 98, 114, 4, 4, 111, 119, 110, 32, 4, 3, 102, 111, 120, 0, 0)), str2octs('')) -class ExpTaggedOctetStringDecoderTestCase(unittest.TestCase): +class ExpTaggedOctetStringDecoderTestCase(BaseTestCase): def setUp(self): + BaseTestCase.setUp(self) self.o = univ.OctetString( 'Quick brown fox', tagSet=univ.OctetString.tagSet.tagExplicitly( @@ -233,20 +235,20 @@ class ExpTaggedOctetStringDecoderTestCase(unittest.TestCase): def testDefModeSubst(self): assert decoder.decode( ints2octs((101, 17, 4, 15, 81, 117, 105, 99, 107, 32, 98, 114, 111, 119, 110, 32, 102, 111, 120)), - substrateFun=lambda a, b, c: (b, c) - ) == (ints2octs((4, 15, 81, 117, 105, 99, 107, 32, 98, 114, 111, 119, 110, 32, 102, 111, 120)), 17) + substrateFun=lambda a, b, c: (b, b[c:]) + ) == (ints2octs((4, 15, 81, 117, 105, 99, 107, 32, 98, 114, 111, 119, 110, 32, 102, 111, 120)), str2octs('')) def testIndefModeSubst(self): assert decoder.decode( ints2octs(( 101, 128, 36, 128, 4, 15, 81, 117, 105, 99, 107, 32, 98, 114, 111, 119, 110, 32, 102, 111, 120, 0, 0, 0, 0)), - substrateFun=lambda a, b, c: (b, c) + substrateFun=lambda a, b, c: (b, str2octs('')) ) == (ints2octs( - (36, 128, 4, 15, 81, 117, 105, 99, 107, 32, 98, 114, 111, 119, 110, 32, 102, 111, 120, 0, 0, 0, 0)), -1) + (36, 128, 4, 15, 81, 117, 105, 99, 107, 32, 98, 114, 111, 119, 110, 32, 102, 111, 120, 0, 0, 0, 0)), str2octs('')) -class NullDecoderTestCase(unittest.TestCase): +class NullDecoderTestCase(BaseTestCase): def testNull(self): assert decoder.decode(ints2octs((5, 0))) == (null, null) @@ -261,7 +263,7 @@ class NullDecoderTestCase(unittest.TestCase): # Useful analysis of OID encoding issues could be found here: # http://www.viathinksoft.de/~daniel-marschall/asn.1/oid_facts.html -class ObjectIdentifierDecoderTestCase(unittest.TestCase): +class ObjectIdentifierDecoderTestCase(BaseTestCase): def testOne(self): assert decoder.decode( ints2octs((6, 6, 43, 6, 0, 191, 255, 126)) @@ -402,7 +404,7 @@ class ObjectIdentifierDecoderTestCase(unittest.TestCase): ) == ((2, 999, 18446744073709551535184467440737095), null) -class RealDecoderTestCase(unittest.TestCase): +class RealDecoderTestCase(BaseTestCase): def testChar(self): assert decoder.decode( ints2octs((9, 7, 3, 49, 50, 51, 69, 49, 49)) @@ -478,23 +480,25 @@ class RealDecoderTestCase(unittest.TestCase): if sys.version_info[0:2] > (2, 5): - class UniversalStringDecoderTestCase(unittest.TestCase): + class UniversalStringDecoderTestCase(BaseTestCase): def testDecoder(self): assert decoder.decode(ints2octs((28, 12, 0, 0, 0, 97, 0, 0, 0, 98, 0, 0, 0, 99))) == (char.UniversalString(sys.version_info[0] == 3 and 'abc' or unicode('abc')), null) -class BMPStringDecoderTestCase(unittest.TestCase): +class BMPStringDecoderTestCase(BaseTestCase): def testDecoder(self): assert decoder.decode(ints2octs((30, 6, 0, 97, 0, 98, 0, 99))) == (char.BMPString(sys.version_info[0] == 3 and 'abc' or unicode('abc')), null) -class UTF8StringDecoderTestCase(unittest.TestCase): +class UTF8StringDecoderTestCase(BaseTestCase): def testDecoder(self): assert decoder.decode(ints2octs((12, 3, 97, 98, 99))) == (char.UTF8String(sys.version_info[0] == 3 and 'abc' or unicode('abc')), null) -class SequenceOfDecoderTestCase(unittest.TestCase): +class SequenceOfDecoderTestCase(BaseTestCase): def setUp(self): + BaseTestCase.setUp(self) + self.s = univ.SequenceOf(componentType=univ.OctetString()) self.s.setComponentByPosition(0, univ.OctetString('quick brown')) @@ -524,7 +528,7 @@ class SequenceOfDecoderTestCase(unittest.TestCase): ) == (self.s, null) -class ExpTaggedSequenceOfDecoderTestCase(unittest.TestCase): +class ExpTaggedSequenceOfDecoderTestCase(BaseTestCase): def testWithSchema(self): s = univ.SequenceOf().subtype(explicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatConstructed, 3)) @@ -545,8 +549,9 @@ class ExpTaggedSequenceOfDecoderTestCase(unittest.TestCase): assert s.tagSet == s2.tagSet -class SequenceOfDecoderWithSchemaTestCase(unittest.TestCase): +class SequenceOfDecoderWithSchemaTestCase(BaseTestCase): def setUp(self): + BaseTestCase.setUp(self) self.s = univ.SequenceOf(componentType=univ.OctetString()) self.s.setComponentByPosition(0, univ.OctetString('quick brown')) @@ -571,8 +576,9 @@ class SequenceOfDecoderWithSchemaTestCase(unittest.TestCase): ) == (self.s, null) -class SetOfDecoderTestCase(unittest.TestCase): +class SetOfDecoderTestCase(BaseTestCase): def setUp(self): + BaseTestCase.setUp(self) self.s = univ.SetOf(componentType=univ.OctetString()) self.s.setComponentByPosition(0, univ.OctetString('quick brown')) @@ -602,8 +608,9 @@ class SetOfDecoderTestCase(unittest.TestCase): ) == (self.s, null) -class SetOfDecoderWithSchemaTestCase(unittest.TestCase): +class SetOfDecoderWithSchemaTestCase(BaseTestCase): def setUp(self): + BaseTestCase.setUp(self) self.s = univ.SetOf(componentType=univ.OctetString()) self.s.setComponentByPosition(0, univ.OctetString('quick brown')) @@ -628,8 +635,9 @@ class SetOfDecoderWithSchemaTestCase(unittest.TestCase): ) == (self.s, null) -class SequenceDecoderTestCase(unittest.TestCase): +class SequenceDecoderTestCase(BaseTestCase): def setUp(self): + BaseTestCase.setUp(self) self.s = univ.Sequence( componentType=namedtype.NamedTypes( namedtype.NamedType('place-holder', univ.Null(null)), @@ -665,16 +673,15 @@ class SequenceDecoderTestCase(unittest.TestCase): def testWithOptionalAndDefaultedDefModeSubst(self): assert decoder.decode( ints2octs((48, 18, 5, 0, 4, 11, 113, 117, 105, 99, 107, 32, 98, 114, 111, 119, 110, 2, 1, 1)), - substrateFun=lambda a, b, c: (b, c) - ) == (ints2octs((5, 0, 4, 11, 113, 117, 105, 99, 107, 32, 98, 114, 111, 119, 110, 2, 1, 1)), 18) + substrateFun=lambda a, b, c: (b, b[c:]) + ) == (ints2octs((5, 0, 4, 11, 113, 117, 105, 99, 107, 32, 98, 114, 111, 119, 110, 2, 1, 1)), str2octs('')) def testWithOptionalAndDefaultedIndefModeSubst(self): assert decoder.decode( - ints2octs((48, 128, 5, 0, 36, 128, 4, 11, 113, 117, 105, 99, 107, 32, 98, 114, 111, 119, 110, 0, 0, 2, 1, 1, - 0, 0)), - substrateFun=lambda a, b, c: (b, c) + ints2octs((48, 128, 5, 0, 36, 128, 4, 11, 113, 117, 105, 99, 107, 32, 98, 114, 111, 119, 110, 0, 0, 2, 1, 1, 0, 0)), + substrateFun=lambda a, b, c: (b, str2octs('')) ) == (ints2octs( - (5, 0, 36, 128, 4, 11, 113, 117, 105, 99, 107, 32, 98, 114, 111, 119, 110, 0, 0, 2, 1, 1, 0, 0)), -1) + (5, 0, 36, 128, 4, 11, 113, 117, 105, 99, 107, 32, 98, 114, 111, 119, 110, 0, 0, 2, 1, 1, 0, 0)), str2octs('')) def testTagFormat(self): try: @@ -687,8 +694,9 @@ class SequenceDecoderTestCase(unittest.TestCase): assert 0, 'wrong tagFormat worked out' -class SequenceDecoderWithSchemaTestCase(unittest.TestCase): +class SequenceDecoderWithSchemaTestCase(BaseTestCase): def setUp(self): + BaseTestCase.setUp(self) self.s = univ.Sequence( componentType=namedtype.NamedTypes( namedtype.NamedType('place-holder', univ.Null(null)), @@ -823,8 +831,9 @@ class SequenceDecoderWithSchemaTestCase(unittest.TestCase): ) == (self.s, null) -class SetDecoderTestCase(unittest.TestCase): +class SetDecoderTestCase(BaseTestCase): def setUp(self): + BaseTestCase.setUp(self) self.s = univ.Set( componentType=namedtype.NamedTypes( namedtype.NamedType('place-holder', univ.Null(null)), @@ -860,15 +869,15 @@ class SetDecoderTestCase(unittest.TestCase): def testWithOptionalAndDefaultedDefModeSubst(self): assert decoder.decode( ints2octs((49, 18, 5, 0, 4, 11, 113, 117, 105, 99, 107, 32, 98, 114, 111, 119, 110, 2, 1, 1)), - substrateFun=lambda a, b, c: (b, c) - ) == (ints2octs((5, 0, 4, 11, 113, 117, 105, 99, 107, 32, 98, 114, 111, 119, 110, 2, 1, 1)), 18) + substrateFun=lambda a, b, c: (b, b[c:]) + ) == (ints2octs((5, 0, 4, 11, 113, 117, 105, 99, 107, 32, 98, 114, 111, 119, 110, 2, 1, 1)), str2octs('')) def testWithOptionalAndDefaultedIndefModeSubst(self): assert decoder.decode( ints2octs((49, 128, 5, 0, 36, 128, 4, 11, 113, 117, 105, 99, 107, 32, 98, 114, 111, 119, 110, 0, 0, 2, 1, 1, 0, 0)), - substrateFun=lambda a, b, c: (b, c) + substrateFun=lambda a, b, c: (b, str2octs('')) ) == (ints2octs( - (5, 0, 36, 128, 4, 11, 113, 117, 105, 99, 107, 32, 98, 114, 111, 119, 110, 0, 0, 2, 1, 1, 0, 0)), -1) + (5, 0, 36, 128, 4, 11, 113, 117, 105, 99, 107, 32, 98, 114, 111, 119, 110, 0, 0, 2, 1, 1, 0, 0)), str2octs('')) def testTagFormat(self): try: @@ -881,8 +890,9 @@ class SetDecoderTestCase(unittest.TestCase): assert 0, 'wrong tagFormat worked out' -class SetDecoderWithSchemaTestCase(unittest.TestCase): +class SetDecoderWithSchemaTestCase(BaseTestCase): def setUp(self): + BaseTestCase.setUp(self) self.s = univ.Set( componentType=namedtype.NamedTypes( namedtype.NamedType('place-holder', univ.Null(null)), @@ -1020,8 +1030,9 @@ class SetDecoderWithSchemaTestCase(unittest.TestCase): ) == (self.s, null) -class SequenceOfWithExpTaggedOctetStringDecoder(unittest.TestCase): +class SequenceOfWithExpTaggedOctetStringDecoder(BaseTestCase): def setUp(self): + BaseTestCase.setUp(self) self.s = univ.SequenceOf( componentType=univ.OctetString().subtype(explicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 3)) ) @@ -1065,8 +1076,9 @@ class SequenceOfWithExpTaggedOctetStringDecoder(unittest.TestCase): assert s.tagSet == self.s.tagSet -class SequenceWithExpTaggedOctetStringDecoder(unittest.TestCase): +class SequenceWithExpTaggedOctetStringDecoder(BaseTestCase): def setUp(self): + BaseTestCase.setUp(self) self.s = univ.Sequence( componentType=namedtype.NamedTypes( namedtype.NamedType( @@ -1114,8 +1126,9 @@ class SequenceWithExpTaggedOctetStringDecoder(unittest.TestCase): assert s.tagSet == self.s.tagSet -class ChoiceDecoderTestCase(unittest.TestCase): +class ChoiceDecoderTestCase(BaseTestCase): def setUp(self): + BaseTestCase.setUp(self) self.s = univ.Choice( componentType=namedtype.NamedTypes( namedtype.NamedType('place-holder', univ.Null(null)), @@ -1153,8 +1166,9 @@ class ChoiceDecoderTestCase(unittest.TestCase): assert decoder.decode(ints2octs((164, 128, 5, 0, 0, 0)), asn1Spec=s) == (s, null) -class AnyDecoderTestCase(unittest.TestCase): +class AnyDecoderTestCase(BaseTestCase): def setUp(self): + BaseTestCase.setUp(self) self.s = univ.Any() def testByUntagged(self): @@ -1187,18 +1201,18 @@ class AnyDecoderTestCase(unittest.TestCase): assert decoder.decode( ints2octs((4, 3, 102, 111, 120)), asn1Spec=self.s, - substrateFun=lambda a, b, c: (b, c) - ) == (ints2octs((4, 3, 102, 111, 120)), 5) + substrateFun=lambda a, b, c: (b, b[c:]) + ) == (ints2octs((4, 3, 102, 111, 120)), str2octs('')) def testTaggedExSubst(self): assert decoder.decode( ints2octs((164, 5, 4, 3, 102, 111, 120)), asn1Spec=self.s, - substrateFun=lambda a, b, c: (b, c) - ) == (ints2octs((164, 5, 4, 3, 102, 111, 120)), 7) + substrateFun=lambda a, b, c: (b, b[c:]) + ) == (ints2octs((164, 5, 4, 3, 102, 111, 120)), str2octs('')) -class EndOfOctetsTestCase(unittest.TestCase): +class EndOfOctetsTestCase(BaseTestCase): def testUnexpectedEoo(self): try: decoder.decode(ints2octs((0, 0))) @@ -1249,8 +1263,9 @@ class EndOfOctetsTestCase(unittest.TestCase): assert 0, 'end-of-contents octets accepted with unexpected data' -class NonStringDecoderTestCase(unittest.TestCase): +class NonStringDecoderTestCase(BaseTestCase): def setUp(self): + BaseTestCase.setUp(self) self.s = univ.Sequence( componentType=namedtype.NamedTypes( namedtype.NamedType('place-holder', univ.Null(null)), diff --git a/tests/codec/ber/test_encoder.py b/tests/codec/ber/test_encoder.py index 7935afe..153ebd7 100644 --- a/tests/codec/ber/test_encoder.py +++ b/tests/codec/ber/test_encoder.py @@ -5,20 +5,25 @@ # License: http://pyasn1.sf.net/license.html # import sys + try: import unittest2 as unittest + except ImportError: import unittest +from tests.base import BaseTestCase + from pyasn1.type import tag, namedtype, univ, char from pyasn1.codec.ber import encoder from pyasn1.compat.octets import ints2octs from pyasn1.error import PyAsn1Error -from sys import version_info class LargeTagEncoderTestCase(unittest.TestCase): def setUp(self): + BaseTestCase.setUp(self) + self.o = univ.Integer().subtype( value=1, explicitTag=tag.Tag(tag.tagClassApplication, tag.tagFormatSimple, 0xdeadbeaf) ) @@ -27,7 +32,7 @@ class LargeTagEncoderTestCase(unittest.TestCase): assert encoder.encode(self.o) == ints2octs((127, 141, 245, 182, 253, 47, 3, 2, 1, 1)) -class IntegerEncoderTestCase(unittest.TestCase): +class IntegerEncoderTestCase(BaseTestCase): def testPosInt(self): assert encoder.encode(univ.Integer(12)) == ints2octs((2, 1, 12)) @@ -57,7 +62,7 @@ class IntegerEncoderTestCase(unittest.TestCase): ) == ints2octs((2, 9, 255, 0, 0, 0, 0, 0, 0, 0, 1)) -class BooleanEncoderTestCase(unittest.TestCase): +class BooleanEncoderTestCase(BaseTestCase): def testTrue(self): assert encoder.encode(univ.Boolean(1)) == ints2octs((1, 1, 1)) @@ -65,8 +70,9 @@ class BooleanEncoderTestCase(unittest.TestCase): assert encoder.encode(univ.Boolean(0)) == ints2octs((1, 1, 0)) -class BitStringEncoderTestCase(unittest.TestCase): +class BitStringEncoderTestCase(BaseTestCase): def setUp(self): + BaseTestCase.setUp(self) self.b = univ.BitString((1, 0, 1, 0, 1, 0, 0, 1, 1, 0, 0, 0, 1, 0, 1)) def testDefMode(self): @@ -91,8 +97,9 @@ class BitStringEncoderTestCase(unittest.TestCase): assert encoder.encode(univ.BitString([])) == ints2octs((3, 1, 0)) -class OctetStringEncoderTestCase(unittest.TestCase): +class OctetStringEncoderTestCase(BaseTestCase): def setUp(self): + BaseTestCase.setUp(self) self.o = univ.OctetString('Quick brown fox') def testDefMode(self): @@ -117,8 +124,9 @@ class OctetStringEncoderTestCase(unittest.TestCase): 32, 4, 3, 102, 111, 120, 0, 0)) -class ExpTaggedOctetStringEncoderTestCase(unittest.TestCase): +class ExpTaggedOctetStringEncoderTestCase(BaseTestCase): def setUp(self): + BaseTestCase.setUp(self) self.o = univ.OctetString().subtype( value='Quick brown fox', explicitTag=tag.Tag(tag.tagClassApplication, tag.tagFormatSimple, 5) @@ -145,12 +153,12 @@ class ExpTaggedOctetStringEncoderTestCase(unittest.TestCase): ) == ints2octs((101, 128, 36, 128, 4, 4, 81, 117, 105, 99, 4, 4, 107, 32, 98, 114, 4, 4, 111, 119, 110, 32, 4, 3, 102, 111, 120, 0, 0, 0, 0)) -class NullEncoderTestCase(unittest.TestCase): +class NullEncoderTestCase(BaseTestCase): def testNull(self): assert encoder.encode(univ.Null('')) == ints2octs((5, 0)) -class ObjectIdentifierEncoderTestCase(unittest.TestCase): +class ObjectIdentifierEncoderTestCase(BaseTestCase): def testOne(self): assert encoder.encode( univ.ObjectIdentifier((1, 3, 6, 0, 0xffffe)) @@ -258,7 +266,7 @@ class ObjectIdentifierEncoderTestCase(unittest.TestCase): 0xB8, 0xCB, 0xE2, 0xB6, 0x47)) -class RealEncoderTestCase(unittest.TestCase): +class RealEncoderTestCase(BaseTestCase): def testChar(self): assert encoder.encode( univ.Real((123, 10, 11)) @@ -322,26 +330,26 @@ class RealEncoderTestCase(unittest.TestCase): assert encoder.encode(univ.Real(0)) == ints2octs((9, 0)) -if version_info[0:2] > (2, 5): - class UniversalStringEncoderTestCase(unittest.TestCase): +if sys.version_info[0:2] > (2, 5): + class UniversalStringEncoderTestCase(BaseTestCase): def testEncoding(self): - assert encoder.encode(char.UniversalString(version_info[0] == 3 and 'abc' or unicode('abc'))) == ints2octs( + assert encoder.encode(char.UniversalString(sys.version_info[0] == 3 and 'abc' or unicode('abc'))) == ints2octs( (28, 12, 0, 0, 0, 97, 0, 0, 0, 98, 0, 0, 0, 99)), 'Incorrect encoding' -class BMPStringEncoderTestCase(unittest.TestCase): +class BMPStringEncoderTestCase(BaseTestCase): def testEncoding(self): - assert encoder.encode(char.BMPString(version_info[0] == 3 and 'abc' or unicode('abc'))) == ints2octs( + assert encoder.encode(char.BMPString(sys.version_info[0] == 3 and 'abc' or unicode('abc'))) == ints2octs( (30, 6, 0, 97, 0, 98, 0, 99)), 'Incorrect encoding' -class UTF8StringEncoderTestCase(unittest.TestCase): +class UTF8StringEncoderTestCase(BaseTestCase): def testEncoding(self): - assert encoder.encode(char.UTF8String(version_info[0] == 3 and 'abc' or unicode('abc'))) == ints2octs( + assert encoder.encode(char.UTF8String(sys.version_info[0] == 3 and 'abc' or unicode('abc'))) == ints2octs( (12, 3, 97, 98, 99)), 'Incorrect encoding' -class SequenceOfEncoderTestCase(unittest.TestCase): +class SequenceOfEncoderTestCase(BaseTestCase): def testEmpty(self): s = univ.SequenceOf() assert encoder.encode(s) == ints2octs((48, 0)) @@ -373,8 +381,9 @@ class SequenceOfEncoderTestCase(unittest.TestCase): ) == ints2octs((48, 128, 36, 128, 4, 4, 113, 117, 105, 99, 4, 4, 107, 32, 98, 114, 4, 3, 111, 119, 110, 0, 0, 0, 0)) -class SequenceOfEncoderWithSchemaTestCase(unittest.TestCase): +class SequenceOfEncoderWithSchemaTestCase(BaseTestCase): def setUp(self): + BaseTestCase.setUp(self) self.s = univ.SequenceOf(componentType=univ.OctetString()) def __init(self): @@ -404,7 +413,7 @@ class SequenceOfEncoderWithSchemaTestCase(unittest.TestCase): ) == ints2octs((48, 128, 36, 128, 4, 4, 113, 117, 105, 99, 4, 4, 107, 32, 98, 114, 4, 3, 111, 119, 110, 0, 0, 0, 0)) -class SetOfEncoderTestCase(unittest.TestCase): +class SetOfEncoderTestCase(BaseTestCase): def testEmpty(self): s = univ.SetOf() assert encoder.encode(s) == ints2octs((49, 0)) @@ -436,8 +445,9 @@ class SetOfEncoderTestCase(unittest.TestCase): ) == ints2octs((49, 128, 36, 128, 4, 4, 113, 117, 105, 99, 4, 4, 107, 32, 98, 114, 4, 3, 111, 119, 110, 0, 0, 0, 0)) -class SetOfEncoderWithSchemaTestCase(unittest.TestCase): +class SetOfEncoderWithSchemaTestCase(BaseTestCase): def setUp(self): + BaseTestCase.setUp(self) self.s = univ.SetOf(componentType=univ.OctetString()) def __init(self): @@ -467,8 +477,9 @@ class SetOfEncoderWithSchemaTestCase(unittest.TestCase): ) == ints2octs((49, 128, 36, 128, 4, 4, 113, 117, 105, 99, 4, 4, 107, 32, 98, 114, 4, 3, 111, 119, 110, 0, 0, 0, 0)) -class SequenceEncoderTestCase(unittest.TestCase): +class SequenceEncoderTestCase(BaseTestCase): def setUp(self): + BaseTestCase.setUp(self) self.s = univ.Sequence() self.s.setComponentByPosition(0, univ.Null('')) self.s.setComponentByPosition(1, univ.OctetString('quick brown')) @@ -493,8 +504,9 @@ class SequenceEncoderTestCase(unittest.TestCase): ) == ints2octs((48, 128, 5, 0, 36, 128, 4, 4, 113, 117, 105, 99, 4, 4, 107, 32, 98, 114, 4, 3, 111, 119, 110, 0, 0, 2, 1, 1, 0, 0)) -class SequenceEncoderWithSchemaTestCase(unittest.TestCase): +class SequenceEncoderWithSchemaTestCase(BaseTestCase): def setUp(self): + BaseTestCase.setUp(self) self.s = univ.Sequence( componentType=namedtype.NamedTypes( namedtype.NamedType('place-holder', univ.Null()), @@ -617,8 +629,9 @@ class SequenceEncoderWithSchemaTestCase(unittest.TestCase): 0, 2, 1, 1, 0, 0)) -class ExpTaggedSequenceEncoderTestCase(unittest.TestCase): +class ExpTaggedSequenceEncoderTestCase(BaseTestCase): def setUp(self): + BaseTestCase.setUp(self) s = univ.Sequence( componentType=namedtype.NamedTypes( namedtype.NamedType('number', univ.Integer()), @@ -642,8 +655,9 @@ class ExpTaggedSequenceEncoderTestCase(unittest.TestCase): ) == ints2octs((101, 128, 48, 128, 2, 1, 12, 0, 0, 0, 0)) -class SetEncoderTestCase(unittest.TestCase): +class SetEncoderTestCase(BaseTestCase): def setUp(self): + BaseTestCase.setUp(self) self.s = univ.Set() self.s.setComponentByPosition(0, univ.Null('')) self.s.setComponentByPosition(1, univ.OctetString('quick brown')) @@ -668,8 +682,9 @@ class SetEncoderTestCase(unittest.TestCase): ) == ints2octs((49, 128, 5, 0, 36, 128, 4, 4, 113, 117, 105, 99, 4, 4, 107, 32, 98, 114, 4, 3, 111, 119, 110, 0, 0, 2, 1, 1, 0, 0)) -class SetEncoderWithSchemaTestCase(unittest.TestCase): +class SetEncoderWithSchemaTestCase(BaseTestCase): def setUp(self): + BaseTestCase.setUp(self) self.s = univ.Set( componentType=namedtype.NamedTypes( namedtype.NamedType('place-holder', univ.Null()), @@ -791,7 +806,7 @@ class SetEncoderWithSchemaTestCase(unittest.TestCase): ) == ints2octs((49, 128, 5, 0, 36, 128, 4, 4, 113, 117, 105, 99, 4, 4, 107, 32, 98, 114, 4, 3, 111, 119, 110, 0, 0, 2, 1, 1, 0, 0)) -class ChoiceEncoderTestCase(unittest.TestCase): +class ChoiceEncoderTestCase(BaseTestCase): def testEmpty(self): s = univ.Choice() @@ -834,8 +849,9 @@ class ChoiceEncoderTestCase(unittest.TestCase): ) == ints2octs((36, 128, 4, 4, 113, 117, 105, 99, 4, 4, 107, 32, 98, 114, 4, 3, 111, 119, 110, 0, 0)) -class ChoiceEncoderWithSchemaTestCase(unittest.TestCase): +class ChoiceEncoderWithSchemaTestCase(BaseTestCase): def setUp(self): + BaseTestCase.setUp(self) self.s = univ.Choice( componentType=namedtype.NamedTypes( namedtype.NamedType('place-holder', univ.Null('')), @@ -877,8 +893,9 @@ class ChoiceEncoderWithSchemaTestCase(unittest.TestCase): (164, 128, 36, 128, 4, 3, 97, 98, 99, 4, 3, 100, 101, 102, 4, 2, 103, 104, 0, 0, 0, 0)) -class AnyEncoderTestCase(unittest.TestCase): +class AnyEncoderTestCase(BaseTestCase): def setUp(self): + BaseTestCase.setUp(self) self.s = univ.Any(encoder.encode(univ.OctetString('fox'))) def testUntagged(self): diff --git a/tests/codec/cer/test_decoder.py b/tests/codec/cer/test_decoder.py index 3ae1f99..828c17f 100644 --- a/tests/codec/cer/test_decoder.py +++ b/tests/codec/cer/test_decoder.py @@ -5,17 +5,20 @@ # License: http://pyasn1.sf.net/license.html # import sys + try: import unittest2 as unittest except ImportError: import unittest +from tests.base import BaseTestCase + from pyasn1.codec.cer import decoder from pyasn1.compat.octets import ints2octs, str2octs, null from pyasn1.error import PyAsn1Error -class BooleanDecoderTestCase(unittest.TestCase): +class BooleanDecoderTestCase(BaseTestCase): def testTrue(self): assert decoder.decode(ints2octs((1, 1, 255))) == (1, null) @@ -34,7 +37,7 @@ class BooleanDecoderTestCase(unittest.TestCase): except PyAsn1Error: pass -class BitStringDecoderTestCase(unittest.TestCase): +class BitStringDecoderTestCase(BaseTestCase): def testShortMode(self): assert decoder.decode( ints2octs((3, 3, 6, 170, 128)) @@ -48,7 +51,7 @@ class BitStringDecoderTestCase(unittest.TestCase): # TODO: test failures on short chunked and long unchunked substrate samples -class OctetStringDecoderTestCase(unittest.TestCase): +class OctetStringDecoderTestCase(BaseTestCase): def testShortMode(self): assert decoder.decode( ints2octs((4, 15, 81, 117, 105, 99, 107, 32, 98, 114, 111, 119, 110, 32, 102, 111, 120)), diff --git a/tests/codec/cer/test_encoder.py b/tests/codec/cer/test_encoder.py index 7b0cc8c..32d87b0 100644 --- a/tests/codec/cer/test_encoder.py +++ b/tests/codec/cer/test_encoder.py @@ -5,18 +5,21 @@ # License: http://pyasn1.sf.net/license.html # import sys + try: import unittest2 as unittest except ImportError: import unittest +from tests.base import BaseTestCase + from pyasn1.type import namedtype, univ, useful from pyasn1.codec.cer import encoder from pyasn1.compat.octets import ints2octs from pyasn1.error import PyAsn1Error -class BooleanEncoderTestCase(unittest.TestCase): +class BooleanEncoderTestCase(BaseTestCase): def testTrue(self): assert encoder.encode(univ.Boolean(1)) == ints2octs((1, 1, 255)) @@ -24,7 +27,7 @@ class BooleanEncoderTestCase(unittest.TestCase): assert encoder.encode(univ.Boolean(0)) == ints2octs((1, 1, 0)) -class BitStringEncoderTestCase(unittest.TestCase): +class BitStringEncoderTestCase(BaseTestCase): def testShortMode(self): assert encoder.encode( univ.BitString((1, 0) * 5) @@ -34,7 +37,7 @@ class BitStringEncoderTestCase(unittest.TestCase): assert encoder.encode(univ.BitString((1, 0) * 501)) == ints2octs((3, 127, 6) + (170,) * 125 + (128,)) -class OctetStringEncoderTestCase(unittest.TestCase): +class OctetStringEncoderTestCase(BaseTestCase): def testShortMode(self): assert encoder.encode( univ.OctetString('Quick brown fox') @@ -46,7 +49,7 @@ class OctetStringEncoderTestCase(unittest.TestCase): ) == ints2octs((36, 128, 4, 130, 3, 232) + (81,) * 1000 + (4, 1, 81, 0, 0)) -class GeneralizedTimeEncoderTestCase(unittest.TestCase): +class GeneralizedTimeEncoderTestCase(BaseTestCase): # def testExtraZeroInSeconds(self): # try: # assert encoder.encode( @@ -104,7 +107,7 @@ class GeneralizedTimeEncoderTestCase(unittest.TestCase): ) == ints2octs((24, 13, 50, 48, 49, 55, 48, 56, 48, 49, 49, 50, 48, 49, 90)) -class UTCTimeEncoderTestCase(unittest.TestCase): +class UTCTimeEncoderTestCase(BaseTestCase): def testFractionOfSecond(self): try: assert encoder.encode( @@ -146,7 +149,7 @@ class UTCTimeEncoderTestCase(unittest.TestCase): ) == ints2octs((23, 11, 57, 57, 48, 56, 48, 49, 49, 50, 48, 49, 90)) -class SequenceOfEncoderTestCase(unittest.TestCase): +class SequenceOfEncoderTestCase(BaseTestCase): def testEmpty(self): s = univ.SequenceOf() assert encoder.encode(s) == ints2octs((48, 128, 0, 0)) @@ -176,8 +179,9 @@ class SequenceOfEncoderTestCase(unittest.TestCase): assert encoder.encode(s) == ints2octs((48, 128, 4, 1, 97, 4, 1, 98, 0, 0)) -class SequenceOfEncoderWithSchemaTestCase(unittest.TestCase): +class SequenceOfEncoderWithSchemaTestCase(BaseTestCase): def setUp(self): + BaseTestCase.setUp(self) self.s = univ.SequenceOf(componentType=univ.OctetString()) def testEmpty(self): @@ -209,7 +213,7 @@ class SequenceOfEncoderWithSchemaTestCase(unittest.TestCase): assert encoder.encode(self.s) == ints2octs((48, 128, 4, 1, 97, 4, 1, 98, 0, 0)) -class SetOfEncoderTestCase(unittest.TestCase): +class SetOfEncoderTestCase(BaseTestCase): def testEmpty(self): s = univ.SetOf() assert encoder.encode(s) == ints2octs((49, 128, 0, 0)) @@ -239,8 +243,9 @@ class SetOfEncoderTestCase(unittest.TestCase): assert encoder.encode(s) == ints2octs((49, 128, 4, 1, 97, 4, 1, 98, 0, 0)) -class SetOfEncoderWithSchemaTestCase(unittest.TestCase): +class SetOfEncoderWithSchemaTestCase(BaseTestCase): def setUp(self): + BaseTestCase.setUp(self) self.s = univ.SetOf(componentType=univ.OctetString()) def testEmpty(self): @@ -276,8 +281,9 @@ class SetOfEncoderWithSchemaTestCase(unittest.TestCase): assert encoder.encode(self.s) == ints2octs((49, 128, 4, 1, 97, 4, 1, 98, 0, 0)) -class SetEncoderTestCase(unittest.TestCase): +class SetEncoderTestCase(BaseTestCase): def setUp(self): + BaseTestCase.setUp(self) self.s = univ.Set() self.s.setComponentByPosition(0, univ.Null('')) self.s.setComponentByPosition(1, univ.OctetString('quick brown')) @@ -302,8 +308,9 @@ class SetEncoderTestCase(unittest.TestCase): ) == ints2octs((49, 128, 2, 1, 1, 4, 11, 113, 117, 105, 99, 107, 32, 98, 114, 111, 119, 110, 5, 0, 0, 0)) -class SetEncoderWithSchemaTestCase(unittest.TestCase): +class SetEncoderWithSchemaTestCase(BaseTestCase): def setUp(self): + BaseTestCase.setUp(self) self.s = univ.Set(componentType=namedtype.NamedTypes( namedtype.NamedType('place-holder', univ.Null('')), namedtype.OptionalNamedType('first-name', univ.OctetString()), @@ -353,8 +360,9 @@ class SetEncoderWithSchemaTestCase(unittest.TestCase): ) == ints2octs((49, 128, 2, 1, 1, 4, 11, 113, 117, 105, 99, 107, 32, 98, 114, 111, 119, 110, 5, 0, 0, 0)) -class SetWithChoiceWithSchemaEncoderTestCase(unittest.TestCase): +class SetWithChoiceWithSchemaEncoderTestCase(BaseTestCase): def setUp(self): + BaseTestCase.setUp(self) c = univ.Choice(componentType=namedtype.NamedTypes( namedtype.NamedType('actual', univ.Boolean(0)) )) @@ -370,8 +378,9 @@ class SetWithChoiceWithSchemaEncoderTestCase(unittest.TestCase): assert encoder.encode(self.s) == ints2octs((49, 128, 1, 1, 255, 5, 0, 0, 0)) -class SetEncoderTestCase(unittest.TestCase): +class SetEncoderTestCase(BaseTestCase): def setUp(self): + BaseTestCase.setUp(self) self.s = univ.Set() self.s.setComponentByPosition(0, univ.Null('')) self.s.setComponentByPosition(1, univ.OctetString('quick brown')) @@ -396,8 +405,9 @@ class SetEncoderTestCase(unittest.TestCase): ) == ints2octs((49, 128, 2, 1, 1, 4, 11, 113, 117, 105, 99, 107, 32, 98, 114, 111, 119, 110, 5, 0, 0, 0)) -class SequenceEncoderTestCase(unittest.TestCase): +class SequenceEncoderTestCase(BaseTestCase): def setUp(self): + BaseTestCase.setUp(self) self.s = univ.Sequence() self.s.setComponentByPosition(0, univ.Null('')) self.s.setComponentByPosition(1, univ.OctetString('quick brown')) @@ -422,8 +432,9 @@ class SequenceEncoderTestCase(unittest.TestCase): ) == ints2octs((48, 128, 5, 0, 4, 11, 113, 117, 105, 99, 107, 32, 98, 114, 111, 119, 110, 2, 1, 1, 0, 0)) -class SequenceEncoderWithSchemaTestCase(unittest.TestCase): +class SequenceEncoderWithSchemaTestCase(BaseTestCase): def setUp(self): + BaseTestCase.setUp(self) self.s = univ.Sequence( componentType=namedtype.NamedTypes( namedtype.NamedType('place-holder', univ.Null('')), @@ -475,8 +486,9 @@ class SequenceEncoderWithSchemaTestCase(unittest.TestCase): ) == ints2octs((48, 128, 5, 0, 4, 11, 113, 117, 105, 99, 107, 32, 98, 114, 111, 119, 110, 2, 1, 1, 0, 0)) -class NestedOptionalSequenceEncoderTestCase(unittest.TestCase): +class NestedOptionalSequenceEncoderTestCase(BaseTestCase): def setUp(self): + BaseTestCase.setUp(self) inner = univ.Sequence( componentType=namedtype.NamedTypes( namedtype.OptionalNamedType('first-name', univ.OctetString()), @@ -564,8 +576,9 @@ class NestedOptionalSequenceEncoderTestCase(unittest.TestCase): assert encoder.encode(s) == ints2octs((48, 128, 48, 128, 2, 1, 123, 0, 0, 0, 0)) -class NestedOptionalChoiceEncoderTestCase(unittest.TestCase): +class NestedOptionalChoiceEncoderTestCase(BaseTestCase): def setUp(self): + BaseTestCase.setUp(self) layer3 = univ.Sequence( componentType=namedtype.NamedTypes( namedtype.OptionalNamedType('first-name', univ.OctetString()), @@ -625,8 +638,9 @@ class NestedOptionalChoiceEncoderTestCase(unittest.TestCase): assert encoder.encode(s) == ints2octs((48, 128, 0, 0)) -class NestedOptionalSequenceOfEncoderTestCase(unittest.TestCase): +class NestedOptionalSequenceOfEncoderTestCase(BaseTestCase): def setUp(self): + BaseTestCase.setUp(self) layer2 = univ.SequenceOf( componentType=univ.OctetString() ) diff --git a/tests/codec/der/test_decoder.py b/tests/codec/der/test_decoder.py index 3fd55c3..6f292fd 100644 --- a/tests/codec/der/test_decoder.py +++ b/tests/codec/der/test_decoder.py @@ -5,17 +5,20 @@ # License: http://pyasn1.sf.net/license.html # import sys + try: import unittest2 as unittest except ImportError: import unittest +from tests.base import BaseTestCase + from pyasn1.codec.der import decoder from pyasn1.compat.octets import ints2octs, null from pyasn1.error import PyAsn1Error -class BitStringDecoderTestCase(unittest.TestCase): +class BitStringDecoderTestCase(BaseTestCase): def testShortMode(self): assert decoder.decode( ints2octs((3, 127, 6) + (170,) * 125 + (128,)) @@ -42,7 +45,7 @@ class BitStringDecoderTestCase(unittest.TestCase): assert 0, 'chunked encoding tolerated' -class OctetStringDecoderTestCase(unittest.TestCase): +class OctetStringDecoderTestCase(BaseTestCase): def testShortMode(self): assert decoder.decode( '\004\017Quick brown fox'.encode() diff --git a/tests/codec/der/test_encoder.py b/tests/codec/der/test_encoder.py index 354781a..3059c0c 100644 --- a/tests/codec/der/test_encoder.py +++ b/tests/codec/der/test_encoder.py @@ -5,18 +5,20 @@ # License: http://pyasn1.sf.net/license.html # import sys + try: import unittest2 as unittest except ImportError: import unittest +from tests.base import BaseTestCase + from pyasn1.type import namedtype, univ from pyasn1.codec.der import encoder from pyasn1.compat.octets import ints2octs -from pyasn1.error import PyAsn1Error -class OctetStringEncoderTestCase(unittest.TestCase): +class OctetStringEncoderTestCase(BaseTestCase): def testDefModeShort(self): assert encoder.encode( univ.OctetString('Quick brown fox') @@ -28,7 +30,7 @@ class OctetStringEncoderTestCase(unittest.TestCase): ) == ints2octs((4, 130, 39, 16) + (81,) * 10000) -class BitStringEncoderTestCase(unittest.TestCase): +class BitStringEncoderTestCase(BaseTestCase): def testDefModeShort(self): assert encoder.encode( univ.BitString((1,)) @@ -40,8 +42,10 @@ class BitStringEncoderTestCase(unittest.TestCase): ) == ints2octs((3, 130, 39, 17, 0) + (255,) * 10000) -class SetOfEncoderTestCase(unittest.TestCase): +class SetOfEncoderTestCase(BaseTestCase): def setUp(self): + BaseTestCase.setUp(self) + self.s = univ.SetOf(componentType=univ.OctetString()) def testDefMode1(self): @@ -72,12 +76,15 @@ class SetOfEncoderTestCase(unittest.TestCase): assert encoder.encode(self.s) == ints2octs((49, 6, 4, 1, 97, 4, 1, 98)) -class SetWithChoiceEncoderTestCase(unittest.TestCase): +class SetWithChoiceEncoderTestCase(BaseTestCase): def setUp(self): + BaseTestCase.setUp(self) + c = univ.Choice(componentType=namedtype.NamedTypes( namedtype.NamedType('name', univ.OctetString()), namedtype.NamedType('amount', univ.Boolean())) ) + self.s = univ.Set(componentType=namedtype.NamedTypes( namedtype.NamedType('value', univ.Integer(5)), namedtype.NamedType('status', c)) @@ -94,8 +101,10 @@ class SetWithChoiceEncoderTestCase(unittest.TestCase): assert encoder.encode(self.s) == ints2octs((49, 6, 1, 1, 255, 2, 1, 5)) -class NestedOptionalSequenceEncoderTestCase(unittest.TestCase): +class NestedOptionalSequenceEncoderTestCase(BaseTestCase): def setUp(self): + BaseTestCase.setUp(self) + inner = univ.Sequence( componentType=namedtype.NamedTypes( namedtype.OptionalNamedType('first-name', univ.OctetString()), @@ -183,8 +192,10 @@ class NestedOptionalSequenceEncoderTestCase(unittest.TestCase): assert encoder.encode(s) == ints2octs((48, 5, 48, 3, 2, 1, 123)) -class NestedOptionalChoiceEncoderTestCase(unittest.TestCase): +class NestedOptionalChoiceEncoderTestCase(BaseTestCase): def setUp(self): + BaseTestCase.setUp(self) + layer3 = univ.Sequence( componentType=namedtype.NamedTypes( namedtype.OptionalNamedType('first-name', univ.OctetString()), @@ -244,8 +255,10 @@ class NestedOptionalChoiceEncoderTestCase(unittest.TestCase): assert encoder.encode(s) == ints2octs((48, 0)) -class NestedOptionalSequenceOfEncoderTestCase(unittest.TestCase): +class NestedOptionalSequenceOfEncoderTestCase(BaseTestCase): def setUp(self): + BaseTestCase.setUp(self) + layer2 = univ.SequenceOf( componentType=univ.OctetString() ) diff --git a/tests/codec/native/test_decoder.py b/tests/codec/native/test_decoder.py index 16fddfc..c3854af 100644 --- a/tests/codec/native/test_decoder.py +++ b/tests/codec/native/test_decoder.py @@ -5,17 +5,20 @@ # License: http://pyasn1.sf.net/license.html # import sys + try: import unittest2 as unittest except ImportError: import unittest -from pyasn1.type import tag, namedtype, univ, char +from tests.base import BaseTestCase + +from pyasn1.type import namedtype, univ from pyasn1.codec.native import decoder from pyasn1.error import PyAsn1Error -class BadAsn1SpecTestCase(unittest.TestCase): +class BadAsn1SpecTestCase(BaseTestCase): def testBadSpec(self): try: decoder.decode('', asn1Spec='not an Asn1Item') @@ -25,7 +28,7 @@ class BadAsn1SpecTestCase(unittest.TestCase): assert 0, 'Invalid asn1Spec accepted' -class IntegerDecoderTestCase(unittest.TestCase): +class IntegerDecoderTestCase(BaseTestCase): def testPosInt(self): assert decoder.decode(12, asn1Spec=univ.Integer()) == univ.Integer(12) @@ -33,7 +36,7 @@ class IntegerDecoderTestCase(unittest.TestCase): assert decoder.decode(-12, asn1Spec=univ.Integer()) == univ.Integer(-12) -class BooleanDecoderTestCase(unittest.TestCase): +class BooleanDecoderTestCase(BaseTestCase): def testTrue(self): assert decoder.decode(True, asn1Spec=univ.Boolean()) == univ.Boolean(True) @@ -41,33 +44,35 @@ class BooleanDecoderTestCase(unittest.TestCase): assert decoder.decode(False, asn1Spec=univ.Boolean()) == univ.Boolean(False) -class BitStringDecoderTestCase(unittest.TestCase): +class BitStringDecoderTestCase(BaseTestCase): def testSimple(self): assert decoder.decode('11111111', asn1Spec=univ.BitString()) == univ.BitString(hexValue='ff') -class OctetStringDecoderTestCase(unittest.TestCase): +class OctetStringDecoderTestCase(BaseTestCase): def testSimple(self): assert decoder.decode('Quick brown fox', asn1Spec=univ.OctetString()) == univ.OctetString('Quick brown fox') -class NullDecoderTestCase(unittest.TestCase): +class NullDecoderTestCase(BaseTestCase): def testNull(self): assert decoder.decode(None, asn1Spec=univ.Null()) == univ.Null() -class ObjectIdentifierDecoderTestCase(unittest.TestCase): +class ObjectIdentifierDecoderTestCase(BaseTestCase): def testOne(self): assert decoder.decode('1.3.6.11', asn1Spec=univ.ObjectIdentifier()) == univ.ObjectIdentifier('1.3.6.11') -class RealDecoderTestCase(unittest.TestCase): +class RealDecoderTestCase(BaseTestCase): def testSimple(self): assert decoder.decode(1.33, asn1Spec=univ.Real()) == univ.Real(1.33) -class SequenceDecoderTestCase(unittest.TestCase): +class SequenceDecoderTestCase(BaseTestCase): def setUp(self): + BaseTestCase.setUp(self) + self.s = univ.Sequence( componentType=namedtype.NamedTypes( namedtype.NamedType('place-holder', univ.Null()), @@ -84,8 +89,10 @@ class SequenceDecoderTestCase(unittest.TestCase): assert decoder.decode({'place-holder': None, 'first-name': 'xx', 'age': 33}, asn1Spec=self.s) == s -class ChoiceDecoderTestCase(unittest.TestCase): +class ChoiceDecoderTestCase(BaseTestCase): def setUp(self): + BaseTestCase.setUp(self) + self.s = univ.Choice( componentType=namedtype.NamedTypes( namedtype.NamedType('place-holder', univ.Null()), @@ -100,8 +107,10 @@ class ChoiceDecoderTestCase(unittest.TestCase): assert decoder.decode({'first-name': 'xx'}, asn1Spec=self.s) == s -class AnyDecoderTestCase(unittest.TestCase): +class AnyDecoderTestCase(BaseTestCase): def setUp(self): + BaseTestCase.setUp(self) + self.s = univ.Any() def testSimple(self): diff --git a/tests/codec/native/test_encoder.py b/tests/codec/native/test_encoder.py index a1d9efc..cfa5b89 100644 --- a/tests/codec/native/test_encoder.py +++ b/tests/codec/native/test_encoder.py @@ -5,28 +5,33 @@ # License: http://pyasn1.sf.net/license.html # import sys + try: import unittest2 as unittest except ImportError: import unittest -from pyasn1.type import tag, namedtype, univ +from tests.base import BaseTestCase + +from pyasn1.type import namedtype, univ from pyasn1.codec.native import encoder from pyasn1.compat.octets import str2octs from pyasn1.error import PyAsn1Error -class BadAsn1SpecTestCase(unittest.TestCase): +class BadAsn1SpecTestCase(BaseTestCase): def testBadValueType(self): try: encoder.encode('not an Asn1Item') + except PyAsn1Error: pass + else: assert 0, 'Invalid value type accepted' -class IntegerEncoderTestCase(unittest.TestCase): +class IntegerEncoderTestCase(BaseTestCase): def testPosInt(self): assert encoder.encode(univ.Integer(12)) == 12 @@ -34,7 +39,7 @@ class IntegerEncoderTestCase(unittest.TestCase): assert encoder.encode(univ.Integer(-12)) == -12 -class BooleanEncoderTestCase(unittest.TestCase): +class BooleanEncoderTestCase(BaseTestCase): def testTrue(self): assert encoder.encode(univ.Boolean(1)) is True @@ -42,33 +47,35 @@ class BooleanEncoderTestCase(unittest.TestCase): assert encoder.encode(univ.Boolean(0)) is False -class BitStringEncoderTestCase(unittest.TestCase): +class BitStringEncoderTestCase(BaseTestCase): def setUp(self): + BaseTestCase.setUp(self) self.b = univ.BitString((1, 0, 1, 0, 1, 0, 0, 1, 1, 0, 0, 0, 1, 0, 1)) def testValue(self): assert encoder.encode(self.b) == '101010011000101' -class OctetStringEncoderTestCase(unittest.TestCase): +class OctetStringEncoderTestCase(BaseTestCase): def setUp(self): + BaseTestCase.setUp(self) self.o = univ.OctetString('Quick brown fox') def testValue(self): assert encoder.encode(self.o) == str2octs('Quick brown fox') -class NullEncoderTestCase(unittest.TestCase): +class NullEncoderTestCase(BaseTestCase): def testNull(self): assert encoder.encode(univ.Null('')) is None -class ObjectIdentifierEncoderTestCase(unittest.TestCase): +class ObjectIdentifierEncoderTestCase(BaseTestCase): def testOne(self): assert encoder.encode(univ.ObjectIdentifier((1, 3, 6, 0, 12345))) == '1.3.6.0.12345' -class RealEncoderTestCase(unittest.TestCase): +class RealEncoderTestCase(BaseTestCase): def testChar(self): assert encoder.encode(univ.Real((123, 10, 11))) == 1.23e+13 @@ -79,8 +86,10 @@ class RealEncoderTestCase(unittest.TestCase): assert encoder.encode(univ.Real('-inf')) == float('-inf') -class SequenceEncoderTestCase(unittest.TestCase): +class SequenceEncoderTestCase(BaseTestCase): def setUp(self): + BaseTestCase.setUp(self) + self.s = univ.Sequence(componentType=namedtype.NamedTypes( namedtype.NamedType('place-holder', univ.Null('')), namedtype.OptionalNamedType('first-name', univ.OctetString('')), @@ -95,13 +104,17 @@ class SequenceEncoderTestCase(unittest.TestCase): assert encoder.encode(s) == {'place-holder': None, 'first-name': str2octs('abc'), 'age': 123} -class ChoiceEncoderTestCase(unittest.TestCase): +class ChoiceEncoderTestCase(BaseTestCase): def setUp(self): - self.s = univ.Choice(componentType=namedtype.NamedTypes( - namedtype.NamedType('place-holder', univ.Null('')), - namedtype.NamedType('number', univ.Integer(0)), - namedtype.NamedType('string', univ.OctetString()) - )) + BaseTestCase.setUp(self) + + self.s = univ.Choice( + componentType=namedtype.NamedTypes( + namedtype.NamedType('place-holder', univ.Null('')), + namedtype.NamedType('number', univ.Integer(0)), + namedtype.NamedType('string', univ.OctetString()) + ) + ) def testEmpty(self): try: @@ -116,8 +129,9 @@ class ChoiceEncoderTestCase(unittest.TestCase): assert encoder.encode(self.s) == {'place-holder': None} -class AnyEncoderTestCase(unittest.TestCase): +class AnyEncoderTestCase(BaseTestCase): def setUp(self): + BaseTestCase.setUp(self) self.s = univ.Any(encoder.encode(univ.OctetString('fox'))) def testSimple(self): |