home *** CD-ROM | disk | FTP | other *** search
/ Maximum CD 2011 June / maximum-cd-2011-06.iso / DiscContents / LibO_3.3.1_Win_x86_install_multi.exe / libreoffice1.cab / test_md5.py < prev    next >
Encoding:
Python Source  |  2011-02-15  |  1.7 KB  |  62 lines

  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()
  62.