mirror of
https://github.com/classilla/tenfourfox.git
synced 2024-09-10 11:54:40 +00:00
108 lines
4.0 KiB
Python
108 lines
4.0 KiB
Python
from pyasn1.type import tag
|
|
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 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 TagCmpTestCase(TagTestCaseBase):
|
|
def testCmp(self):
|
|
assert self.t1 == self.t2, 'tag comparation fails'
|
|
|
|
def testHash(self):
|
|
assert hash(self.t1) == hash(self.t2), 'tag hash comparation fails'
|
|
|
|
def testSequence(self):
|
|
assert self.t1[0] == self.t2[0] and \
|
|
self.t1[1] == self.t2[1] and \
|
|
self.t1[2] == self.t2[2], 'tag sequence protocol fails'
|
|
|
|
class TagSetTestCaseBase(unittest.TestCase):
|
|
def setUp(self):
|
|
self.ts1 = tag.initTagSet(
|
|
tag.Tag(tag.tagClassUniversal, tag.tagFormatSimple, 12)
|
|
)
|
|
self.ts2 = tag.initTagSet(
|
|
tag.Tag(tag.tagClassUniversal, tag.tagFormatSimple, 12)
|
|
)
|
|
|
|
class TagSetCmpTestCase(TagSetTestCaseBase):
|
|
def testCmp(self):
|
|
assert self.ts1 == self.ts2, 'tag set comparation fails'
|
|
|
|
def testHash(self):
|
|
assert hash(self.ts1) == hash(self.ts2), 'tag set hash comp. fails'
|
|
|
|
def testLen(self):
|
|
assert len(self.ts1) == len(self.ts2), 'tag length comparation fails'
|
|
|
|
class TaggingTestSuite(TagSetTestCaseBase):
|
|
def testImplicitTag(self):
|
|
t = self.ts1.tagImplicitly(
|
|
tag.Tag(tag.tagClassApplication, tag.tagFormatSimple, 14)
|
|
)
|
|
assert t == tag.TagSet(
|
|
tag.Tag(tag.tagClassApplication, tag.tagFormatSimple, 12),
|
|
tag.Tag(tag.tagClassApplication, tag.tagFormatSimple, 14)
|
|
), 'implicit tagging went wrong'
|
|
|
|
def testExplicitTag(self):
|
|
t = self.ts1.tagExplicitly(
|
|
tag.Tag(tag.tagClassPrivate, tag.tagFormatSimple, 32)
|
|
)
|
|
assert t == tag.TagSet(
|
|
tag.Tag(tag.tagClassUniversal, tag.tagFormatSimple, 12),
|
|
tag.Tag(tag.tagClassUniversal, tag.tagFormatSimple, 12),
|
|
tag.Tag(tag.tagClassPrivate, tag.tagFormatConstructed, 32)
|
|
), 'explicit tagging went wrong'
|
|
|
|
class TagSetAddTestSuite(TagSetTestCaseBase):
|
|
def testAdd(self):
|
|
t = self.ts1 + tag.Tag(tag.tagClassApplication, tag.tagFormatSimple, 2)
|
|
assert t == tag.TagSet(
|
|
tag.Tag(tag.tagClassUniversal, tag.tagFormatSimple, 12),
|
|
tag.Tag(tag.tagClassUniversal, tag.tagFormatSimple, 12),
|
|
tag.Tag(tag.tagClassApplication, tag.tagFormatSimple, 2)
|
|
), 'TagSet.__add__() fails'
|
|
|
|
def testRadd(self):
|
|
t = tag.Tag(tag.tagClassApplication, tag.tagFormatSimple, 2) + self.ts1
|
|
assert t == tag.TagSet(
|
|
tag.Tag(tag.tagClassUniversal, tag.tagFormatSimple, 12),
|
|
tag.Tag(tag.tagClassApplication, tag.tagFormatSimple, 2),
|
|
tag.Tag(tag.tagClassUniversal, tag.tagFormatSimple, 12)
|
|
), 'TagSet.__radd__() fails'
|
|
|
|
class SuperTagSetTestCase(TagSetTestCaseBase):
|
|
def testSuperTagCheck1(self):
|
|
assert self.ts1.isSuperTagSetOf(
|
|
tag.TagSet(
|
|
tag.Tag(tag.tagClassUniversal, tag.tagFormatSimple, 12),
|
|
tag.Tag(tag.tagClassUniversal, tag.tagFormatSimple, 12)
|
|
)), 'isSuperTagSetOf() fails'
|
|
|
|
def testSuperTagCheck2(self):
|
|
assert not self.ts1.isSuperTagSetOf(
|
|
tag.TagSet(
|
|
tag.Tag(tag.tagClassUniversal, tag.tagFormatSimple, 12),
|
|
tag.Tag(tag.tagClassUniversal, tag.tagFormatSimple, 13)
|
|
)), 'isSuperTagSetOf() fails'
|
|
|
|
def testSuperTagCheck3(self):
|
|
assert self.ts1.isSuperTagSetOf(
|
|
tag.TagSet((), tag.Tag(tag.tagClassUniversal,
|
|
tag.tagFormatSimple, 12))
|
|
), 'isSuperTagSetOf() fails'
|
|
|
|
if __name__ == '__main__': unittest.main()
|