diff --git a/Lib/test/test_format.py b/Lib/test/test_format.py
index 76b9fd4..cd46bc2 100644
--- a/Lib/test/test_format.py
+++ b/Lib/test/test_format.py
@@ -1,7 +1,9 @@
-from test.test_support import verbose, have_unicode, TestFailed
 import sys
-from test.test_support import MAX_Py_ssize_t
-maxsize = MAX_Py_ssize_t
+from test.test_support import verbose, have_unicode, TestFailed
+import test.test_support as test_support
+import unittest
+
+maxsize = test_support.MAX_Py_ssize_t
 
 # test string formatting operator (I am not sure if this is being tested
 # elsewhere but, surely, some of the given cases are *not* tested because
@@ -11,6 +13,7 @@
 overflowok = 1
 overflowrequired = 0
 
+
 def testformat(formatstr, args, output=None, limit=None):
     if verbose:
         if output:
@@ -51,232 +54,242 @@
             if verbose:
                 print 'yes'
 
+
 def testboth(formatstr, *args):
     testformat(formatstr, *args)
     if have_unicode:
         testformat(unicode(formatstr), *args)
 
 
-testboth("%.1d", (1,), "1")
-testboth("%.*d", (sys.maxint,1))  # expect overflow
-testboth("%.100d", (1,), '0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001')
-testboth("%#.117x", (1,), '0x000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001')
-testboth("%#.118x", (1,), '0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001')
+class FormatTest(unittest.TestCase):
+    def test_format(self):
+        testboth("%.1d", (1,), "1")
+        testboth("%.*d", (sys.maxint,1))  # expect overflow
+        testboth("%.100d", (1,), '0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001')
+        testboth("%#.117x", (1,), '0x000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001')
+        testboth("%#.118x", (1,), '0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001')
 
-testboth("%f", (1.0,), "1.000000")
-# these are trying to test the limits of the internal magic-number-length
-# formatting buffer, if that number changes then these tests are less
-# effective
-testboth("%#.*g", (109, -1.e+49/3.))
-testboth("%#.*g", (110, -1.e+49/3.))
-testboth("%#.*g", (110, -1.e+100/3.))
+        testboth("%f", (1.0,), "1.000000")
+        # these are trying to test the limits of the internal magic-number-length
+        # formatting buffer, if that number changes then these tests are less
+        # effective
+        testboth("%#.*g", (109, -1.e+49/3.))
+        testboth("%#.*g", (110, -1.e+49/3.))
+        testboth("%#.*g", (110, -1.e+100/3.))
 
-# test some ridiculously large precision, expect overflow
-testboth('%12.*f', (123456, 1.0))
+        # test some ridiculously large precision, expect overflow
+        testboth('%12.*f', (123456, 1.0))
 
-# check for internal overflow validation on length of precision
-overflowrequired = 1
-testboth("%#.*g", (110, -1.e+100/3.))
-testboth("%#.*G", (110, -1.e+100/3.))
-testboth("%#.*f", (110, -1.e+100/3.))
-testboth("%#.*F", (110, -1.e+100/3.))
-overflowrequired = 0
+        # check for internal overflow validation on length of precision
+        overflowrequired = 1
+        testboth("%#.*g", (110, -1.e+100/3.))
+        testboth("%#.*G", (110, -1.e+100/3.))
+        testboth("%#.*f", (110, -1.e+100/3.))
+        testboth("%#.*F", (110, -1.e+100/3.))
+        overflowrequired = 0
 
-# Formatting of long integers. Overflow is not ok
-overflowok = 0
-testboth("%x", 10L, "a")
-testboth("%x", 100000000000L, "174876e800")
-testboth("%o", 10L, "12")
-testboth("%o", 100000000000L, "1351035564000")
-testboth("%d", 10L, "10")
-testboth("%d", 100000000000L, "100000000000")
+        # Formatting of long integers. Overflow is not ok
+        overflowok = 0
+        testboth("%x", 10L, "a")
+        testboth("%x", 100000000000L, "174876e800")
+        testboth("%o", 10L, "12")
+        testboth("%o", 100000000000L, "1351035564000")
+        testboth("%d", 10L, "10")
+        testboth("%d", 100000000000L, "100000000000")
 
