diff --git a/Lib/test/output/test_sha b/Lib/test/output/test_sha
deleted file mode 100644
index c4231ac..0000000
--- a/Lib/test/output/test_sha
+++ /dev/null
@@ -1,4 +0,0 @@
-test_sha
-test 0 ok
-test 1 ok
-test 2 ok
diff --git a/Lib/test/test_sha.py b/Lib/test/test_sha.py
index b2367dc..bc76809 100644
--- a/Lib/test/test_sha.py
+++ b/Lib/test/test_sha.py
@@ -1,28 +1,30 @@
 # Testing sha module (NIST's Secure Hash Algorithm)
 
-import sha
-
 # use the three examples from Federal Information Processing Standards
 # Publication 180-1, Secure Hash Standard,  1995 April 17
 # http://www.itl.nist.gov/div897/pubs/fip180-1.htm
 
-s = [''] * 3
-d = [''] * 3
+import sha
+import test_support
+import unittest
 
-s[0] = 'abc'
-d[0] = 'a9993e364706816aba3e25717850c26c9cd0d89d'
 
-s[1] = 'abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq'
-d[1] = '84983e441c3bd26ebaae4aa1f95129e5e54670f1'
+class SHATestCase(unittest.TestCase):
+    def check(self, data, digest):
+        computed = sha.new(data).hexdigest()
+        self.assert_(computed == digest)
 
-s[2] = 'a' * 1000000
-d[2] = '34aa973cd4c4daa4f61eeb2bdbad27316534016f'
+    def test_case_1(self):
+        self.check("abc",
+                   "a9993e364706816aba3e25717850c26c9cd0d89d")
 
-for i in range(3):
-    test = sha.new(s[i]).hexdigest()
-    if test == d[i]:
-        print "test %d ok" % i
-    else:
-        print "test %d failed" % i
-        print "expected", d[i]
-        print "computed", test
+    def test_case_2(self):
+        self.check("abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq",
+                   "84983e441c3bd26ebaae4aa1f95129e5e54670f1")
+
+    def test_case_3(self):
+        self.check("a" * 1000000,
+                   "34aa973cd4c4daa4f61eeb2bdbad27316534016f")
+
+
+test_support.run_unittest(SHATestCase)
