diff options
Diffstat (limited to 'Lib/test/test_crypt.py')
-rw-r--r-- | Lib/test/test_crypt.py | 28 |
1 files changed, 24 insertions, 4 deletions
diff --git a/Lib/test/test_crypt.py b/Lib/test/test_crypt.py index 2adb28d7cea..cfb7341e20a 100644 --- a/Lib/test/test_crypt.py +++ b/Lib/test/test_crypt.py @@ -1,7 +1,11 @@ from test import support import unittest -crypt = support.import_module('crypt') +def setUpModule(): + # this import will raise unittest.SkipTest if _crypt doesn't exist, + # so it has to be done in setUpModule for test discovery to work + global crypt + crypt = support.import_module('crypt') class CryptTestCase(unittest.TestCase): @@ -10,8 +14,24 @@ class CryptTestCase(unittest.TestCase): if support.verbose: print('Test encryption: ', c) -def test_main(): - support.run_unittest(CryptTestCase) + def test_salt(self): + self.assertEqual(len(crypt._saltchars), 64) + for method in crypt.methods: + salt = crypt.mksalt(method) + self.assertEqual(len(salt), + method.salt_chars + (3 if method.ident else 0)) + + def test_saltedcrypt(self): + for method in crypt.methods: + pw = crypt.crypt('assword', method) + self.assertEqual(len(pw), method.total_size) + pw = crypt.crypt('assword', crypt.mksalt(method)) + self.assertEqual(len(pw), method.total_size) + + def test_methods(self): + # Gurantee that METHOD_CRYPT is the last method in crypt.methods. + self.assertTrue(len(crypt.methods) >= 1) + self.assertEqual(crypt.METHOD_CRYPT, crypt.methods[-1]) if __name__ == "__main__": - test_main() + unittest.main() |