-big = 123456789012345678901234567890L
-testboth("%d", big, "123456789012345678901234567890")
-testboth("%d", -big, "-123456789012345678901234567890")
-testboth("%5d", -big, "-123456789012345678901234567890")
-testboth("%31d", -big, "-123456789012345678901234567890")
-testboth("%32d", -big, " -123456789012345678901234567890")
-testboth("%-32d", -big, "-123456789012345678901234567890 ")
-testboth("%032d", -big, "-0123456789012345678901234567890")
-testboth("%-032d", -big, "-123456789012345678901234567890 ")
-testboth("%034d", -big, "-000123456789012345678901234567890")
-testboth("%034d", big, "0000123456789012345678901234567890")
-testboth("%0+34d", big, "+000123456789012345678901234567890")
-testboth("%+34d", big, "   +123456789012345678901234567890")
-testboth("%34d", big, "    123456789012345678901234567890")
-testboth("%.2d", big, "123456789012345678901234567890")
-testboth("%.30d", big, "123456789012345678901234567890")
-testboth("%.31d", big, "0123456789012345678901234567890")
-testboth("%32.31d", big, " 0123456789012345678901234567890")
-testboth("%d", float(big), "123456________________________", 6)
+        big = 123456789012345678901234567890L
+        testboth("%d", big, "123456789012345678901234567890")
+        testboth("%d", -big, "-123456789012345678901234567890")
+        testboth("%5d", -big, "-123456789012345678901234567890")
+        testboth("%31d", -big, "-123456789012345678901234567890")
+        testboth("%32d", -big, " -123456789012345678901234567890")
+        testboth("%-32d", -big, "-123456789012345678901234567890 ")
+        testboth("%032d", -big, "-0123456789012345678901234567890")
+        testboth("%-032d", -big, "-123456789012345678901234567890 ")
+        testboth("%034d", -big, "-000123456789012345678901234567890")
+        testboth("%034d", big, "0000123456789012345678901234567890")
+        testboth("%0+34d", big, "+000123456789012345678901234567890")
+        testboth("%+34d", big, "   +123456789012345678901234567890")
+        testboth("%34d", big, "    123456789012345678901234567890")
+        testboth("%.2d", big, "123456789012345678901234567890")
+        testboth("%.30d", big, "123456789012345678901234567890")
+        testboth("%.31d", big, "0123456789012345678901234567890")
+        testboth("%32.31d", big, " 0123456789012345678901234567890")
+        testboth("%d", float(big), "123456________________________", 6)
 
