summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorelie <elie>2013-12-08 15:18:54 +0000
committerelie <elie>2013-12-08 15:18:54 +0000
commitd901df205427ce7ef72b074e05e6d7bb1f8b4ee9 (patch)
treee9bea12d89096d295cbee2e70081c8a58eab82fe
parent36bd6c436907c2a78ef8fe9255192e05506b9927 (diff)
downloadpyasn1-d901df205427ce7ef72b074e05e6d7bb1f8b4ee9.tar.gz
test coverage extended to cover pyasn1 types __repr__() function
-rw-r--r--CHANGES1
-rw-r--r--test/type/test_namedtype.py6
-rw-r--r--test/type/test_namedval.py22
-rw-r--r--test/type/test_tag.py10
-rw-r--r--test/type/test_univ.py7
5 files changed, 44 insertions, 2 deletions
diff --git a/CHANGES b/CHANGES
index 77cb870..1640960 100644
--- a/CHANGES
+++ b/CHANGES
@@ -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(