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