-big = 0x1234567890abcdef12345L  # 21 hex digits
-testboth("%x", big, "1234567890abcdef12345")
-testboth("%x", -big, "-1234567890abcdef12345")
-testboth("%5x", -big, "-1234567890abcdef12345")
-testboth("%22x", -big, "-1234567890abcdef12345")
-testboth("%23x", -big, " -1234567890abcdef12345")
-testboth("%-23x", -big, "-1234567890abcdef12345 ")
-testboth("%023x", -big, "-01234567890abcdef12345")
-testboth("%-023x", -big, "-1234567890abcdef12345 ")
-testboth("%025x", -big, "-0001234567890abcdef12345")
-testboth("%025x", big, "00001234567890abcdef12345")
-testboth("%0+25x", big, "+0001234567890abcdef12345")
-testboth("%+25x", big, "   +1234567890abcdef12345")
-testboth("%25x", big, "    1234567890abcdef12345")
-testboth("%.2x", big, "1234567890abcdef12345")
-testboth("%.21x", big, "1234567890abcdef12345")
-testboth("%.22x", big, "01234567890abcdef12345")
-testboth("%23.22x", big, " 01234567890abcdef12345")
-testboth("%-23.22x", big, "01234567890abcdef12345 ")
-testboth("%X", big, "1234567890ABCDEF12345")
-testboth("%#X", big, "0X1234567890ABCDEF12345")
-testboth("%#x", big, "0x1234567890abcdef12345")
-testboth("%#x", -big, "-0x1234567890abcdef12345")
-testboth("%#.23x", -big, "-0x001234567890abcdef12345")
-testboth("%#+.23x", big, "+0x001234567890abcdef12345")
-testboth("%# .23x", big, " 0x001234567890abcdef12345")
-testboth("%#+.23X", big, "+0X001234567890ABCDEF12345")
-testboth("%#-+.23X", big, "+0X001234567890ABCDEF12345")
-testboth("%#-+26.23X", big, "+0X001234567890ABCDEF12345")
-testboth("%#-+27.23X", big, "+0X001234567890ABCDEF12345 ")
-testboth("%#+27.23X", big, " +0X001234567890ABCDEF12345")
-# next one gets two leading zeroes from precision, and another from the
-# 0 flag and the width
-testboth("%#+027.23X", big, "+0X0001234567890ABCDEF12345")
-# same, except no 0 flag
-testboth("%#+27.23X", big, " +0X001234567890ABCDEF12345")
-testboth("%x", float(big), "123456_______________", 6)
+        big = 0x1234567890abcdef12345L  # 21 hex digits
+        testboth("%x", big, "1234567890abcdef12345")
+        testboth("%x", -big, "-1234567890abcdef12345")
+        testboth("%5x", -big, "-1234567890abcdef12345")
+        testboth("%22x", -big, "-1234567890abcdef12345")
+        testboth("%23x", -big, " -1234567890abcdef12345")
+        testboth("%-23x", -big, "-1234567890abcdef12345 ")
+        testboth("%023x", -big, "-01234567890abcdef12345")
+        testboth("%-023x", -big, "-1234567890abcdef12345 ")
+        testboth("%025x", -big, "-0001234567890abcdef12345")
+        testboth("%025x", big, "00001234567890abcdef12345")
+        testboth("%0+25x", big, "+0001234567890abcdef12345")
+        testboth("%+25x", big, "   +1234567890abcdef12345")
+        testboth("%25x", big, "    1234567890abcdef12345")
+        testboth("%.2x", big, "1234567890abcdef12345")
+        testboth("%.21x", big, "1234567890abcdef12345")
+        testboth("%.22x", big, "01234567890abcdef12345")
+        testboth("%23.22x", big, " 01234567890abcdef12345")
+        testboth("%-23.22x", big, "01234567890abcdef12345 ")
+        testboth("%X", big, "1234567890ABCDEF12345")
+        testboth("%#X", big, "0X1234567890ABCDEF12345")
+        testboth("%#x", big, "0x1234567890abcdef12345")
+        testboth("%#x", -big, "-0x1234567890abcdef12345")
+        testboth("%#.23x", -big, "-0x001234567890abcdef12345")
+        testboth("%#+.23x", big, "+0x001234567890abcdef12345")
+        testboth("%# .23x", big, " 0x001234567890abcdef12345")
+        testboth("%#+.23X", big, "+0X001234567890ABCDEF12345")
+        testboth("%#-+.23X", big, "+0X001234567890ABCDEF12345")
+        testboth("%#-+26.23X", big, "+0X001234567890ABCDEF12345")
+        testboth("%#-+27.23X", big, "+0X001234567890ABCDEF12345 ")
+        testboth("%#+27.23X", big, " +0X001234567890ABCDEF12345")
+        # next one gets two leading zeroes from precision, and another from the
+        # 0 flag and the width
+        testboth("%#+027.23X", big, "+0X0001234567890ABCDEF12345")
+        # same, except no 0 flag
+        testboth("%#+27.23X", big, " +0X001234567890ABCDEF12345")
+        testboth("%x", float(big), "123456_______________", 6)
 
