test.py (3364B)
1 import os 2 import unittest 3 from tomber import * 4 from random import randrange 5 from shutil import rmtree, copyfile 6 7 8 class tomberTester(unittest.TestCase): 9 10 @classmethod 11 def setUpClass(self): 12 self.pid = str(os.getpid()) 13 self.tombfile = '.'.join([self.pid, 'tomb']) 14 self.keyfile = '.'.join([self.pid, 'key']) 15 self.keyfile2 = '.'.join([self.pid, '2ndkey']) 16 self.exhumedkey = '.'.join([self.pid, 'exhumed']) 17 self.mountpath = './tmptomb' 18 os.mkdir(self.mountpath) 19 # generate a passphrase with spaces 20 self.passphrase = str(randrange(2 ** 64)).replace("", " ")[1:-1] 21 self.passphrase2 = str(randrange(2 ** 64)) 22 self.imagefile = '.'.join([self.pid, 'jpg']) 23 copyfile( 24 '/'.join([os.path.dirname(os.path.abspath(__file__)), 'test.jpg']), 25 self.imagefile) 26 27 @classmethod 28 def tearDownClass(self): 29 os.unlink(self.tombfile) 30 os.unlink(self.keyfile) 31 os.unlink(self.keyfile2) 32 os.unlink(self.imagefile) 33 os.unlink(self.exhumedkey) 34 rmtree(self.mountpath, ignore_errors=True) 35 36 def test_01_dig(self): 37 """ Dig a tomb of 10mb""" 38 self.assertTrue(tdig(self.tombfile, 10)[0]) 39 40 def test_02_forge(self): 41 """ Forge a keyfile and set a passphrase """ 42 self.assertTrue(tforge(self.keyfile, self.passphrase)[0]) 43 44 def test_03_lock(self): 45 """ Lock created tomb with forged keyfile """ 46 self.assertTrue(tlock(self.tombfile, self.keyfile, self.passphrase)[0]) 47 48 def test_04_open(self): 49 """ Open the created tomb with forged keyfile and passhrase """ 50 self.assertTrue(topen( 51 self.tombfile, self.keyfile, self.passphrase, self.mountpath 52 )[0] 53 ) 54 55 def test_05_close(self): 56 """ Close the created tomb """ 57 self.assertTrue(tclose(self.tombfile.split('.')[0])[0]) 58 59 def test_06_resize(self): 60 """ Resize created tomb to 12mb """ 61 self.assertTrue(tresize( 62 self.tombfile, self.keyfile, self.passphrase, 12 63 )[0] 64 ) 65 66 def test_07_passwd(self): 67 """ Change password in keyfile """ 68 self.assertTrue(tpasswd( 69 self.keyfile, self.passphrase2, self.passphrase 70 )[0] 71 ) 72 73 def test_08_bury(self): 74 """ Bury keyfile in a image file """ 75 self.assertTrue(tbury( 76 self.keyfile, self.passphrase2, self.imagefile 77 )[0] 78 ) 79 80 def test_09_exhume(self): 81 """ Exhume a key from an image """ 82 self.assertTrue(texhume( 83 self.exhumedkey, self.passphrase2, self.imagefile 84 )[0] 85 ) 86 87 def test_10_setkey(self): 88 """ Forge a new key and and set different keyfile to created tomb """ 89 tforge(self.keyfile2, self.passphrase) 90 self.assertTrue(tsetkey( 91 self.keyfile, 92 self.tombfile, 93 self.keyfile2, 94 self.passphrase2, 95 self.passphrase 96 )[0] 97 ) 98 99 def test_11_slam(self): 100 """ Slam open tombs """ 101 topen(self.tombfile, self.keyfile2, self.passphrase, self.mountpath) 102 self.assertTrue(tslam()[0]) 103 104 if __name__ == '__main__': 105 unittest.main()