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