-big = 012345670123456701234567012345670L  # 32 octal digits
-testboth("%o", big, "12345670123456701234567012345670")
-testboth("%o", -big, "-12345670123456701234567012345670")
-testboth("%5o", -big, "-12345670123456701234567012345670")
-testboth("%33o", -big, "-12345670123456701234567012345670")
-testboth("%34o", -big, " -12345670123456701234567012345670")
-testboth("%-34o", -big, "-12345670123456701234567012345670 ")
-testboth("%034o", -big, "-012345670123456701234567012345670")
-testboth("%-034o", -big, "-12345670123456701234567012345670 ")
-testboth("%036o", -big, "-00012345670123456701234567012345670")
-testboth("%036o", big, "000012345670123456701234567012345670")
-testboth("%0+36o", big, "+00012345670123456701234567012345670")
-testboth("%+36o", big, "   +12345670123456701234567012345670")
-testboth("%36o", big, "    12345670123456701234567012345670")
-testboth("%.2o", big, "12345670123456701234567012345670")
-testboth("%.32o", big, "12345670123456701234567012345670")
-testboth("%.33o", big, "012345670123456701234567012345670")
-testboth("%34.33o", big, " 012345670123456701234567012345670")
-testboth("%-34.33o", big, "012345670123456701234567012345670 ")
-testboth("%o", big, "12345670123456701234567012345670")
-testboth("%#o", big, "012345670123456701234567012345670")
-testboth("%#o", -big, "-012345670123456701234567012345670")
-testboth("%#.34o", -big, "-0012345670123456701234567012345670")
-testboth("%#+.34o", big, "+0012345670123456701234567012345670")
-testboth("%# .34o", big, " 0012345670123456701234567012345670")
-testboth("%#+.34o", big, "+0012345670123456701234567012345670")
-testboth("%#-+.34o", big, "+0012345670123456701234567012345670")
-testboth("%#-+37.34o", big, "+0012345670123456701234567012345670  ")
-testboth("%#+37.34o", big, "  +0012345670123456701234567012345670")
-# next one gets one leading zero from precision
-testboth("%.33o", big, "012345670123456701234567012345670")
-# base marker shouldn't change that, since "0" is redundant
-testboth("%#.33o", big, "012345670123456701234567012345670")
-# but reduce precision, and base marker should add a zero
-testboth("%#.32o", big, "012345670123456701234567012345670")
-# one leading zero from precision, and another from "0" flag & width
-testboth("%034.33o", big, "0012345670123456701234567012345670")
-# base marker shouldn't change that
-testboth("%0#34.33o", big, "0012345670123456701234567012345670")
-testboth("%o", float(big), "123456__________________________", 6)
+        big = 012345670123456701234567012345670L  # 32 octal digits
+        testboth("%o", big, "12345670123456701234567012345670")
+        testboth("%o", -big, "-12345670123456701234567012345670")
+        testboth("%5o", -big, "-12345670123456701234567012345670")
+        testboth("%33o", -big, "-12345670123456701234567012345670")
+        testboth("%34o", -big, " -12345670123456701234567012345670")
+        testboth("%-34o", -big, "-12345670123456701234567012345670 ")
+        testboth("%034o", -big, "-012345670123456701234567012345670")
+        testboth("%-034o", -big, "-12345670123456701234567012345670 ")
+        testboth("%036o", -big, "-00012345670123456701234567012345670")
+        testboth("%036o", big, "000012345670123456701234567012345670")
+        testboth("%0+36o", big, "+00012345670123456701234567012345670")
+        testboth("%+36o", big, "   +12345670123456701234567012345670")
+        testboth("%36o", big, "    12345670123456701234567012345670")
+        testboth("%.2o", big, "12345670123456701234567012345670")
+        testboth("%.32o", big, "12345670123456701234567012345670")
+        testboth("%.33o", big, "012345670123456701234567012345670")
+        testboth("%34.33o", big, " 012345670123456701234567012345670")
+        testboth("%-34.33o", big, "012345670123456701234567012345670 ")
+        testboth("%o", big, "12345670123456701234567012345670")
+        testboth("%#o", big, "012345670123456701234567012345670")
+        testboth("%#o", -big, "-012345670123456701234567012345670")
+        testboth("%#.34o", -big, "-0012345670123456701234567012345670")
+        testboth("%#+.34o", big, "+0012345670123456701234567012345670")
+        testboth("%# .34o", big, " 0012345670123456701234567012345670")
+        testboth("%#+.34o", big, "+0012345670123456701234567012345670")
+        testboth("%#-+.34o", big, "+0012345670123456701234567012345670")
+        testboth("%#-+37.34o", big, "+0012345670123456701234567012345670  ")
+        testboth("%#+37.34o", big, "  +0012345670123456701234567012345670")
+        # next one gets one leading zero from precision
+        testboth("%.33o", big, "012345670123456701234567012345670")
+        # base marker shouldn't change that, since "0" is redundant
+        testboth("%#.33o", big, "012345670123456701234567012345670")
+        # but reduce precision, and base marker should add a zero
+        testboth("%#.32o", big, "012345670123456701234567012345670")
+        # one leading zero from precision, and another from "0" flag & width
+        testboth("%034.33o", big, "0012345670123456701234567012345670")
+        # base marker shouldn't change that
+        testboth("%0#34.33o", big, "0012345670123456701234567012345670")
+        testboth("%o", float(big), "123456__________________________", 6)
 
