crypto_tests.py 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  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. CryptoEngine._instance_new = None
  20. config.set_value('Encryption', 'algorithm', '')
  21. self.assertRaises((CryptoException,), CryptoEngine.get)
  22. config.set_value('Encryption', 'algorithm', 'AES')
  23. def test_getcipher(self):
  24. crypto = CryptoEngine()
  25. self.assertRaises((CryptoNoCallbackException,), crypto._getcipher)
  26. def test_prepare_data(self):
  27. obj = 'dummy_data'
  28. self.assertTrue(True)
  29. def test_get(self):
  30. CryptoEngine._instance_new = None
  31. old_engine = CryptoEngine.get(0.4)
  32. self.assertIsInstance(old_engine, CryptoEngineOld)
  33. CryptoEngine._instance = None
  34. new_engine = CryptoEngine.get(dbver=0.5)
  35. self.assertIsInstance(new_engine, CryptoEngine)
  36. self.assertFalse(isinstance(new_engine, CryptoEngineOld))
  37. CryptoEngine._instance = None
  38. old_engine = CryptoEngine.get()
  39. def test_alive(self):
  40. old_engine = CryptoEngine.get()
  41. self.assertTrue(old_engine.alive())
  42. old_engine._cipher = None
  43. self.assertFalse(old_engine.alive())
  44. CryptoEngine.get()
  45. if __name__ == '__main__':
  46. unittest.main()