from pyasn1.type import namedtype, univ from pyasn1.codec.der import encoder from pyasn1.error import PyAsn1Error try: import unittest except ImportError: raise PyAsn1Error( 'PyUnit package\'s missing. See http://pyunit.sourceforge.net/' ) class OctetStringEncoderTestCase(unittest.TestCase): def testShortMode(self): assert encoder.encode( univ.OctetString('Quick brown fox') ) == '\004\017Quick brown fox' class BitStringEncoderTestCase(unittest.TestCase): def testShortMode(self): assert encoder.encode( univ.BitString((1,)) ) == '\003\002\007\200' class SetWithChoiceEncoderTestCase(unittest.TestCase): def setUp(self): c = univ.Choice(componentType=namedtype.NamedTypes( namedtype.NamedType('name', univ.OctetString('')), namedtype.NamedType('amount', univ.Integer(0)) )) self.s = univ.Set(componentType=namedtype.NamedTypes( namedtype.NamedType('place-holder', univ.Null('')), namedtype.NamedType('status', c) )) def testDefMode(self): self.s.setComponentByPosition(0) self.s.setComponentByName('status') self.s.getComponentByName('status').setComponentByPosition(0, 'ann') assert encoder.encode(self.s) == '1\007\004\003ann\005\000' if __name__ == '__main__': unittest.main()