diff options
author | elie <elie> | 2013-12-08 15:18:54 +0000 |
---|---|---|
committer | elie <elie> | 2013-12-08 15:18:54 +0000 |
commit | d901df205427ce7ef72b074e05e6d7bb1f8b4ee9 (patch) | |
tree | e9bea12d89096d295cbee2e70081c8a58eab82fe | |
parent | 36bd6c436907c2a78ef8fe9255192e05506b9927 (diff) | |
download | pyasn1-d901df205427ce7ef72b074e05e6d7bb1f8b4ee9.tar.gz |
test coverage extended to cover pyasn1 types __repr__() function
-rw-r--r-- | CHANGES | 1 | ||||
-rw-r--r-- | test/type/test_namedtype.py | 6 | ||||
-rw-r--r-- | test/type/test_namedval.py | 22 | ||||
-rw-r--r-- | test/type/test_tag.py | 10 | ||||
-rw-r--r-- | test/type/test_univ.py | 7 |
5 files changed, 44 insertions, 2 deletions
@@ -24,6 +24,7 @@ Revision 0.1.8 which accepts both var-args and keyword-args. Default repr() modified to reflect this change. - NamedTypes() and NamedValues() made comparable. +- Test coverage extended to cover pyasn1 types __repr__() function. - Fix to NamedType.__repr__() to work properly. - Fixes to __repr__() implementation of many built-in ASN.1 types to take into account all of their initializers such as tagSet, subtypeSpec etc. diff --git a/test/type/test_namedtype.py b/test/type/test_namedtype.py index 3a4f305..f94f542 100644 --- a/test/type/test_namedtype.py +++ b/test/type/test_namedtype.py @@ -12,10 +12,12 @@ else: class NamedTypeCaseBase(unittest.TestCase): def setUp(self): - self.e = namedtype.NamedType('age', univ.Integer()) + self.e = namedtype.NamedType('age', univ.Integer(0)) def testIter(self): n, t = self.e assert n == 'age' or t == univ.Integer(), 'unpack fails' + def testRepr(self): + assert eval(repr(self.e), { 'NamedType': namedtype.NamedType, 'Integer': univ.Integer}) == self.e, 'repr() fails' class NamedTypesCaseBase(unittest.TestCase): def setUp(self): @@ -24,6 +26,8 @@ class NamedTypesCaseBase(unittest.TestCase): namedtype.OptionalNamedType('age', univ.Integer(0)), namedtype.NamedType('family-name', univ.OctetString('')) ) + def testRepr(self): + assert eval(repr(self.e), { 'NamedTypes': namedtype.NamedTypes, 'NamedType': namedtype.NamedType, 'OptionalNamedType': namedtype.OptionalNamedType, 'Integer': univ.Integer, 'OctetString': univ.OctetString }) == self.e, 'repr() fails' def testIter(self): for t in self.e: break diff --git a/test/type/test_namedval.py b/test/type/test_namedval.py new file mode 100644 index 0000000..664348f --- /dev/null +++ b/test/type/test_namedval.py @@ -0,0 +1,22 @@ +from pyasn1.type import namedval +from pyasn1.error import PyAsn1Error +from sys import version_info +if version_info[0:2] < (2, 7) or \ + version_info[0:2] in ( (3, 0), (3, 1) ): + try: + import unittest2 as unittest + except ImportError: + import unittest +else: + import unittest + +class NamedValuesCaseBase(unittest.TestCase): + def setUp(self): + self.e = namedval.NamedValues(('off', 0), ('on', 1)) + def testIter(self): + off, on = self.e + assert off == ('off', 0) or of == ('on', 1), 'unpack fails' + def testRepr(self): + assert eval(repr(self.e), { 'NamedValues': namedval.NamedValues }) == self.e, 'repr() fails' + +if __name__ == '__main__': unittest.main() diff --git a/test/type/test_tag.py b/test/type/test_tag.py index 78146dc..a9c4005 100644 --- a/test/type/test_tag.py +++ b/test/type/test_tag.py @@ -14,7 +14,11 @@ class TagTestCaseBase(unittest.TestCase): def setUp(self): self.t1 = tag.Tag(tag.tagClassUniversal, tag.tagFormatSimple, 3) self.t2 = tag.Tag(tag.tagClassUniversal, tag.tagFormatSimple, 3) - + +class TagReprTestCase(TagTestCaseBase): + def testRepr(self): + assert eval(repr(self.t1), { 'Tag': tag.Tag }) == self.t1, 'repr() fails' + class TagCmpTestCase(TagTestCaseBase): def testCmp(self): assert self.t1 == self.t2, 'tag comparation fails' @@ -36,6 +40,10 @@ class TagSetTestCaseBase(unittest.TestCase): tag.Tag(tag.tagClassUniversal, tag.tagFormatSimple, 12) ) +class TagSetReprTestCase(TagSetTestCaseBase): + def testRepr(self): + assert eval(repr(self.ts1), { 'TagSet': tag.TagSet, 'Tag': tag.Tag }) == self.ts1, 'repr() fails' + class TagSetCmpTestCase(TagSetTestCaseBase): def testCmp(self): assert self.ts1 == self.ts2, 'tag set comparation fails' diff --git a/test/type/test_univ.py b/test/type/test_univ.py index 6567256..561b454 100644 --- a/test/type/test_univ.py +++ b/test/type/test_univ.py @@ -271,6 +271,8 @@ class SequenceOf(unittest.TestCase): componentType=univ.OctetString('') ) self.s2 = self.s1.clone() + def testRepr(self): + assert eval(repr(self.s1.clone().setComponents('a', 'b')), { 'SequenceOf': univ.SequenceOf, 'OctetString': univ.OctetString }) == self.s1.clone().setComponents('a', 'b'), 'repr() fails' def testTag(self): assert self.s1.getTagSet() == tag.TagSet( (), @@ -373,6 +375,8 @@ class Sequence(unittest.TestCase): namedtype.OptionalNamedType('nick', univ.OctetString('')), namedtype.DefaultedNamedType('age', univ.Integer(34)) )) + def testRepr(self): + assert eval(repr(self.s1.clone().setComponents('a', 'b')), { 'Sequence': univ.Sequence, 'OctetString': univ.OctetString, 'Integer': univ.Integer, 'NamedTypes': namedtype.NamedTypes, 'NamedType': namedtype.NamedType, 'OptionalNamedType': namedtype.OptionalNamedType, 'DefaultedNamedType': namedtype.DefaultedNamedType }) == self.s1.clone().setComponents('a', 'b'), 'repr() fails' def testTag(self): assert self.s1.getTagSet() == tag.TagSet( (), @@ -501,6 +505,9 @@ class Choice(unittest.TestCase): )) def testTag(self): assert self.s1.getTagSet() == tag.TagSet(), 'wrong tagSet' + def testRepr(self): + assert eval(repr(self.s1.clone().setComponents('a')), { 'Choice': univ.Choice, 'OctetString': univ.OctetString, 'Integer': univ.Integer, 'Boolean': univ.Boolean, 'NamedTypes': namedtype.NamedTypes, 'NamedType': namedtype.NamedType }) == self.s1.clone().setComponents('a'), 'repr() fails' + assert eval(repr(self.s1.clone().setComponents(sex=self.s1.setComponentByPosition(1).getComponentByPosition(1).clone().setComponents(count=univ.Integer(123)))), { 'Choice': univ.Choice, 'OctetString': univ.OctetString, 'Integer': univ.Integer, 'Boolean': univ.Boolean, 'NamedTypes': namedtype.NamedTypes, 'NamedType': namedtype.NamedType }) == self.s1.clone().setComponents(sex=self.s1.setComponentByPosition(1).getComponentByPosition(1).clone().setComponents(count=univ.Integer(123))), 'repr() fails' def testOuterByTypeWithPythonValue(self): self.s1.setComponentByType(univ.OctetString.tagSet, 'abc') assert self.s1.getComponentByType( |