Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit b167b04

Browse files
committed
Add tests to test_weakref.py to bring code coverage in _weakref.c up to 100%.
Port test_md5.py to PyUnit. (Written by Neal Norwitz; from SF patch 736962) (Backport candidate)
1 parent 35415da commit b167b04

3 files changed

Lines changed: 54 additions & 27 deletions

File tree

Lib/test/output/test_md5

Lines changed: 0 additions & 9 deletions
This file was deleted.

Lib/test/test_md5.py

Lines changed: 46 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,30 +1,58 @@
11
# Testing md5 module
22

3-
import string
3+
import unittest
44
from md5 import md5
5+
from test import test_support
56

67
def hexstr(s):
8+
import string
79
h = string.hexdigits
810
r = ''
911
for c in s:
1012
i = ord(c)
1113
r = r + h[(i >> 4) & 0xF] + h[i & 0xF]
1214
return r
1315

14-
def md5test(s):
15-
return 'MD5 ("' + s + '") = ' + hexstr(md5(s).digest())
16-
17-
print 'MD5 test suite:'
18-
print md5test('')
19-
print md5test('a')
20-
print md5test('abc')
21-
print md5test('message digest')
22-
print md5test('abcdefghijklmnopqrstuvwxyz')
23-
print md5test('ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789')
24-
print md5test('12345678901234567890123456789012345678901234567890123456789012345678901234567890')
25-
26-
# hexdigest is new with Python 2.0
27-
m = md5('testing the hexdigest method')
28-
h = m.hexdigest()
29-
if hexstr(m.digest()) != h:
30-
print 'hexdigest() failed'
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()

Lib/test/test_weakref.py

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -249,6 +249,10 @@ def test_getweakrefcount(self):
249249
self.assert_(weakref.getweakrefcount(o) == 4,
250250
"got wrong number of weak reference objects")
251251

252+
# assumes ints do not support weakrefs
253+
self.assert_(weakref.getweakrefcount(1) == 0,
254+
"got wrong number of weak reference objects for int")
255+
252256
def test_getweakrefs(self):
253257
o = C()
254258
ref1 = weakref.ref(o, self.callback)
@@ -264,6 +268,10 @@ def test_getweakrefs(self):
264268
self.assert_(weakref.getweakrefs(o) == [ref1],
265269
"list of refs does not match")
266270

271+
# assumes ints do not support weakrefs
272+
self.assert_(weakref.getweakrefs(1) == [],
273+
"list of refs does not match for int")
274+
267275
def test_newstyle_number_ops(self):
268276
class F(float):
269277
pass

0 commit comments

Comments
 (0)