crypto_tests.py 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. import pwman.util.config as config
  2. import os
  3. from pwman.util.crypto import (CryptoEngine, CryptoException,
  4. CryptoNoCallbackException, CryptoEngineOld)
  5. # set cls_timout to negative number (e.g. -1) to disable
  6. default_config = {'Global': {'umask': '0100', 'colors': 'yes',
  7. 'cls_timeout': '5'
  8. },
  9. 'Database': {'type': 'SQLite',
  10. 'filename': os.path.join("tests", "pwman.db")},
  11. 'Encryption': {'algorithm': 'AES'},
  12. 'Readline': {'history': os.path.join("tests",
  13. "history")}
  14. }
  15. config.set_defaults(default_config)
  16. import unittest
  17. class CryptoTest(unittest.TestCase):
  18. def test_no_algorithm(self):
  19. config.set_value('Encryption', 'algorithm', '')
  20. self.assertRaises((CryptoException,), CryptoEngine)
  21. def test_getcipher(self):
  22. crypto = CryptoEngine()
  23. self.assertRaises((CryptoNoCallbackException,), crypto._getcipher)
  24. def test_prepare_data(self):
  25. obj = 'dummy_data'
  26. self.assertTrue(True)
  27. def test_get(self):
  28. CryptoEngine._instance_new = None
  29. old_engine = CryptoEngine.get(0.4)
  30. self.assertIsInstance(old_engine, CryptoEngineOld)
  31. CryptoEngine._instance = None
  32. new_engine = CryptoEngine.get(dbver=0.5)
  33. self.assertIsInstance(new_engine, CryptoEngine)
  34. self.assertFalse(isinstance(new_engine, CryptoEngineOld))
  35. CryptoEngine._instance = None
  36. old_engine = CryptoEngine.get()
  37. def test_alive(self):
  38. old_engine = CryptoEngine.get()
  39. self.assertTrue(old_engine.alive())
  40. old_engine._cipher = None
  41. self.assertFalse(old_engine.alive())
  42. CryptoEngine.get()