github.com/grumpyhome/grumpy@v0.3.1-0.20201208125205-7b775405bdf1/grumpy-runtime-src/third_party/stdlib/test/test_md5.py (about) 1 # Testing md5 module 2 import warnings 3 warnings.filterwarnings("ignore", "the md5 module is deprecated.*", 4 DeprecationWarning) 5 6 import unittest 7 # from md5 import md5 8 import md5 as _md5 9 md5 = _md5.md5 10 from test import test_support 11 12 def hexstr(s): 13 import string 14 h = string.hexdigits 15 r = '' 16 for c in s: 17 i = ord(c) 18 r = r + h[(i >> 4) & 0xF] + h[i & 0xF] 19 return r 20 21 class MD5_Test(unittest.TestCase): 22 23 def md5test(self, s, expected): 24 self.assertEqual(hexstr(md5(s).digest()), expected) 25 self.assertEqual(md5(s).hexdigest(), expected) 26 27 def test_basics(self): 28 eq = self.md5test 29 eq('', 'd41d8cd98f00b204e9800998ecf8427e') 30 eq('a', '0cc175b9c0f1b6a831c399e269772661') 31 eq('abc', '900150983cd24fb0d6963f7d28e17f72') 32 eq('message digest', 'f96b697d7cb7938d525a2f31aaf161d0') 33 eq('abcdefghijklmnopqrstuvwxyz', 'c3fcd3d76192e4007dfb496cca67e13b') 34 eq('ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789', 35 'd174ab98d277d9f5a5611c2c9f419d9f') 36 eq('12345678901234567890123456789012345678901234567890123456789012345678901234567890', 37 '57edf4a22be3c955ac49da2e2107b67a') 38 39 def test_hexdigest(self): 40 # hexdigest is new with Python 2.0 41 m = md5('testing the hexdigest method') 42 h = m.hexdigest() 43 self.assertEqual(hexstr(m.digest()), h) 44 45 def test_large_update(self): 46 aas = 'a' * 64 47 bees = 'b' * 64 48 cees = 'c' * 64 49 50 m1 = md5() 51 m1.update(aas) 52 m1.update(bees) 53 m1.update(cees) 54 55 m2 = md5() 56 m2.update(aas + bees + cees) 57 self.assertEqual(m1.digest(), m2.digest()) 58 59 def test_main(): 60 test_support.run_unittest(MD5_Test) 61 62 if __name__ == '__main__': 63 test_main()