-# Some small ints, in both Python int and long flavors).
-testboth("%d", 42, "42")
-testboth("%d", -42, "-42")
-testboth("%d", 42L, "42")
-testboth("%d", -42L, "-42")
-testboth("%d", 42.0, "42")
-testboth("%#x", 1, "0x1")
-testboth("%#x", 1L, "0x1")
-testboth("%#X", 1, "0X1")
-testboth("%#X", 1L, "0X1")
-testboth("%#x", 1.0, "0x1")
-testboth("%#o", 1, "01")
-testboth("%#o", 1L, "01")
-testboth("%#o", 0, "0")
-testboth("%#o", 0L, "0")
-testboth("%o", 0, "0")
-testboth("%o", 0L, "0")
-testboth("%d", 0, "0")
-testboth("%d", 0L, "0")
-testboth("%#x", 0, "0x0")
-testboth("%#x", 0L, "0x0")
-testboth("%#X", 0, "0X0")
-testboth("%#X", 0L, "0X0")
+        # Some small ints, in both Python int and long flavors).
+        testboth("%d", 42, "42")
+        testboth("%d", -42, "-42")
+        testboth("%d", 42L, "42")
+        testboth("%d", -42L, "-42")
+        testboth("%d", 42.0, "42")
+        testboth("%#x", 1, "0x1")
+        testboth("%#x", 1L, "0x1")
+        testboth("%#X", 1, "0X1")
+        testboth("%#X", 1L, "0X1")
+        testboth("%#x", 1.0, "0x1")
+        testboth("%#o", 1, "01")
+        testboth("%#o", 1L, "01")
+        testboth("%#o", 0, "0")
+        testboth("%#o", 0L, "0")
+        testboth("%o", 0, "0")
+        testboth("%o", 0L, "0")
+        testboth("%d", 0, "0")
+        testboth("%d", 0L, "0")
+        testboth("%#x", 0, "0x0")
+        testboth("%#x", 0L, "0x0")
+        testboth("%#X", 0, "0X0")
+        testboth("%#X", 0L, "0X0")
 
-testboth("%x", 0x42, "42")
-testboth("%x", -0x42, "-42")
-testboth("%x", 0x42L, "42")
-testboth("%x", -0x42L, "-42")
-testboth("%x", float(0x42), "42")
+        testboth("%x", 0x42, "42")
+        testboth("%x", -0x42, "-42")
+        testboth("%x", 0x42L, "42")
+        testboth("%x", -0x42L, "-42")
+        testboth("%x", float(0x42), "42")
 
-testboth("%o", 042, "42")
-testboth("%o", -042, "-42")
-testboth("%o", 042L, "42")
-testboth("%o", -042L, "-42")
-testboth("%o", float(042), "42")
+        testboth("%o", 042, "42")
+        testboth("%o", -042, "-42")
+        testboth("%o", 042L, "42")
+        testboth("%o", -042L, "-42")
+        testboth("%o", float(042), "42")
 
