python-2.5.2/win32/Lib/test/test_md5.py
changeset 0 ae805ac0140d
equal deleted inserted replaced
-1:000000000000 0:ae805ac0140d
       
     1 # Testing md5 module
       
     2 
       
     3 import unittest
       
     4 from md5 import md5
       
     5 from test import test_support
       
     6 
       
     7 def hexstr(s):
       
     8     import string
       
     9     h = string.hexdigits
       
    10     r = ''
       
    11     for c in s:
       
    12         i = ord(c)
       
    13         r = r + h[(i >> 4) & 0xF] + h[i & 0xF]
       
    14     return r
       
    15 
       
    16 class MD5_Test(unittest.TestCase):
       
    17 
       
    18     def md5test(self, s, expected):
       
    19         self.assertEqual(hexstr(md5(s).digest()), expected)
       
    20         self.assertEqual(md5(s).hexdigest(), expected)
       
    21 
       
    22     def test_basics(self):
       
    23         eq = self.md5test
       
    24         eq('', 'd41d8cd98f00b204e9800998ecf8427e')
       
    25         eq('a', '0cc175b9c0f1b6a831c399e269772661')
       
    26         eq('abc', '900150983cd24fb0d6963f7d28e17f72')
       
    27         eq('message digest', 'f96b697d7cb7938d525a2f31aaf161d0')
       
    28         eq('abcdefghijklmnopqrstuvwxyz', 'c3fcd3d76192e4007dfb496cca67e13b')
       
    29         eq('ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789',
       
    30            'd174ab98d277d9f5a5611c2c9f419d9f')
       
    31         eq('12345678901234567890123456789012345678901234567890123456789012345678901234567890',
       
    32            '57edf4a22be3c955ac49da2e2107b67a')
       
    33 
       
    34     def test_hexdigest(self):
       
    35         # hexdigest is new with Python 2.0
       
    36         m = md5('testing the hexdigest method')
       
    37         h = m.hexdigest()
       
    38         self.assertEqual(hexstr(m.digest()), h)
       
    39 
       
    40     def test_large_update(self):
       
    41         aas = 'a' * 64
       
    42         bees = 'b' * 64
       
    43         cees = 'c' * 64
       
    44 
       
    45         m1 = md5()
       
    46         m1.update(aas)
       
    47         m1.update(bees)
       
    48         m1.update(cees)
       
    49 
       
    50         m2 = md5()
       
    51         m2.update(aas + bees + cees)
       
    52         self.assertEqual(m1.digest(), m2.digest())
       
    53 
       
    54 def test_main():
       
    55     test_support.run_unittest(MD5_Test)
       
    56 
       
    57 if __name__ == '__main__':
       
    58     test_main()