summaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
authorMartin Gracik <mgracik@redhat.com>2009-03-05 12:28:37 +0100
committerMartin Gracik <mgracik@redhat.com>2009-03-09 11:12:28 +0100
commit99095913b9b47059e3c3e1706d49176716a490f2 (patch)
tree67a4ecac552d5b5894941ee1d408489ece96f4ef /tests
parent6c41fc2205163d2106e79f5a0c32afe51e93bfb8 (diff)
downloadanaconda-99095913b9b47059e3c3e1706d49176716a490f2.tar.gz
anaconda-99095913b9b47059e3c3e1706d49176716a490f2.tar.xz
anaconda-99095913b9b47059e3c3e1706d49176716a490f2.zip
Added crypto.py unittest; Updated devicelibs tests baseclass.py and lvm.py
baseclass.py needed some imports to work properly. Updated the test for getMaxLVSize() in lvm.py to not pass PE size as argument.
Diffstat (limited to 'tests')
-rw-r--r--tests/storage/devicelibs/baseclass.py4
-rw-r--r--tests/storage/devicelibs/crypto.py123
-rw-r--r--tests/storage/devicelibs/lvm.py3
3 files changed, 128 insertions, 2 deletions
diff --git a/tests/storage/devicelibs/baseclass.py b/tests/storage/devicelibs/baseclass.py
index d1264f5b6..efc9c803f 100644
--- a/tests/storage/devicelibs/baseclass.py
+++ b/tests/storage/devicelibs/baseclass.py
@@ -2,6 +2,10 @@ import unittest
import os
import subprocess
+# need to import these first before doing anything
+import anaconda_log
+import upgrade
+
class TestDevicelibs(unittest.TestCase):
_LOOP_DEVICES = (("/dev/loop0", "/tmp/test-virtdev0"),
diff --git a/tests/storage/devicelibs/crypto.py b/tests/storage/devicelibs/crypto.py
new file mode 100644
index 000000000..6a76569c5
--- /dev/null
+++ b/tests/storage/devicelibs/crypto.py
@@ -0,0 +1,123 @@
+import baseclass
+import unittest
+import storage.devicelibs.crypto as crypto
+
+import tempfile
+import os
+
+class TestCrypto(baseclass.TestDevicelibs):
+
+ def runTest(self):
+ ##
+ ## is_luks
+ ##
+ # pass
+ self.assertEqual(crypto.is_luks(self._LOOP_DEV0), -22)
+ self.assertEqual(crypto.is_luks("/not/existing/device"), -22)
+
+ ##
+ ## luks_format
+ ##
+ # pass
+ self.assertEqual(crypto.luks_format(self._LOOP_DEV0, passphrase="secret", cipher="aes-cbc-essiv:sha256", key_size=256), None)
+
+ # make a key file
+ handle, keyfile = tempfile.mkstemp(prefix="key", text=False)
+ os.write(handle, "nobodyknows")
+ os.close(handle)
+
+ # format with key file
+ self.assertEqual(crypto.luks_format(self._LOOP_DEV1, key_file=keyfile), None)
+
+ # fail
+ self.assertRaises(crypto.CryptoError, crypto.luks_format, "/not/existing/device", passphrase="secret", cipher="aes-cbc-essiv:sha256", key_size=256)
+ # no passhprase or key file
+ self.assertRaises(ValueError, crypto.luks_format, self._LOOP_DEV1, cipher="aes-cbc-essiv:sha256", key_size=256)
+
+ ##
+ ## is_luks
+ ##
+ # pass
+ self.assertEqual(crypto.is_luks(self._LOOP_DEV0), 0) # 0 = is luks
+ self.assertEqual(crypto.is_luks(self._LOOP_DEV1), 0)
+
+ ##
+ ## luks_add_key
+ ##
+ # pass
+ self.assertEqual(crypto.luks_add_key(self._LOOP_DEV0, new_passphrase="another-secret", passphrase="secret"), None)
+
+ # make another key file
+ handle, new_keyfile = tempfile.mkstemp(prefix="key", text=False)
+ os.write(handle, "area51")
+ os.close(handle)
+
+ # add new key file
+ self.assertEqual(crypto.luks_add_key(self._LOOP_DEV1, new_key_file=new_keyfile, key_file=keyfile), None)
+
+ # fail
+ self.assertRaises(RuntimeError, crypto.luks_add_key, self._LOOP_DEV0, new_passphrase="another-secret", passphrase="wrong-passphrase")
+
+ ##
+ ## luks_remove_key
+ ##
+ # fail
+ self.assertRaises(RuntimeError, crypto.luks_remove_key, self._LOOP_DEV0, del_passphrase="another-secret", passphrase="wrong-pasphrase")
+
+ # pass
+ self.assertEqual(crypto.luks_remove_key(self._LOOP_DEV0, del_passphrase="another-secret", passphrase="secret"), None)
+
+ # remove key file
+ self.assertEqual(crypto.luks_remove_key(self._LOOP_DEV1, del_key_file=new_keyfile, key_file=keyfile), None)
+
+ ##
+ ## luks_open
+ ##
+ # pass
+ self.assertEqual(crypto.luks_open(self._LOOP_DEV0, "crypted", passphrase="secret"), None)
+ self.assertEqual(crypto.luks_open(self._LOOP_DEV1, "encrypted", key_file=keyfile), None)
+
+ # fail
+ self.assertRaises(crypto.CryptoError, crypto.luks_open, "/not/existing/device", "another-crypted", passphrase="secret")
+ self.assertRaises(crypto.CryptoError, crypto.luks_open, "/not/existing/device", "another-crypted", key_file=keyfile)
+ # no passhprase or key file
+ self.assertRaises(ValueError, crypto.luks_open, self._LOOP_DEV1, "another-crypted")
+
+ ##
+ ## luks_status
+ ##
+ # pass
+ self.assertEqual(crypto.luks_status("crypted"), True)
+ self.assertEqual(crypto.luks_status("encrypted"), True)
+ self.assertEqual(crypto.luks_status("another-crypted"), False)
+
+ ##
+ ## luks_uuid
+ ##
+ # pass
+ uuid = crypto.luks_uuid(self._LOOP_DEV0)
+ self.assertEqual(crypto.luks_uuid(self._LOOP_DEV0), uuid)
+ uuid = crypto.luks_uuid(self._LOOP_DEV1)
+ self.assertEqual(crypto.luks_uuid(self._LOOP_DEV1), uuid)
+
+ ##
+ ## luks_close
+ ##
+ # pass
+ self.assertEqual(crypto.luks_close("crypted"), None)
+ self.assertEqual(crypto.luks_close("encrypted"), None)
+
+ # fail
+ self.assertRaises(crypto.CryptoError, crypto.luks_close, "wrong-name")
+ # already closed
+ self.assertRaises(crypto.CryptoError, crypto.luks_close, "crypted")
+ self.assertRaises(crypto.CryptoError, crypto.luks_close, "encrypted")
+
+ # cleanup
+ os.unlink(keyfile)
+ os.unlink(new_keyfile)
+
+
+if __name__ == "__main__":
+ suite = unittest.TestLoader().loadTestsFromTestCase(TestCrypto)
+ unittest.TextTestRunner(verbosity=2).run(suite)
diff --git a/tests/storage/devicelibs/lvm.py b/tests/storage/devicelibs/lvm.py
index 210ad9d95..62c52d168 100644
--- a/tests/storage/devicelibs/lvm.py
+++ b/tests/storage/devicelibs/lvm.py
@@ -202,8 +202,7 @@ class TestLVM(baseclass.TestDevicelibs):
#def testGetMaxLVSize(self):
# pass
- # why do we specify the PE ? not needed...
- self.assertEqual(lvm.getMaxLVSize(4), 16*1024**2)
+ self.assertEqual(lvm.getMaxLVSize(), 16*1024**2)
#def testSafeLVMName(self):
# pass