-# Test exception for unknown format characters
-if verbose:
-    print 'Testing exceptions'
+        # Test exception for unknown format characters
+        if verbose:
+            print 'Testing exceptions'
 
-def test_exc(formatstr, args, exception, excmsg):
-    try:
-        testformat(formatstr, args)
-    except exception, exc:
-        if str(exc) == excmsg:
-            if verbose:
-                print "yes"
-        else:
-            if verbose: print 'no'
-            print 'Unexpected ', exception, ':', repr(str(exc))
-    except:
-        if verbose: print 'no'
-        print 'Unexpected exception'
-        raise
-    else:
-        raise TestFailed, 'did not get expected exception: %s' % excmsg
+        def test_exc(formatstr, args, exception, excmsg):
+            try:
+                testformat(formatstr, args)
+            except exception, exc:
+                if str(exc) == excmsg:
+                    if verbose:
+                        print "yes"
+                else:
+                    if verbose: print 'no'
+                    print 'Unexpected ', exception, ':', repr(str(exc))
+            except:
+                if verbose: print 'no'
+                print 'Unexpected exception'
+                raise
+            else:
+                raise TestFailed, 'did not get expected exception: %s' % excmsg
 
-test_exc('abc %a', 1, ValueError,
-         "unsupported format character 'a' (0x61) at index 5")
-if have_unicode:
-    test_exc(unicode('abc %\u3000','raw-unicode-escape'), 1, ValueError,
-             "unsupported format character '?' (0x3000) at index 5")
+        test_exc('abc %a', 1, ValueError,
+                 "unsupported format character 'a' (0x61) at index 5")
+        if have_unicode:
+            test_exc(unicode('abc %\u3000','raw-unicode-escape'), 1, ValueError,
+                     "unsupported format character '?' (0x3000) at index 5")
 
-test_exc('%d', '1', TypeError, "%d format: a number is required, not str")
-test_exc('%g', '1', TypeError, "float argument required, not str")
-test_exc('no format', '1', TypeError,
-         "not all arguments converted during string formatting")
-test_exc('no format', u'1', TypeError,
-         "not all arguments converted during string formatting")
-test_exc(u'no format', '1', TypeError,
-         "not all arguments converted during string formatting")
-test_exc(u'no format', u'1', TypeError,
-         "not all arguments converted during string formatting")
+        test_exc('%d', '1', TypeError, "%d format: a number is required, not str")
+        test_exc('%g', '1', TypeError, "float argument required, not str")
+        test_exc('no format', '1', TypeError,
+                 "not all arguments converted during string formatting")
+        test_exc('no format', u'1', TypeError,
+                 "not all arguments converted during string formatting")
+        test_exc(u'no format', '1', TypeError,
+                 "not all arguments converted during string formatting")
+        test_exc(u'no format', u'1', TypeError,
+                 "not all arguments converted during string formatting")
 
-class Foobar(long):
-    def __oct__(self):
-        # Returning a non-string should not blow up.
-        return self + 1
+        class Foobar(long):
+            def __oct__(self):
+                # Returning a non-string should not blow up.
+                return self + 1
 
-test_exc('%o', Foobar(), TypeError,
-         "expected string or Unicode object, long found")
+        test_exc('%o', Foobar(), TypeError,
+                 "expected string or Unicode object, long found")
 
-if maxsize == 2**31-1:
-    # crashes 2.2.1 and earlier:
-    try:
-        "%*d"%(maxsize, -127)
-    except MemoryError:
-        pass
-    else:
-        raise TestFailed, '"%*d"%(maxsize, -127) should fail'
+        if maxsize == 2**31-1:
+            # crashes 2.2.1 and earlier:
+            try:
+                "%*d"%(maxsize, -127)
+            except MemoryError:
+                pass
+            else:
+                raise TestFailed, '"%*d"%(maxsize, -127) should fail'
+
+def test_main():
+    test_support.run_unittest(FormatTest)
+
+
+if __name__ == "__main__":
+    unittest.main()
