2010-10-15 13:00:27 +00:00
|
|
|
"""Unit test for utils.py"""
|
|
|
|
|
|
|
|
import utils
|
|
|
|
import unittest
|
|
|
|
|
|
|
|
class APDUCase1Tests(unittest.TestCase):
|
|
|
|
|
|
|
|
def setUp(self):
|
|
|
|
self.a4 = utils.C_APDU("\x00\xa4\x00\x00")
|
|
|
|
|
|
|
|
def tearDown(self):
|
|
|
|
del self.a4
|
|
|
|
|
|
|
|
def testCreation(self):
|
|
|
|
self.assertEqual(0, self.a4.CLA)
|
|
|
|
self.assertEqual(0xa4, self.a4.INS)
|
|
|
|
self.assertEqual(0, self.a4.P1)
|
|
|
|
self.assertEqual(0, self.a4.P2)
|
|
|
|
|
|
|
|
def testRender(self):
|
|
|
|
self.assertEqual("\x00\xa4\x00\x00", self.a4.render())
|
|
|
|
|
|
|
|
def testCopy(self):
|
|
|
|
b0 = utils.C_APDU(self.a4, INS=0xb0)
|
|
|
|
|
|
|
|
self.assertEqual("\x00\xb0\x00\x00", b0.render())
|
|
|
|
|
|
|
|
def testAssign(self):
|
|
|
|
self.a4.p2 = 5
|
|
|
|
|
|
|
|
self.assertEqual(5, self.a4.P2)
|
|
|
|
self.assertEqual("\x00\xa4\x00\x05", self.a4.render())
|
|
|
|
|
|
|
|
def testCreateSequence(self):
|
|
|
|
a4_2 = utils.C_APDU(0, 0xa4, 0, 0)
|
|
|
|
|
|
|
|
self.assertEqual(self.a4.render(), a4_2.render())
|
|
|
|
|
2010-10-15 15:58:54 +00:00
|
|
|
class APDUChainTests(unittest.TestCase):
|
|
|
|
|
|
|
|
def testChain(self):
|
|
|
|
a = utils.R_APDU("abcd\x61\x04")
|
|
|
|
b = utils.R_APDU("efgh\x90\x00")
|
|
|
|
|
|
|
|
c = a.append(b)
|
|
|
|
|
|
|
|
self.assertEqual("abcdefgh\x90\x00", c.render())
|