Merge pull request #36 from d0/master

Extend CardGenerator unittests
This commit is contained in:
Frank Morgner
2015-01-19 23:41:11 +01:00

View File

@@ -21,28 +21,31 @@ import anydbm
import os
import tempfile
import unittest
from virtualsmartcard.CardGenerator import CardGenerator
class TestNPACardGenerator(unittest.TestCase):
class ISO7816GeneratorTest(unittest.TestCase):
card_type = 'iso7816'
def setUp(self):
self.filename = tempfile.mktemp()
self.nPA_generator = CardGenerator('nPA')
self.nPA_generator.password = "TestPassword"
self.card_generator = CardGenerator(self.card_type)
self.card_generator.password = "TestPassword"
def test_nPA_creation(self):
self.nPA_generator.generateCard()
self.nPA_generator.saveCard(self.filename)
mf, sam = self.nPA_generator.getCard()
def test_card_creation(self):
self.card_generator.generateCard()
self.card_generator.saveCard(self.filename)
mf, sam = self.card_generator.getCard()
self.assertIsNotNone(mf)
self.assertIsNotNone(sam)
os.unlink(self.filename)
def test_load_nPA_from_file_nPA_from_file(self):
self.nPA_generator.generateCard()
self.nPA_generator.saveCard(self.filename)
local_generator= CardGenerator('nPA')
local_generator.password = self.nPA_generator.password
def test_load_card_from_file(self):
self.card_generator.generateCard()
self.card_generator.saveCard(self.filename)
local_generator= CardGenerator(self.card_type)
local_generator.password = self.card_generator.password
local_generator.loadCard(self.filename)
mf, sam = local_generator.getCard()
self.assertIsNotNone(mf)
@@ -51,7 +54,36 @@ class TestNPACardGenerator(unittest.TestCase):
def test_load_nonexistent_file(self):
with self.assertRaises(anydbm.error):
self.nPA_generator.loadCard(self.filename)
self.card_generator.loadCard(self.filename)
def test_get_and_set_card(self):
self.card_generator.generateCard()
mf, sam = self.card_generator.getCard()
local_generator= CardGenerator(self.card_type)
local_generator.setCard(mf, sam)
class TestNPACardGenerator(ISO7816GeneratorTest):
card_type = 'nPA'
def test_readDatagroups(self):
path = os.path.dirname(__file__)
datagroupsFile = path + "/../../../../npa-example-data/Example_Dataset_Mueller_Gertrud.txt"
self.card_generator.readDatagroups(datagroupsFile)
mf, sam = self.card_generator.getCard()
self.assertIsNotNone(mf)
self.assertIsNotNone(sam)
class CryptoflexGeneratorTest(ISO7816GeneratorTest):
card_type = 'cryptoflex'
# Not tested because an ePass card currently cannot be generated without user
# interaction.
#
#class ePassGeneratorTest(ISO7816GeneratorTest):
#
# card_type = 'ePass'
if __name__ == '__main__':
unittest.main()