]> git.proxmox.com Git - mirror_edk2.git/blobdiff - AppPkg/Applications/Python/Python-2.7.2/Lib/lib2to3/tests/test_fixers.py
edk2: Remove AppPkg, StdLib, StdLibPrivateInternalFiles
[mirror_edk2.git] / AppPkg / Applications / Python / Python-2.7.2 / Lib / lib2to3 / tests / test_fixers.py
diff --git a/AppPkg/Applications/Python/Python-2.7.2/Lib/lib2to3/tests/test_fixers.py b/AppPkg/Applications/Python/Python-2.7.2/Lib/lib2to3/tests/test_fixers.py
deleted file mode 100644 (file)
index 25ad5ac..0000000
+++ /dev/null
@@ -1,4529 +0,0 @@
-""" Test suite for the fixer modules """\r
-\r
-# Python imports\r
-import os\r
-import unittest\r
-from itertools import chain\r
-from operator import itemgetter\r
-\r
-# Local imports\r
-from lib2to3 import pygram, pytree, refactor, fixer_util\r
-from lib2to3.tests import support\r
-\r
-\r
-class FixerTestCase(support.TestCase):\r
-\r
-    # Other test cases can subclass this class and replace "fixer_pkg" with\r
-    # their own.\r
-    def setUp(self, fix_list=None, fixer_pkg="lib2to3", options=None):\r
-        if fix_list is None:\r
-            fix_list = [self.fixer]\r
-        self.refactor = support.get_refactorer(fixer_pkg, fix_list, options)\r
-        self.fixer_log = []\r
-        self.filename = u"<string>"\r
-\r
-        for fixer in chain(self.refactor.pre_order,\r
-                           self.refactor.post_order):\r
-            fixer.log = self.fixer_log\r
-\r
-    def _check(self, before, after):\r
-        before = support.reformat(before)\r
-        after = support.reformat(after)\r
-        tree = self.refactor.refactor_string(before, self.filename)\r
-        self.assertEqual(after, unicode(tree))\r
-        return tree\r
-\r
-    def check(self, before, after, ignore_warnings=False):\r
-        tree = self._check(before, after)\r
-        self.assertTrue(tree.was_changed)\r
-        if not ignore_warnings:\r
-            self.assertEqual(self.fixer_log, [])\r
-\r
-    def warns(self, before, after, message, unchanged=False):\r
-        tree = self._check(before, after)\r
-        self.assertTrue(message in "".join(self.fixer_log))\r
-        if not unchanged:\r
-            self.assertTrue(tree.was_changed)\r
-\r
-    def warns_unchanged(self, before, message):\r
-        self.warns(before, before, message, unchanged=True)\r
-\r
-    def unchanged(self, before, ignore_warnings=False):\r
-        self._check(before, before)\r
-        if not ignore_warnings:\r
-            self.assertEqual(self.fixer_log, [])\r
-\r
-    def assert_runs_after(self, *names):\r
-        fixes = [self.fixer]\r
-        fixes.extend(names)\r
-        r = support.get_refactorer("lib2to3", fixes)\r
-        (pre, post) = r.get_fixers()\r
-        n = "fix_" + self.fixer\r
-        if post and post[-1].__class__.__module__.endswith(n):\r
-            # We're the last fixer to run\r
-            return\r
-        if pre and pre[-1].__class__.__module__.endswith(n) and not post:\r
-            # We're the last in pre and post is empty\r
-            return\r
-        self.fail("Fixer run order (%s) is incorrect; %s should be last."\\r
-               %(", ".join([x.__class__.__module__ for x in (pre+post)]), n))\r
-\r
-class Test_ne(FixerTestCase):\r
-    fixer = "ne"\r
-\r
-    def test_basic(self):\r
-        b = """if x <> y:\r
-            pass"""\r
-\r
-        a = """if x != y:\r
-            pass"""\r
-        self.check(b, a)\r
-\r
-    def test_no_spaces(self):\r
-        b = """if x<>y:\r
-            pass"""\r
-\r
-        a = """if x!=y:\r
-            pass"""\r
-        self.check(b, a)\r
-\r
-    def test_chained(self):\r
-        b = """if x<>y<>z:\r
-            pass"""\r
-\r
-        a = """if x!=y!=z:\r
-            pass"""\r
-        self.check(b, a)\r
-\r
-class Test_has_key(FixerTestCase):\r
-    fixer = "has_key"\r
-\r
-    def test_1(self):\r
-        b = """x = d.has_key("x") or d.has_key("y")"""\r
-        a = """x = "x" in d or "y" in d"""\r
-        self.check(b, a)\r
-\r
-    def test_2(self):\r
-        b = """x = a.b.c.d.has_key("x") ** 3"""\r
-        a = """x = ("x" in a.b.c.d) ** 3"""\r
-        self.check(b, a)\r
-\r
-    def test_3(self):\r
-        b = """x = a.b.has_key(1 + 2).__repr__()"""\r
-        a = """x = (1 + 2 in a.b).__repr__()"""\r
-        self.check(b, a)\r
-\r
-    def test_4(self):\r
-        b = """x = a.b.has_key(1 + 2).__repr__() ** -3 ** 4"""\r
-        a = """x = (1 + 2 in a.b).__repr__() ** -3 ** 4"""\r
-        self.check(b, a)\r
-\r
-    def test_5(self):\r
-        b = """x = a.has_key(f or g)"""\r
-        a = """x = (f or g) in a"""\r
-        self.check(b, a)\r
-\r
-    def test_6(self):\r
-        b = """x = a + b.has_key(c)"""\r
-        a = """x = a + (c in b)"""\r
-        self.check(b, a)\r
-\r
-    def test_7(self):\r
-        b = """x = a.has_key(lambda: 12)"""\r
-        a = """x = (lambda: 12) in a"""\r
-        self.check(b, a)\r
-\r
-    def test_8(self):\r
-        b = """x = a.has_key(a for a in b)"""\r
-        a = """x = (a for a in b) in a"""\r
-        self.check(b, a)\r
-\r
-    def test_9(self):\r
-        b = """if not a.has_key(b): pass"""\r
-        a = """if b not in a: pass"""\r
-        self.check(b, a)\r
-\r
-    def test_10(self):\r
-        b = """if not a.has_key(b).__repr__(): pass"""\r
-        a = """if not (b in a).__repr__(): pass"""\r
-        self.check(b, a)\r
-\r
-    def test_11(self):\r
-        b = """if not a.has_key(b) ** 2: pass"""\r
-        a = """if not (b in a) ** 2: pass"""\r
-        self.check(b, a)\r
-\r
-class Test_apply(FixerTestCase):\r
-    fixer = "apply"\r
-\r
-    def test_1(self):\r
-        b = """x = apply(f, g + h)"""\r
-        a = """x = f(*g + h)"""\r
-        self.check(b, a)\r
-\r
-    def test_2(self):\r
-        b = """y = apply(f, g, h)"""\r
-        a = """y = f(*g, **h)"""\r
-        self.check(b, a)\r
-\r
-    def test_3(self):\r
-        b = """z = apply(fs[0], g or h, h or g)"""\r
-        a = """z = fs[0](*g or h, **h or g)"""\r
-        self.check(b, a)\r
-\r
-    def test_4(self):\r
-        b = """apply(f, (x, y) + t)"""\r
-        a = """f(*(x, y) + t)"""\r
-        self.check(b, a)\r
-\r
-    def test_5(self):\r
-        b = """apply(f, args,)"""\r
-        a = """f(*args)"""\r
-        self.check(b, a)\r
-\r
-    def test_6(self):\r
-        b = """apply(f, args, kwds,)"""\r
-        a = """f(*args, **kwds)"""\r
-        self.check(b, a)\r
-\r
-    # Test that complex functions are parenthesized\r
-\r
-    def test_complex_1(self):\r
-        b = """x = apply(f+g, args)"""\r
-        a = """x = (f+g)(*args)"""\r
-        self.check(b, a)\r
-\r
-    def test_complex_2(self):\r
-        b = """x = apply(f*g, args)"""\r
-        a = """x = (f*g)(*args)"""\r
-        self.check(b, a)\r
-\r
-    def test_complex_3(self):\r
-        b = """x = apply(f**g, args)"""\r
-        a = """x = (f**g)(*args)"""\r
-        self.check(b, a)\r
-\r
-    # But dotted names etc. not\r
-\r
-    def test_dotted_name(self):\r
-        b = """x = apply(f.g, args)"""\r
-        a = """x = f.g(*args)"""\r
-        self.check(b, a)\r
-\r
-    def test_subscript(self):\r
-        b = """x = apply(f[x], args)"""\r
-        a = """x = f[x](*args)"""\r
-        self.check(b, a)\r
-\r
-    def test_call(self):\r
-        b = """x = apply(f(), args)"""\r
-        a = """x = f()(*args)"""\r
-        self.check(b, a)\r
-\r
-    # Extreme case\r
-    def test_extreme(self):\r
-        b = """x = apply(a.b.c.d.e.f, args, kwds)"""\r
-        a = """x = a.b.c.d.e.f(*args, **kwds)"""\r
-        self.check(b, a)\r
-\r
-    # XXX Comments in weird places still get lost\r
-    def test_weird_comments(self):\r
-        b = """apply(   # foo\r
-          f, # bar\r
-          args)"""\r
-        a = """f(*args)"""\r
-        self.check(b, a)\r
-\r
-    # These should *not* be touched\r
-\r
-    def test_unchanged_1(self):\r
-        s = """apply()"""\r
-        self.unchanged(s)\r
-\r
-    def test_unchanged_2(self):\r
-        s = """apply(f)"""\r
-        self.unchanged(s)\r
-\r
-    def test_unchanged_3(self):\r
-        s = """apply(f,)"""\r
-        self.unchanged(s)\r
-\r
-    def test_unchanged_4(self):\r
-        s = """apply(f, args, kwds, extras)"""\r
-        self.unchanged(s)\r
-\r
-    def test_unchanged_5(self):\r
-        s = """apply(f, *args, **kwds)"""\r
-        self.unchanged(s)\r
-\r
-    def test_unchanged_6(self):\r
-        s = """apply(f, *args)"""\r
-        self.unchanged(s)\r
-\r
-    def test_unchanged_7(self):\r
-        s = """apply(func=f, args=args, kwds=kwds)"""\r
-        self.unchanged(s)\r
-\r
-    def test_unchanged_8(self):\r
-        s = """apply(f, args=args, kwds=kwds)"""\r
-        self.unchanged(s)\r
-\r
-    def test_unchanged_9(self):\r
-        s = """apply(f, args, kwds=kwds)"""\r
-        self.unchanged(s)\r
-\r
-    def test_space_1(self):\r
-        a = """apply(  f,  args,   kwds)"""\r
-        b = """f(*args, **kwds)"""\r
-        self.check(a, b)\r
-\r
-    def test_space_2(self):\r
-        a = """apply(  f  ,args,kwds   )"""\r
-        b = """f(*args, **kwds)"""\r
-        self.check(a, b)\r
-\r
-class Test_intern(FixerTestCase):\r
-    fixer = "intern"\r
-\r
-    def test_prefix_preservation(self):\r
-        b = """x =   intern(  a  )"""\r
-        a = """import sys\nx =   sys.intern(  a  )"""\r
-        self.check(b, a)\r
-\r
-        b = """y = intern("b" # test\r
-              )"""\r
-        a = """import sys\ny = sys.intern("b" # test\r
-              )"""\r
-        self.check(b, a)\r
-\r
-        b = """z = intern(a+b+c.d,   )"""\r
-        a = """import sys\nz = sys.intern(a+b+c.d,   )"""\r
-        self.check(b, a)\r
-\r
-    def test(self):\r
-        b = """x = intern(a)"""\r
-        a = """import sys\nx = sys.intern(a)"""\r
-        self.check(b, a)\r
-\r
-        b = """z = intern(a+b+c.d,)"""\r
-        a = """import sys\nz = sys.intern(a+b+c.d,)"""\r
-        self.check(b, a)\r
-\r
-        b = """intern("y%s" % 5).replace("y", "")"""\r
-        a = """import sys\nsys.intern("y%s" % 5).replace("y", "")"""\r
-        self.check(b, a)\r
-\r
-    # These should not be refactored\r
-\r
-    def test_unchanged(self):\r
-        s = """intern(a=1)"""\r
-        self.unchanged(s)\r
-\r
-        s = """intern(f, g)"""\r
-        self.unchanged(s)\r
-\r
-        s = """intern(*h)"""\r
-        self.unchanged(s)\r
-\r
-        s = """intern(**i)"""\r
-        self.unchanged(s)\r
-\r
-        s = """intern()"""\r
-        self.unchanged(s)\r
-\r
-class Test_reduce(FixerTestCase):\r
-    fixer = "reduce"\r
-\r
-    def test_simple_call(self):\r
-        b = "reduce(a, b, c)"\r
-        a = "from functools import reduce\nreduce(a, b, c)"\r
-        self.check(b, a)\r
-\r
-    def test_bug_7253(self):\r
-        # fix_tuple_params was being bad and orphaning nodes in the tree.\r
-        b = "def x(arg): reduce(sum, [])"\r
-        a = "from functools import reduce\ndef x(arg): reduce(sum, [])"\r
-        self.check(b, a)\r
-\r
-    def test_call_with_lambda(self):\r
-        b = "reduce(lambda x, y: x + y, seq)"\r
-        a = "from functools import reduce\nreduce(lambda x, y: x + y, seq)"\r
-        self.check(b, a)\r
-\r
-    def test_unchanged(self):\r
-        s = "reduce(a)"\r
-        self.unchanged(s)\r
-\r
-        s = "reduce(a, b=42)"\r
-        self.unchanged(s)\r
-\r
-        s = "reduce(a, b, c, d)"\r
-        self.unchanged(s)\r
-\r
-        s = "reduce(**c)"\r
-        self.unchanged(s)\r
-\r
-        s = "reduce()"\r
-        self.unchanged(s)\r
-\r
-class Test_print(FixerTestCase):\r
-    fixer = "print"\r
-\r
-    def test_prefix_preservation(self):\r
-        b = """print 1,   1+1,   1+1+1"""\r
-        a = """print(1,   1+1,   1+1+1)"""\r
-        self.check(b, a)\r
-\r
-    def test_idempotency(self):\r
-        s = """print()"""\r
-        self.unchanged(s)\r
-\r
-        s = """print('')"""\r
-        self.unchanged(s)\r
-\r
-    def test_idempotency_print_as_function(self):\r
-        self.refactor.driver.grammar = pygram.python_grammar_no_print_statement\r
-        s = """print(1, 1+1, 1+1+1)"""\r
-        self.unchanged(s)\r
-\r
-        s = """print()"""\r
-        self.unchanged(s)\r
-\r
-        s = """print('')"""\r
-        self.unchanged(s)\r
-\r
-    def test_1(self):\r
-        b = """print 1, 1+1, 1+1+1"""\r
-        a = """print(1, 1+1, 1+1+1)"""\r
-        self.check(b, a)\r
-\r
-    def test_2(self):\r
-        b = """print 1, 2"""\r
-        a = """print(1, 2)"""\r
-        self.check(b, a)\r
-\r
-    def test_3(self):\r
-        b = """print"""\r
-        a = """print()"""\r
-        self.check(b, a)\r
-\r
-    def test_4(self):\r
-        # from bug 3000\r
-        b = """print whatever; print"""\r
-        a = """print(whatever); print()"""\r
-        self.check(b, a)\r
-\r
-    def test_5(self):\r
-        b = """print; print whatever;"""\r
-        a = """print(); print(whatever);"""\r
-        self.check(b, a)\r
-\r
-    def test_tuple(self):\r
-        b = """print (a, b, c)"""\r
-        a = """print((a, b, c))"""\r
-        self.check(b, a)\r
-\r
-    # trailing commas\r
-\r
-    def test_trailing_comma_1(self):\r
-        b = """print 1, 2, 3,"""\r
-        a = """print(1, 2, 3, end=' ')"""\r
-        self.check(b, a)\r
-\r
-    def test_trailing_comma_2(self):\r
-        b = """print 1, 2,"""\r
-        a = """print(1, 2, end=' ')"""\r
-        self.check(b, a)\r
-\r
-    def test_trailing_comma_3(self):\r
-        b = """print 1,"""\r
-        a = """print(1, end=' ')"""\r
-        self.check(b, a)\r
-\r
-    # >> stuff\r
-\r
-    def test_vargs_without_trailing_comma(self):\r
-        b = """print >>sys.stderr, 1, 2, 3"""\r
-        a = """print(1, 2, 3, file=sys.stderr)"""\r
-        self.check(b, a)\r
-\r
-    def test_with_trailing_comma(self):\r
-        b = """print >>sys.stderr, 1, 2,"""\r
-        a = """print(1, 2, end=' ', file=sys.stderr)"""\r
-        self.check(b, a)\r
-\r
-    def test_no_trailing_comma(self):\r
-        b = """print >>sys.stderr, 1+1"""\r
-        a = """print(1+1, file=sys.stderr)"""\r
-        self.check(b, a)\r
-\r
-    def test_spaces_before_file(self):\r
-        b = """print >>  sys.stderr"""\r
-        a = """print(file=sys.stderr)"""\r
-        self.check(b, a)\r
-\r
-    def test_with_future_print_function(self):\r
-        s = "from __future__ import print_function\n" \\r
-            "print('Hai!', end=' ')"\r
-        self.unchanged(s)\r
-\r
-        b = "print 'Hello, world!'"\r
-        a = "print('Hello, world!')"\r
-        self.check(b, a)\r
-\r
-\r
-class Test_exec(FixerTestCase):\r
-    fixer = "exec"\r
-\r
-    def test_prefix_preservation(self):\r
-        b = """  exec code in ns1,   ns2"""\r
-        a = """  exec(code, ns1,   ns2)"""\r
-        self.check(b, a)\r
-\r
-    def test_basic(self):\r
-        b = """exec code"""\r
-        a = """exec(code)"""\r
-        self.check(b, a)\r
-\r
-    def test_with_globals(self):\r
-        b = """exec code in ns"""\r
-        a = """exec(code, ns)"""\r
-        self.check(b, a)\r
-\r
-    def test_with_globals_locals(self):\r
-        b = """exec code in ns1, ns2"""\r
-        a = """exec(code, ns1, ns2)"""\r
-        self.check(b, a)\r
-\r
-    def test_complex_1(self):\r
-        b = """exec (a.b()) in ns"""\r
-        a = """exec((a.b()), ns)"""\r
-        self.check(b, a)\r
-\r
-    def test_complex_2(self):\r
-        b = """exec a.b() + c in ns"""\r
-        a = """exec(a.b() + c, ns)"""\r
-        self.check(b, a)\r
-\r
-    # These should not be touched\r
-\r
-    def test_unchanged_1(self):\r
-        s = """exec(code)"""\r
-        self.unchanged(s)\r
-\r
-    def test_unchanged_2(self):\r
-        s = """exec (code)"""\r
-        self.unchanged(s)\r
-\r
-    def test_unchanged_3(self):\r
-        s = """exec(code, ns)"""\r
-        self.unchanged(s)\r
-\r
-    def test_unchanged_4(self):\r
-        s = """exec(code, ns1, ns2)"""\r
-        self.unchanged(s)\r
-\r
-class Test_repr(FixerTestCase):\r
-    fixer = "repr"\r
-\r
-    def test_prefix_preservation(self):\r
-        b = """x =   `1 + 2`"""\r
-        a = """x =   repr(1 + 2)"""\r
-        self.check(b, a)\r
-\r
-    def test_simple_1(self):\r
-        b = """x = `1 + 2`"""\r
-        a = """x = repr(1 + 2)"""\r
-        self.check(b, a)\r
-\r
-    def test_simple_2(self):\r
-        b = """y = `x`"""\r
-        a = """y = repr(x)"""\r
-        self.check(b, a)\r
-\r
-    def test_complex(self):\r
-        b = """z = `y`.__repr__()"""\r
-        a = """z = repr(y).__repr__()"""\r
-        self.check(b, a)\r
-\r
-    def test_tuple(self):\r
-        b = """x = `1, 2, 3`"""\r
-        a = """x = repr((1, 2, 3))"""\r
-        self.check(b, a)\r
-\r
-    def test_nested(self):\r
-        b = """x = `1 + `2``"""\r
-        a = """x = repr(1 + repr(2))"""\r
-        self.check(b, a)\r
-\r
-    def test_nested_tuples(self):\r
-        b = """x = `1, 2 + `3, 4``"""\r
-        a = """x = repr((1, 2 + repr((3, 4))))"""\r
-        self.check(b, a)\r
-\r
-class Test_except(FixerTestCase):\r
-    fixer = "except"\r
-\r
-    def test_prefix_preservation(self):\r
-        b = """\r
-            try:\r
-                pass\r
-            except (RuntimeError, ImportError),    e:\r
-                pass"""\r
-        a = """\r
-            try:\r
-                pass\r
-            except (RuntimeError, ImportError) as    e:\r
-                pass"""\r
-        self.check(b, a)\r
-\r
-    def test_simple(self):\r
-        b = """\r
-            try:\r
-                pass\r
-            except Foo, e:\r
-                pass"""\r
-        a = """\r
-            try:\r
-                pass\r
-            except Foo as e:\r
-                pass"""\r
-        self.check(b, a)\r
-\r
-    def test_simple_no_space_before_target(self):\r
-        b = """\r
-            try:\r
-                pass\r
-            except Foo,e:\r
-                pass"""\r
-        a = """\r
-            try:\r
-                pass\r
-            except Foo as e:\r
-                pass"""\r
-        self.check(b, a)\r
-\r
-    def test_tuple_unpack(self):\r
-        b = """\r
-            def foo():\r
-                try:\r
-                    pass\r
-                except Exception, (f, e):\r
-                    pass\r
-                except ImportError, e:\r
-                    pass"""\r
-\r
-        a = """\r
-            def foo():\r
-                try:\r
-                    pass\r
-                except Exception as xxx_todo_changeme:\r
-                    (f, e) = xxx_todo_changeme.args\r
-                    pass\r
-                except ImportError as e:\r
-                    pass"""\r
-        self.check(b, a)\r
-\r
-    def test_multi_class(self):\r
-        b = """\r
-            try:\r
-                pass\r
-            except (RuntimeError, ImportError), e:\r
-                pass"""\r
-\r
-        a = """\r
-            try:\r
-                pass\r
-            except (RuntimeError, ImportError) as e:\r
-                pass"""\r
-        self.check(b, a)\r
-\r
-    def test_list_unpack(self):\r
-        b = """\r
-            try:\r
-                pass\r
-            except Exception, [a, b]:\r
-                pass"""\r
-\r
-        a = """\r
-            try:\r
-                pass\r
-            except Exception as xxx_todo_changeme:\r
-                [a, b] = xxx_todo_changeme.args\r
-                pass"""\r
-        self.check(b, a)\r
-\r
-    def test_weird_target_1(self):\r
-        b = """\r
-            try:\r
-                pass\r
-            except Exception, d[5]:\r
-                pass"""\r
-\r
-        a = """\r
-            try:\r
-                pass\r
-            except Exception as xxx_todo_changeme:\r
-                d[5] = xxx_todo_changeme\r
-                pass"""\r
-        self.check(b, a)\r
-\r
-    def test_weird_target_2(self):\r
-        b = """\r
-            try:\r
-                pass\r
-            except Exception, a.foo:\r
-                pass"""\r
-\r
-        a = """\r
-            try:\r
-                pass\r
-            except Exception as xxx_todo_changeme:\r
-                a.foo = xxx_todo_changeme\r
-                pass"""\r
-        self.check(b, a)\r
-\r
-    def test_weird_target_3(self):\r
-        b = """\r
-            try:\r
-                pass\r
-            except Exception, a().foo:\r
-                pass"""\r
-\r
-        a = """\r
-            try:\r
-                pass\r
-            except Exception as xxx_todo_changeme:\r
-                a().foo = xxx_todo_changeme\r
-                pass"""\r
-        self.check(b, a)\r
-\r
-    def test_bare_except(self):\r
-        b = """\r
-            try:\r
-                pass\r
-            except Exception, a:\r
-                pass\r
-            except:\r
-                pass"""\r
-\r
-        a = """\r
-            try:\r
-                pass\r
-            except Exception as a:\r
-                pass\r
-            except:\r
-                pass"""\r
-        self.check(b, a)\r
-\r
-    def test_bare_except_and_else_finally(self):\r
-        b = """\r
-            try:\r
-                pass\r
-            except Exception, a:\r
-                pass\r
-            except:\r
-                pass\r
-            else:\r
-                pass\r
-            finally:\r
-                pass"""\r
-\r
-        a = """\r
-            try:\r
-                pass\r
-            except Exception as a:\r
-                pass\r
-            except:\r
-                pass\r
-            else:\r
-                pass\r
-            finally:\r
-                pass"""\r
-        self.check(b, a)\r
-\r
-    def test_multi_fixed_excepts_before_bare_except(self):\r
-        b = """\r
-            try:\r
-                pass\r
-            except TypeError, b:\r
-                pass\r
-            except Exception, a:\r
-                pass\r
-            except:\r
-                pass"""\r
-\r
-        a = """\r
-            try:\r
-                pass\r
-            except TypeError as b:\r
-                pass\r
-            except Exception as a:\r
-                pass\r
-            except:\r
-                pass"""\r
-        self.check(b, a)\r
-\r
-    def test_one_line_suites(self):\r
-        b = """\r
-            try: raise TypeError\r
-            except TypeError, e:\r
-                pass\r
-            """\r
-        a = """\r
-            try: raise TypeError\r
-            except TypeError as e:\r
-                pass\r
-            """\r
-        self.check(b, a)\r
-        b = """\r
-            try:\r
-                raise TypeError\r
-            except TypeError, e: pass\r
-            """\r
-        a = """\r
-            try:\r
-                raise TypeError\r
-            except TypeError as e: pass\r
-            """\r
-        self.check(b, a)\r
-        b = """\r
-            try: raise TypeError\r
-            except TypeError, e: pass\r
-            """\r
-        a = """\r
-            try: raise TypeError\r
-            except TypeError as e: pass\r
-            """\r
-        self.check(b, a)\r
-        b = """\r
-            try: raise TypeError\r
-            except TypeError, e: pass\r
-            else: function()\r
-            finally: done()\r
-            """\r
-        a = """\r
-            try: raise TypeError\r
-            except TypeError as e: pass\r
-            else: function()\r
-            finally: done()\r
-            """\r
-        self.check(b, a)\r
-\r
-    # These should not be touched:\r
-\r
-    def test_unchanged_1(self):\r
-        s = """\r
-            try:\r
-                pass\r
-            except:\r
-                pass"""\r
-        self.unchanged(s)\r
-\r
-    def test_unchanged_2(self):\r
-        s = """\r
-            try:\r
-                pass\r
-            except Exception:\r
-                pass"""\r
-        self.unchanged(s)\r
-\r
-    def test_unchanged_3(self):\r
-        s = """\r
-            try:\r
-                pass\r
-            except (Exception, SystemExit):\r
-                pass"""\r
-        self.unchanged(s)\r
-\r
-class Test_raise(FixerTestCase):\r
-    fixer = "raise"\r
-\r
-    def test_basic(self):\r
-        b = """raise Exception, 5"""\r
-        a = """raise Exception(5)"""\r
-        self.check(b, a)\r
-\r
-    def test_prefix_preservation(self):\r
-        b = """raise Exception,5"""\r
-        a = """raise Exception(5)"""\r
-        self.check(b, a)\r
-\r
-        b = """raise   Exception,    5"""\r
-        a = """raise   Exception(5)"""\r
-        self.check(b, a)\r
-\r
-    def test_with_comments(self):\r
-        b = """raise Exception, 5 # foo"""\r
-        a = """raise Exception(5) # foo"""\r
-        self.check(b, a)\r
-\r
-        b = """raise E, (5, 6) % (a, b) # foo"""\r
-        a = """raise E((5, 6) % (a, b)) # foo"""\r
-        self.check(b, a)\r
-\r
-        b = """def foo():\r
-                    raise Exception, 5, 6 # foo"""\r
-        a = """def foo():\r
-                    raise Exception(5).with_traceback(6) # foo"""\r
-        self.check(b, a)\r
-\r
-    def test_None_value(self):\r
-        b = """raise Exception(5), None, tb"""\r
-        a = """raise Exception(5).with_traceback(tb)"""\r
-        self.check(b, a)\r
-\r
-    def test_tuple_value(self):\r
-        b = """raise Exception, (5, 6, 7)"""\r
-        a = """raise Exception(5, 6, 7)"""\r
-        self.check(b, a)\r
-\r
-    def test_tuple_detection(self):\r
-        b = """raise E, (5, 6) % (a, b)"""\r
-        a = """raise E((5, 6) % (a, b))"""\r
-        self.check(b, a)\r
-\r
-    def test_tuple_exc_1(self):\r
-        b = """raise (((E1, E2), E3), E4), V"""\r
-        a = """raise E1(V)"""\r
-        self.check(b, a)\r
-\r
-    def test_tuple_exc_2(self):\r
-        b = """raise (E1, (E2, E3), E4), V"""\r
-        a = """raise E1(V)"""\r
-        self.check(b, a)\r
-\r
-    # These should produce a warning\r
-\r
-    def test_string_exc(self):\r
-        s = """raise 'foo'"""\r
-        self.warns_unchanged(s, "Python 3 does not support string exceptions")\r
-\r
-    def test_string_exc_val(self):\r
-        s = """raise "foo", 5"""\r
-        self.warns_unchanged(s, "Python 3 does not support string exceptions")\r
-\r
-    def test_string_exc_val_tb(self):\r
-        s = """raise "foo", 5, 6"""\r
-        self.warns_unchanged(s, "Python 3 does not support string exceptions")\r
-\r
-    # These should result in traceback-assignment\r
-\r
-    def test_tb_1(self):\r
-        b = """def foo():\r
-                    raise Exception, 5, 6"""\r
-        a = """def foo():\r
-                    raise Exception(5).with_traceback(6)"""\r
-        self.check(b, a)\r
-\r
-    def test_tb_2(self):\r
-        b = """def foo():\r
-                    a = 5\r
-                    raise Exception, 5, 6\r
-                    b = 6"""\r
-        a = """def foo():\r
-                    a = 5\r
-                    raise Exception(5).with_traceback(6)\r
-                    b = 6"""\r
-        self.check(b, a)\r
-\r
-    def test_tb_3(self):\r
-        b = """def foo():\r
-                    raise Exception,5,6"""\r
-        a = """def foo():\r
-                    raise Exception(5).with_traceback(6)"""\r
-        self.check(b, a)\r
-\r
-    def test_tb_4(self):\r
-        b = """def foo():\r
-                    a = 5\r
-                    raise Exception,5,6\r
-                    b = 6"""\r
-        a = """def foo():\r
-                    a = 5\r
-                    raise Exception(5).with_traceback(6)\r
-                    b = 6"""\r
-        self.check(b, a)\r
-\r
-    def test_tb_5(self):\r
-        b = """def foo():\r
-                    raise Exception, (5, 6, 7), 6"""\r
-        a = """def foo():\r
-                    raise Exception(5, 6, 7).with_traceback(6)"""\r
-        self.check(b, a)\r
-\r
-    def test_tb_6(self):\r
-        b = """def foo():\r
-                    a = 5\r
-                    raise Exception, (5, 6, 7), 6\r
-                    b = 6"""\r
-        a = """def foo():\r
-                    a = 5\r
-                    raise Exception(5, 6, 7).with_traceback(6)\r
-                    b = 6"""\r
-        self.check(b, a)\r
-\r
-class Test_throw(FixerTestCase):\r
-    fixer = "throw"\r
-\r
-    def test_1(self):\r
-        b = """g.throw(Exception, 5)"""\r
-        a = """g.throw(Exception(5))"""\r
-        self.check(b, a)\r
-\r
-    def test_2(self):\r
-        b = """g.throw(Exception,5)"""\r
-        a = """g.throw(Exception(5))"""\r
-        self.check(b, a)\r
-\r
-    def test_3(self):\r
-        b = """g.throw(Exception, (5, 6, 7))"""\r
-        a = """g.throw(Exception(5, 6, 7))"""\r
-        self.check(b, a)\r
-\r
-    def test_4(self):\r
-        b = """5 + g.throw(Exception, 5)"""\r
-        a = """5 + g.throw(Exception(5))"""\r
-        self.check(b, a)\r
-\r
-    # These should produce warnings\r
-\r
-    def test_warn_1(self):\r
-        s = """g.throw("foo")"""\r
-        self.warns_unchanged(s, "Python 3 does not support string exceptions")\r
-\r
-    def test_warn_2(self):\r
-        s = """g.throw("foo", 5)"""\r
-        self.warns_unchanged(s, "Python 3 does not support string exceptions")\r
-\r
-    def test_warn_3(self):\r
-        s = """g.throw("foo", 5, 6)"""\r
-        self.warns_unchanged(s, "Python 3 does not support string exceptions")\r
-\r
-    # These should not be touched\r
-\r
-    def test_untouched_1(self):\r
-        s = """g.throw(Exception)"""\r
-        self.unchanged(s)\r
-\r
-    def test_untouched_2(self):\r
-        s = """g.throw(Exception(5, 6))"""\r
-        self.unchanged(s)\r
-\r
-    def test_untouched_3(self):\r
-        s = """5 + g.throw(Exception(5, 6))"""\r
-        self.unchanged(s)\r
-\r
-    # These should result in traceback-assignment\r
-\r
-    def test_tb_1(self):\r
-        b = """def foo():\r
-                    g.throw(Exception, 5, 6)"""\r
-        a = """def foo():\r
-                    g.throw(Exception(5).with_traceback(6))"""\r
-        self.check(b, a)\r
-\r
-    def test_tb_2(self):\r
-        b = """def foo():\r
-                    a = 5\r
-                    g.throw(Exception, 5, 6)\r
-                    b = 6"""\r
-        a = """def foo():\r
-                    a = 5\r
-                    g.throw(Exception(5).with_traceback(6))\r
-                    b = 6"""\r
-        self.check(b, a)\r
-\r
-    def test_tb_3(self):\r
-        b = """def foo():\r
-                    g.throw(Exception,5,6)"""\r
-        a = """def foo():\r
-                    g.throw(Exception(5).with_traceback(6))"""\r
-        self.check(b, a)\r
-\r
-    def test_tb_4(self):\r
-        b = """def foo():\r
-                    a = 5\r
-                    g.throw(Exception,5,6)\r
-                    b = 6"""\r
-        a = """def foo():\r
-                    a = 5\r
-                    g.throw(Exception(5).with_traceback(6))\r
-                    b = 6"""\r
-        self.check(b, a)\r
-\r
-    def test_tb_5(self):\r
-        b = """def foo():\r
-                    g.throw(Exception, (5, 6, 7), 6)"""\r
-        a = """def foo():\r
-                    g.throw(Exception(5, 6, 7).with_traceback(6))"""\r
-        self.check(b, a)\r
-\r
-    def test_tb_6(self):\r
-        b = """def foo():\r
-                    a = 5\r
-                    g.throw(Exception, (5, 6, 7), 6)\r
-                    b = 6"""\r
-        a = """def foo():\r
-                    a = 5\r
-                    g.throw(Exception(5, 6, 7).with_traceback(6))\r
-                    b = 6"""\r
-        self.check(b, a)\r
-\r
-    def test_tb_7(self):\r
-        b = """def foo():\r
-                    a + g.throw(Exception, 5, 6)"""\r
-        a = """def foo():\r
-                    a + g.throw(Exception(5).with_traceback(6))"""\r
-        self.check(b, a)\r
-\r
-    def test_tb_8(self):\r
-        b = """def foo():\r
-                    a = 5\r
-                    a + g.throw(Exception, 5, 6)\r
-                    b = 6"""\r
-        a = """def foo():\r
-                    a = 5\r
-                    a + g.throw(Exception(5).with_traceback(6))\r
-                    b = 6"""\r
-        self.check(b, a)\r
-\r
-class Test_long(FixerTestCase):\r
-    fixer = "long"\r
-\r
-    def test_1(self):\r
-        b = """x = long(x)"""\r
-        a = """x = int(x)"""\r
-        self.check(b, a)\r
-\r
-    def test_2(self):\r
-        b = """y = isinstance(x, long)"""\r
-        a = """y = isinstance(x, int)"""\r
-        self.check(b, a)\r
-\r
-    def test_3(self):\r
-        b = """z = type(x) in (int, long)"""\r
-        a = """z = type(x) in (int, int)"""\r
-        self.check(b, a)\r
-\r
-    def test_unchanged(self):\r
-        s = """long = True"""\r
-        self.unchanged(s)\r
-\r
-        s = """s.long = True"""\r
-        self.unchanged(s)\r
-\r
-        s = """def long(): pass"""\r
-        self.unchanged(s)\r
-\r
-        s = """class long(): pass"""\r
-        self.unchanged(s)\r
-\r
-        s = """def f(long): pass"""\r
-        self.unchanged(s)\r
-\r
-        s = """def f(g, long): pass"""\r
-        self.unchanged(s)\r
-\r
-        s = """def f(x, long=True): pass"""\r
-        self.unchanged(s)\r
-\r
-    def test_prefix_preservation(self):\r
-        b = """x =   long(  x  )"""\r
-        a = """x =   int(  x  )"""\r
-        self.check(b, a)\r
-\r
-\r
-class Test_execfile(FixerTestCase):\r
-    fixer = "execfile"\r
-\r
-    def test_conversion(self):\r
-        b = """execfile("fn")"""\r
-        a = """exec(compile(open("fn").read(), "fn", 'exec'))"""\r
-        self.check(b, a)\r
-\r
-        b = """execfile("fn", glob)"""\r
-        a = """exec(compile(open("fn").read(), "fn", 'exec'), glob)"""\r
-        self.check(b, a)\r
-\r
-        b = """execfile("fn", glob, loc)"""\r
-        a = """exec(compile(open("fn").read(), "fn", 'exec'), glob, loc)"""\r
-        self.check(b, a)\r
-\r
-        b = """execfile("fn", globals=glob)"""\r
-        a = """exec(compile(open("fn").read(), "fn", 'exec'), globals=glob)"""\r
-        self.check(b, a)\r
-\r
-        b = """execfile("fn", locals=loc)"""\r
-        a = """exec(compile(open("fn").read(), "fn", 'exec'), locals=loc)"""\r
-        self.check(b, a)\r
-\r
-        b = """execfile("fn", globals=glob, locals=loc)"""\r
-        a = """exec(compile(open("fn").read(), "fn", 'exec'), globals=glob, locals=loc)"""\r
-        self.check(b, a)\r
-\r
-    def test_spacing(self):\r
-        b = """execfile( "fn" )"""\r
-        a = """exec(compile(open( "fn" ).read(), "fn", 'exec'))"""\r
-        self.check(b, a)\r
-\r
-        b = """execfile("fn",  globals = glob)"""\r
-        a = """exec(compile(open("fn").read(), "fn", 'exec'),  globals = glob)"""\r
-        self.check(b, a)\r
-\r
-\r
-class Test_isinstance(FixerTestCase):\r
-    fixer = "isinstance"\r
-\r
-    def test_remove_multiple_items(self):\r
-        b = """isinstance(x, (int, int, int))"""\r
-        a = """isinstance(x, int)"""\r
-        self.check(b, a)\r
-\r
-        b = """isinstance(x, (int, float, int, int, float))"""\r
-        a = """isinstance(x, (int, float))"""\r
-        self.check(b, a)\r
-\r
-        b = """isinstance(x, (int, float, int, int, float, str))"""\r
-        a = """isinstance(x, (int, float, str))"""\r
-        self.check(b, a)\r
-\r
-        b = """isinstance(foo() + bar(), (x(), y(), x(), int, int))"""\r
-        a = """isinstance(foo() + bar(), (x(), y(), x(), int))"""\r
-        self.check(b, a)\r
-\r
-    def test_prefix_preservation(self):\r
-        b = """if    isinstance(  foo(), (  bar, bar, baz )) : pass"""\r
-        a = """if    isinstance(  foo(), (  bar, baz )) : pass"""\r
-        self.check(b, a)\r
-\r
-    def test_unchanged(self):\r
-        self.unchanged("isinstance(x, (str, int))")\r
-\r
-class Test_dict(FixerTestCase):\r
-    fixer = "dict"\r
-\r
-    def test_prefix_preservation(self):\r
-        b = "if   d. keys  (  )  : pass"\r
-        a = "if   list(d. keys  (  ))  : pass"\r
-        self.check(b, a)\r
-\r
-        b = "if   d. items  (  )  : pass"\r
-        a = "if   list(d. items  (  ))  : pass"\r
-        self.check(b, a)\r
-\r
-        b = "if   d. iterkeys  ( )  : pass"\r
-        a = "if   iter(d. keys  ( ))  : pass"\r
-        self.check(b, a)\r
-\r
-        b = "[i for i in    d.  iterkeys(  )  ]"\r
-        a = "[i for i in    d.  keys(  )  ]"\r
-        self.check(b, a)\r
-\r
-        b = "if   d. viewkeys  ( )  : pass"\r
-        a = "if   d. keys  ( )  : pass"\r
-        self.check(b, a)\r
-\r
-        b = "[i for i in    d.  viewkeys(  )  ]"\r
-        a = "[i for i in    d.  keys(  )  ]"\r
-        self.check(b, a)\r
-\r
-    def test_trailing_comment(self):\r
-        b = "d.keys() # foo"\r
-        a = "list(d.keys()) # foo"\r
-        self.check(b, a)\r
-\r
-        b = "d.items()  # foo"\r
-        a = "list(d.items())  # foo"\r
-        self.check(b, a)\r
-\r
-        b = "d.iterkeys()  # foo"\r
-        a = "iter(d.keys())  # foo"\r
-        self.check(b, a)\r
-\r
-        b = """[i for i in d.iterkeys() # foo\r
-               ]"""\r
-        a = """[i for i in d.keys() # foo\r
-               ]"""\r
-        self.check(b, a)\r
-\r
-        b = """[i for i in d.iterkeys() # foo\r
-               ]"""\r
-        a = """[i for i in d.keys() # foo\r
-               ]"""\r
-        self.check(b, a)\r
-\r
-        b = "d.viewitems()  # foo"\r
-        a = "d.items()  # foo"\r
-        self.check(b, a)\r
-\r
-    def test_unchanged(self):\r
-        for wrapper in fixer_util.consuming_calls:\r
-            s = "s = %s(d.keys())" % wrapper\r
-            self.unchanged(s)\r
-\r
-            s = "s = %s(d.values())" % wrapper\r
-            self.unchanged(s)\r
-\r
-            s = "s = %s(d.items())" % wrapper\r
-            self.unchanged(s)\r
-\r
-    def test_01(self):\r
-        b = "d.keys()"\r
-        a = "list(d.keys())"\r
-        self.check(b, a)\r
-\r
-        b = "a[0].foo().keys()"\r
-        a = "list(a[0].foo().keys())"\r
-        self.check(b, a)\r
-\r
-    def test_02(self):\r
-        b = "d.items()"\r
-        a = "list(d.items())"\r
-        self.check(b, a)\r
-\r
-    def test_03(self):\r
-        b = "d.values()"\r
-        a = "list(d.values())"\r
-        self.check(b, a)\r
-\r
-    def test_04(self):\r
-        b = "d.iterkeys()"\r
-        a = "iter(d.keys())"\r
-        self.check(b, a)\r
-\r
-    def test_05(self):\r
-        b = "d.iteritems()"\r
-        a = "iter(d.items())"\r
-        self.check(b, a)\r
-\r
-    def test_06(self):\r
-        b = "d.itervalues()"\r
-        a = "iter(d.values())"\r
-        self.check(b, a)\r
-\r
-    def test_07(self):\r
-        s = "list(d.keys())"\r
-        self.unchanged(s)\r
-\r
-    def test_08(self):\r
-        s = "sorted(d.keys())"\r
-        self.unchanged(s)\r
-\r
-    def test_09(self):\r
-        b = "iter(d.keys())"\r
-        a = "iter(list(d.keys()))"\r
-        self.check(b, a)\r
-\r
-    def test_10(self):\r
-        b = "foo(d.keys())"\r
-        a = "foo(list(d.keys()))"\r
-        self.check(b, a)\r
-\r
-    def test_11(self):\r
-        b = "for i in d.keys(): print i"\r
-        a = "for i in list(d.keys()): print i"\r
-        self.check(b, a)\r
-\r
-    def test_12(self):\r
-        b = "for i in d.iterkeys(): print i"\r
-        a = "for i in d.keys(): print i"\r
-        self.check(b, a)\r
-\r
-    def test_13(self):\r
-        b = "[i for i in d.keys()]"\r
-        a = "[i for i in list(d.keys())]"\r
-        self.check(b, a)\r
-\r
-    def test_14(self):\r
-        b = "[i for i in d.iterkeys()]"\r
-        a = "[i for i in d.keys()]"\r
-        self.check(b, a)\r
-\r
-    def test_15(self):\r
-        b = "(i for i in d.keys())"\r
-        a = "(i for i in list(d.keys()))"\r
-        self.check(b, a)\r
-\r
-    def test_16(self):\r
-        b = "(i for i in d.iterkeys())"\r
-        a = "(i for i in d.keys())"\r
-        self.check(b, a)\r
-\r
-    def test_17(self):\r
-        b = "iter(d.iterkeys())"\r
-        a = "iter(d.keys())"\r
-        self.check(b, a)\r
-\r
-    def test_18(self):\r
-        b = "list(d.iterkeys())"\r
-        a = "list(d.keys())"\r
-        self.check(b, a)\r
-\r
-    def test_19(self):\r
-        b = "sorted(d.iterkeys())"\r
-        a = "sorted(d.keys())"\r
-        self.check(b, a)\r
-\r
-    def test_20(self):\r
-        b = "foo(d.iterkeys())"\r
-        a = "foo(iter(d.keys()))"\r
-        self.check(b, a)\r
-\r
-    def test_21(self):\r
-        b = "print h.iterkeys().next()"\r
-        a = "print iter(h.keys()).next()"\r
-        self.check(b, a)\r
-\r
-    def test_22(self):\r
-        b = "print h.keys()[0]"\r
-        a = "print list(h.keys())[0]"\r
-        self.check(b, a)\r
-\r
-    def test_23(self):\r
-        b = "print list(h.iterkeys().next())"\r
-        a = "print list(iter(h.keys()).next())"\r
-        self.check(b, a)\r
-\r
-    def test_24(self):\r
-        b = "for x in h.keys()[0]: print x"\r
-        a = "for x in list(h.keys())[0]: print x"\r
-        self.check(b, a)\r
-\r
-    def test_25(self):\r
-        b = "d.viewkeys()"\r
-        a = "d.keys()"\r
-        self.check(b, a)\r
-\r
-    def test_26(self):\r
-        b = "d.viewitems()"\r
-        a = "d.items()"\r
-        self.check(b, a)\r
-\r
-    def test_27(self):\r
-        b = "d.viewvalues()"\r
-        a = "d.values()"\r
-        self.check(b, a)\r
-\r
-    def test_14(self):\r
-        b = "[i for i in d.viewkeys()]"\r
-        a = "[i for i in d.keys()]"\r
-        self.check(b, a)\r
-\r
-    def test_15(self):\r
-        b = "(i for i in d.viewkeys())"\r
-        a = "(i for i in d.keys())"\r
-        self.check(b, a)\r
-\r
-    def test_17(self):\r
-        b = "iter(d.viewkeys())"\r
-        a = "iter(d.keys())"\r
-        self.check(b, a)\r
-\r
-    def test_18(self):\r
-        b = "list(d.viewkeys())"\r
-        a = "list(d.keys())"\r
-        self.check(b, a)\r
-\r
-    def test_19(self):\r
-        b = "sorted(d.viewkeys())"\r
-        a = "sorted(d.keys())"\r
-        self.check(b, a)\r
-\r
-class Test_xrange(FixerTestCase):\r
-    fixer = "xrange"\r
-\r
-    def test_prefix_preservation(self):\r
-        b = """x =    xrange(  10  )"""\r
-        a = """x =    range(  10  )"""\r
-        self.check(b, a)\r
-\r
-        b = """x = xrange(  1  ,  10   )"""\r
-        a = """x = range(  1  ,  10   )"""\r
-        self.check(b, a)\r
-\r
-        b = """x = xrange(  0  ,  10 ,  2 )"""\r
-        a = """x = range(  0  ,  10 ,  2 )"""\r
-        self.check(b, a)\r
-\r
-    def test_single_arg(self):\r
-        b = """x = xrange(10)"""\r
-        a = """x = range(10)"""\r
-        self.check(b, a)\r
-\r
-    def test_two_args(self):\r
-        b = """x = xrange(1, 10)"""\r
-        a = """x = range(1, 10)"""\r
-        self.check(b, a)\r
-\r
-    def test_three_args(self):\r
-        b = """x = xrange(0, 10, 2)"""\r
-        a = """x = range(0, 10, 2)"""\r
-        self.check(b, a)\r
-\r
-    def test_wrap_in_list(self):\r
-        b = """x = range(10, 3, 9)"""\r
-        a = """x = list(range(10, 3, 9))"""\r
-        self.check(b, a)\r
-\r
-        b = """x = foo(range(10, 3, 9))"""\r
-        a = """x = foo(list(range(10, 3, 9)))"""\r
-        self.check(b, a)\r
-\r
-        b = """x = range(10, 3, 9) + [4]"""\r
-        a = """x = list(range(10, 3, 9)) + [4]"""\r
-        self.check(b, a)\r
-\r
-        b = """x = range(10)[::-1]"""\r
-        a = """x = list(range(10))[::-1]"""\r
-        self.check(b, a)\r
-\r
-        b = """x = range(10)  [3]"""\r
-        a = """x = list(range(10))  [3]"""\r
-        self.check(b, a)\r
-\r
-    def test_xrange_in_for(self):\r
-        b = """for i in xrange(10):\n    j=i"""\r
-        a = """for i in range(10):\n    j=i"""\r
-        self.check(b, a)\r
-\r
-        b = """[i for i in xrange(10)]"""\r
-        a = """[i for i in range(10)]"""\r
-        self.check(b, a)\r
-\r
-    def test_range_in_for(self):\r
-        self.unchanged("for i in range(10): pass")\r
-        self.unchanged("[i for i in range(10)]")\r
-\r
-    def test_in_contains_test(self):\r
-        self.unchanged("x in range(10, 3, 9)")\r
-\r
-    def test_in_consuming_context(self):\r
-        for call in fixer_util.consuming_calls:\r
-            self.unchanged("a = %s(range(10))" % call)\r
-\r
-class Test_xrange_with_reduce(FixerTestCase):\r
-\r
-    def setUp(self):\r
-        super(Test_xrange_with_reduce, self).setUp(["xrange", "reduce"])\r
-\r
-    def test_double_transform(self):\r
-        b = """reduce(x, xrange(5))"""\r
-        a = """from functools import reduce\r
-reduce(x, range(5))"""\r
-        self.check(b, a)\r
-\r
-class Test_raw_input(FixerTestCase):\r
-    fixer = "raw_input"\r
-\r
-    def test_prefix_preservation(self):\r
-        b = """x =    raw_input(   )"""\r
-        a = """x =    input(   )"""\r
-        self.check(b, a)\r
-\r
-        b = """x = raw_input(   ''   )"""\r
-        a = """x = input(   ''   )"""\r
-        self.check(b, a)\r
-\r
-    def test_1(self):\r
-        b = """x = raw_input()"""\r
-        a = """x = input()"""\r
-        self.check(b, a)\r
-\r
-    def test_2(self):\r
-        b = """x = raw_input('')"""\r
-        a = """x = input('')"""\r
-        self.check(b, a)\r
-\r
-    def test_3(self):\r
-        b = """x = raw_input('prompt')"""\r
-        a = """x = input('prompt')"""\r
-        self.check(b, a)\r
-\r
-    def test_4(self):\r
-        b = """x = raw_input(foo(a) + 6)"""\r
-        a = """x = input(foo(a) + 6)"""\r
-        self.check(b, a)\r
-\r
-    def test_5(self):\r
-        b = """x = raw_input(invite).split()"""\r
-        a = """x = input(invite).split()"""\r
-        self.check(b, a)\r
-\r
-    def test_6(self):\r
-        b = """x = raw_input(invite) . split ()"""\r
-        a = """x = input(invite) . split ()"""\r
-        self.check(b, a)\r
-\r
-    def test_8(self):\r
-        b = "x = int(raw_input())"\r
-        a = "x = int(input())"\r
-        self.check(b, a)\r
-\r
-class Test_funcattrs(FixerTestCase):\r
-    fixer = "funcattrs"\r
-\r
-    attrs = ["closure", "doc", "name", "defaults", "code", "globals", "dict"]\r
-\r
-    def test(self):\r
-        for attr in self.attrs:\r
-            b = "a.func_%s" % attr\r
-            a = "a.__%s__" % attr\r
-            self.check(b, a)\r
-\r
-            b = "self.foo.func_%s.foo_bar" % attr\r
-            a = "self.foo.__%s__.foo_bar" % attr\r
-            self.check(b, a)\r
-\r
-    def test_unchanged(self):\r
-        for attr in self.attrs:\r
-            s = "foo(func_%s + 5)" % attr\r
-            self.unchanged(s)\r
-\r
-            s = "f(foo.__%s__)" % attr\r
-            self.unchanged(s)\r
-\r
-            s = "f(foo.__%s__.foo)" % attr\r
-            self.unchanged(s)\r
-\r
-class Test_xreadlines(FixerTestCase):\r
-    fixer = "xreadlines"\r
-\r
-    def test_call(self):\r
-        b = "for x in f.xreadlines(): pass"\r
-        a = "for x in f: pass"\r
-        self.check(b, a)\r
-\r
-        b = "for x in foo().xreadlines(): pass"\r
-        a = "for x in foo(): pass"\r
-        self.check(b, a)\r
-\r
-        b = "for x in (5 + foo()).xreadlines(): pass"\r
-        a = "for x in (5 + foo()): pass"\r
-        self.check(b, a)\r
-\r
-    def test_attr_ref(self):\r
-        b = "foo(f.xreadlines + 5)"\r
-        a = "foo(f.__iter__ + 5)"\r
-        self.check(b, a)\r
-\r
-        b = "foo(f().xreadlines + 5)"\r
-        a = "foo(f().__iter__ + 5)"\r
-        self.check(b, a)\r
-\r
-        b = "foo((5 + f()).xreadlines + 5)"\r
-        a = "foo((5 + f()).__iter__ + 5)"\r
-        self.check(b, a)\r
-\r
-    def test_unchanged(self):\r
-        s = "for x in f.xreadlines(5): pass"\r
-        self.unchanged(s)\r
-\r
-        s = "for x in f.xreadlines(k=5): pass"\r
-        self.unchanged(s)\r
-\r
-        s = "for x in f.xreadlines(*k, **v): pass"\r
-        self.unchanged(s)\r
-\r
-        s = "foo(xreadlines)"\r
-        self.unchanged(s)\r
-\r
-\r
-class ImportsFixerTests:\r
-\r
-    def test_import_module(self):\r
-        for old, new in self.modules.items():\r
-            b = "import %s" % old\r
-            a = "import %s" % new\r
-            self.check(b, a)\r
-\r
-            b = "import foo, %s, bar" % old\r
-            a = "import foo, %s, bar" % new\r
-            self.check(b, a)\r
-\r
-    def test_import_from(self):\r
-        for old, new in self.modules.items():\r
-            b = "from %s import foo" % old\r
-            a = "from %s import foo" % new\r
-            self.check(b, a)\r
-\r
-            b = "from %s import foo, bar" % old\r
-            a = "from %s import foo, bar" % new\r
-            self.check(b, a)\r
-\r
-            b = "from %s import (yes, no)" % old\r
-            a = "from %s import (yes, no)" % new\r
-            self.check(b, a)\r
-\r
-    def test_import_module_as(self):\r
-        for old, new in self.modules.items():\r
-            b = "import %s as foo_bar" % old\r
-            a = "import %s as foo_bar" % new\r
-            self.check(b, a)\r
-\r
-            b = "import %s as foo_bar" % old\r
-            a = "import %s as foo_bar" % new\r
-            self.check(b, a)\r
-\r
-    def test_import_from_as(self):\r
-        for old, new in self.modules.items():\r
-            b = "from %s import foo as bar" % old\r
-            a = "from %s import foo as bar" % new\r
-            self.check(b, a)\r
-\r
-    def test_star(self):\r
-        for old, new in self.modules.items():\r
-            b = "from %s import *" % old\r
-            a = "from %s import *" % new\r
-            self.check(b, a)\r
-\r
-    def test_import_module_usage(self):\r
-        for old, new in self.modules.items():\r
-            b = """\r
-                import %s\r
-                foo(%s.bar)\r
-                """ % (old, old)\r
-            a = """\r
-                import %s\r
-                foo(%s.bar)\r
-                """ % (new, new)\r
-            self.check(b, a)\r
-\r
-            b = """\r
-                from %s import x\r
-                %s = 23\r
-                """ % (old, old)\r
-            a = """\r
-                from %s import x\r
-                %s = 23\r
-                """ % (new, old)\r
-            self.check(b, a)\r
-\r
-            s = """\r
-                def f():\r
-                    %s.method()\r
-                """ % (old,)\r
-            self.unchanged(s)\r
-\r
-            # test nested usage\r
-            b = """\r
-                import %s\r
-                %s.bar(%s.foo)\r
-                """ % (old, old, old)\r
-            a = """\r
-                import %s\r
-                %s.bar(%s.foo)\r
-                """ % (new, new, new)\r
-            self.check(b, a)\r
-\r
-            b = """\r
-                import %s\r
-                x.%s\r
-                """ % (old, old)\r
-            a = """\r
-                import %s\r
-                x.%s\r
-                """ % (new, old)\r
-            self.check(b, a)\r
-\r
-\r
-class Test_imports(FixerTestCase, ImportsFixerTests):\r
-    fixer = "imports"\r
-    from ..fixes.fix_imports import MAPPING as modules\r
-\r
-    def test_multiple_imports(self):\r
-        b = """import urlparse, cStringIO"""\r
-        a = """import urllib.parse, io"""\r
-        self.check(b, a)\r
-\r
-    def test_multiple_imports_as(self):\r
-        b = """\r
-            import copy_reg as bar, HTMLParser as foo, urlparse\r
-            s = urlparse.spam(bar.foo())\r
-            """\r
-        a = """\r
-            import copyreg as bar, html.parser as foo, urllib.parse\r
-            s = urllib.parse.spam(bar.foo())\r
-            """\r
-        self.check(b, a)\r
-\r
-\r
-class Test_imports2(FixerTestCase, ImportsFixerTests):\r
-    fixer = "imports2"\r
-    from ..fixes.fix_imports2 import MAPPING as modules\r
-\r
-\r
-class Test_imports_fixer_order(FixerTestCase, ImportsFixerTests):\r
-\r
-    def setUp(self):\r
-        super(Test_imports_fixer_order, self).setUp(['imports', 'imports2'])\r
-        from ..fixes.fix_imports2 import MAPPING as mapping2\r
-        self.modules = mapping2.copy()\r
-        from ..fixes.fix_imports import MAPPING as mapping1\r
-        for key in ('dbhash', 'dumbdbm', 'dbm', 'gdbm'):\r
-            self.modules[key] = mapping1[key]\r
-\r
-    def test_after_local_imports_refactoring(self):\r
-        for fix in ("imports", "imports2"):\r
-            self.fixer = fix\r
-            self.assert_runs_after("import")\r
-\r
-\r
-class Test_urllib(FixerTestCase):\r
-    fixer = "urllib"\r
-    from ..fixes.fix_urllib import MAPPING as modules\r
-\r
-    def test_import_module(self):\r
-        for old, changes in self.modules.items():\r
-            b = "import %s" % old\r
-            a = "import %s" % ", ".join(map(itemgetter(0), changes))\r
-            self.check(b, a)\r
-\r
-    def test_import_from(self):\r
-        for old, changes in self.modules.items():\r
-            all_members = []\r
-            for new, members in changes:\r
-                for member in members:\r
-                    all_members.append(member)\r
-                    b = "from %s import %s" % (old, member)\r
-                    a = "from %s import %s" % (new, member)\r
-                    self.check(b, a)\r
-\r
-                    s = "from foo import %s" % member\r
-                    self.unchanged(s)\r
-\r
-                b = "from %s import %s" % (old, ", ".join(members))\r
-                a = "from %s import %s" % (new, ", ".join(members))\r
-                self.check(b, a)\r
-\r
-                s = "from foo import %s" % ", ".join(members)\r
-                self.unchanged(s)\r
-\r
-            # test the breaking of a module into multiple replacements\r
-            b = "from %s import %s" % (old, ", ".join(all_members))\r
-            a = "\n".join(["from %s import %s" % (new, ", ".join(members))\r
-                            for (new, members) in changes])\r
-            self.check(b, a)\r
-\r
-    def test_import_module_as(self):\r
-        for old in self.modules:\r
-            s = "import %s as foo" % old\r
-            self.warns_unchanged(s, "This module is now multiple modules")\r
-\r
-    def test_import_from_as(self):\r
-        for old, changes in self.modules.items():\r
-            for new, members in changes:\r
-                for member in members:\r
-                    b = "from %s import %s as foo_bar" % (old, member)\r
-                    a = "from %s import %s as foo_bar" % (new, member)\r
-                    self.check(b, a)\r
-                    b = "from %s import %s as blah, %s" % (old, member, member)\r
-                    a = "from %s import %s as blah, %s" % (new, member, member)\r
-                    self.check(b, a)\r
-\r
-    def test_star(self):\r
-        for old in self.modules:\r
-            s = "from %s import *" % old\r
-            self.warns_unchanged(s, "Cannot handle star imports")\r
-\r
-    def test_indented(self):\r
-        b = """\r
-def foo():\r
-    from urllib import urlencode, urlopen\r
-"""\r
-        a = """\r
-def foo():\r
-    from urllib.parse import urlencode\r
-    from urllib.request import urlopen\r
-"""\r
-        self.check(b, a)\r
-\r
-        b = """\r
-def foo():\r
-    other()\r
-    from urllib import urlencode, urlopen\r
-"""\r
-        a = """\r
-def foo():\r
-    other()\r
-    from urllib.parse import urlencode\r
-    from urllib.request import urlopen\r
-"""\r
-        self.check(b, a)\r
-\r
-\r
-\r
-    def test_import_module_usage(self):\r
-        for old, changes in self.modules.items():\r
-            for new, members in changes:\r
-                for member in members:\r
-                    new_import = ", ".join([n for (n, mems)\r
-                                            in self.modules[old]])\r
-                    b = """\r
-                        import %s\r
-                        foo(%s.%s)\r
-                        """ % (old, old, member)\r
-                    a = """\r
-                        import %s\r
-                        foo(%s.%s)\r
-                        """ % (new_import, new, member)\r
-                    self.check(b, a)\r
-                    b = """\r
-                        import %s\r
-                        %s.%s(%s.%s)\r
-                        """ % (old, old, member, old, member)\r
-                    a = """\r
-                        import %s\r
-                        %s.%s(%s.%s)\r
-                        """ % (new_import, new, member, new, member)\r
-                    self.check(b, a)\r
-\r
-\r
-class Test_input(FixerTestCase):\r
-    fixer = "input"\r
-\r
-    def test_prefix_preservation(self):\r
-        b = """x =   input(   )"""\r
-        a = """x =   eval(input(   ))"""\r
-        self.check(b, a)\r
-\r
-        b = """x = input(   ''   )"""\r
-        a = """x = eval(input(   ''   ))"""\r
-        self.check(b, a)\r
-\r
-    def test_trailing_comment(self):\r
-        b = """x = input()  #  foo"""\r
-        a = """x = eval(input())  #  foo"""\r
-        self.check(b, a)\r
-\r
-    def test_idempotency(self):\r
-        s = """x = eval(input())"""\r
-        self.unchanged(s)\r
-\r
-        s = """x = eval(input(''))"""\r
-        self.unchanged(s)\r
-\r
-        s = """x = eval(input(foo(5) + 9))"""\r
-        self.unchanged(s)\r
-\r
-    def test_1(self):\r
-        b = """x = input()"""\r
-        a = """x = eval(input())"""\r
-        self.check(b, a)\r
-\r
-    def test_2(self):\r
-        b = """x = input('')"""\r
-        a = """x = eval(input(''))"""\r
-        self.check(b, a)\r
-\r
-    def test_3(self):\r
-        b = """x = input('prompt')"""\r
-        a = """x = eval(input('prompt'))"""\r
-        self.check(b, a)\r
-\r
-    def test_4(self):\r
-        b = """x = input(foo(5) + 9)"""\r
-        a = """x = eval(input(foo(5) + 9))"""\r
-        self.check(b, a)\r
-\r
-class Test_tuple_params(FixerTestCase):\r
-    fixer = "tuple_params"\r
-\r
-    def test_unchanged_1(self):\r
-        s = """def foo(): pass"""\r
-        self.unchanged(s)\r
-\r
-    def test_unchanged_2(self):\r
-        s = """def foo(a, b, c): pass"""\r
-        self.unchanged(s)\r
-\r
-    def test_unchanged_3(self):\r
-        s = """def foo(a=3, b=4, c=5): pass"""\r
-        self.unchanged(s)\r
-\r
-    def test_1(self):\r
-        b = """\r
-            def foo(((a, b), c)):\r
-                x = 5"""\r
-\r
-        a = """\r
-            def foo(xxx_todo_changeme):\r
-                ((a, b), c) = xxx_todo_changeme\r
-                x = 5"""\r
-        self.check(b, a)\r
-\r
-    def test_2(self):\r
-        b = """\r
-            def foo(((a, b), c), d):\r
-                x = 5"""\r
-\r
-        a = """\r
-            def foo(xxx_todo_changeme, d):\r
-                ((a, b), c) = xxx_todo_changeme\r
-                x = 5"""\r
-        self.check(b, a)\r
-\r
-    def test_3(self):\r
-        b = """\r
-            def foo(((a, b), c), d) -> e:\r
-                x = 5"""\r
-\r
-        a = """\r
-            def foo(xxx_todo_changeme, d) -> e:\r
-                ((a, b), c) = xxx_todo_changeme\r
-                x = 5"""\r
-        self.check(b, a)\r
-\r
-    def test_semicolon(self):\r
-        b = """\r
-            def foo(((a, b), c)): x = 5; y = 7"""\r
-\r
-        a = """\r
-            def foo(xxx_todo_changeme): ((a, b), c) = xxx_todo_changeme; x = 5; y = 7"""\r
-        self.check(b, a)\r
-\r
-    def test_keywords(self):\r
-        b = """\r
-            def foo(((a, b), c), d, e=5) -> z:\r
-                x = 5"""\r
-\r
-        a = """\r
-            def foo(xxx_todo_changeme, d, e=5) -> z:\r
-                ((a, b), c) = xxx_todo_changeme\r
-                x = 5"""\r
-        self.check(b, a)\r
-\r
-    def test_varargs(self):\r
-        b = """\r
-            def foo(((a, b), c), d, *vargs, **kwargs) -> z:\r
-                x = 5"""\r
-\r
-        a = """\r
-            def foo(xxx_todo_changeme, d, *vargs, **kwargs) -> z:\r
-                ((a, b), c) = xxx_todo_changeme\r
-                x = 5"""\r
-        self.check(b, a)\r
-\r
-    def test_multi_1(self):\r
-        b = """\r
-            def foo(((a, b), c), (d, e, f)) -> z:\r
-                x = 5"""\r
-\r
-        a = """\r
-            def foo(xxx_todo_changeme, xxx_todo_changeme1) -> z:\r
-                ((a, b), c) = xxx_todo_changeme\r
-                (d, e, f) = xxx_todo_changeme1\r
-                x = 5"""\r
-        self.check(b, a)\r
-\r
-    def test_multi_2(self):\r
-        b = """\r
-            def foo(x, ((a, b), c), d, (e, f, g), y) -> z:\r
-                x = 5"""\r
-\r
-        a = """\r
-            def foo(x, xxx_todo_changeme, d, xxx_todo_changeme1, y) -> z:\r
-                ((a, b), c) = xxx_todo_changeme\r
-                (e, f, g) = xxx_todo_changeme1\r
-                x = 5"""\r
-        self.check(b, a)\r
-\r
-    def test_docstring(self):\r
-        b = """\r
-            def foo(((a, b), c), (d, e, f)) -> z:\r
-                "foo foo foo foo"\r
-                x = 5"""\r
-\r
-        a = """\r
-            def foo(xxx_todo_changeme, xxx_todo_changeme1) -> z:\r
-                "foo foo foo foo"\r
-                ((a, b), c) = xxx_todo_changeme\r
-                (d, e, f) = xxx_todo_changeme1\r
-                x = 5"""\r
-        self.check(b, a)\r
-\r
-    def test_lambda_no_change(self):\r
-        s = """lambda x: x + 5"""\r
-        self.unchanged(s)\r
-\r
-    def test_lambda_parens_single_arg(self):\r
-        b = """lambda (x): x + 5"""\r
-        a = """lambda x: x + 5"""\r
-        self.check(b, a)\r
-\r
-        b = """lambda(x): x + 5"""\r
-        a = """lambda x: x + 5"""\r
-        self.check(b, a)\r
-\r
-        b = """lambda ((((x)))): x + 5"""\r
-        a = """lambda x: x + 5"""\r
-        self.check(b, a)\r
-\r
-        b = """lambda((((x)))): x + 5"""\r
-        a = """lambda x: x + 5"""\r
-        self.check(b, a)\r
-\r
-    def test_lambda_simple(self):\r
-        b = """lambda (x, y): x + f(y)"""\r
-        a = """lambda x_y: x_y[0] + f(x_y[1])"""\r
-        self.check(b, a)\r
-\r
-        b = """lambda(x, y): x + f(y)"""\r
-        a = """lambda x_y: x_y[0] + f(x_y[1])"""\r
-        self.check(b, a)\r
-\r
-        b = """lambda (((x, y))): x + f(y)"""\r
-        a = """lambda x_y: x_y[0] + f(x_y[1])"""\r
-        self.check(b, a)\r
-\r
-        b = """lambda(((x, y))): x + f(y)"""\r
-        a = """lambda x_y: x_y[0] + f(x_y[1])"""\r
-        self.check(b, a)\r
-\r
-    def test_lambda_one_tuple(self):\r
-        b = """lambda (x,): x + f(x)"""\r
-        a = """lambda x1: x1[0] + f(x1[0])"""\r
-        self.check(b, a)\r
-\r
-        b = """lambda (((x,))): x + f(x)"""\r
-        a = """lambda x1: x1[0] + f(x1[0])"""\r
-        self.check(b, a)\r
-\r
-    def test_lambda_simple_multi_use(self):\r
-        b = """lambda (x, y): x + x + f(x) + x"""\r
-        a = """lambda x_y: x_y[0] + x_y[0] + f(x_y[0]) + x_y[0]"""\r
-        self.check(b, a)\r
-\r
-    def test_lambda_simple_reverse(self):\r
-        b = """lambda (x, y): y + x"""\r
-        a = """lambda x_y: x_y[1] + x_y[0]"""\r
-        self.check(b, a)\r
-\r
-    def test_lambda_nested(self):\r
-        b = """lambda (x, (y, z)): x + y + z"""\r
-        a = """lambda x_y_z: x_y_z[0] + x_y_z[1][0] + x_y_z[1][1]"""\r
-        self.check(b, a)\r
-\r
-        b = """lambda (((x, (y, z)))): x + y + z"""\r
-        a = """lambda x_y_z: x_y_z[0] + x_y_z[1][0] + x_y_z[1][1]"""\r
-        self.check(b, a)\r
-\r
-    def test_lambda_nested_multi_use(self):\r
-        b = """lambda (x, (y, z)): x + y + f(y)"""\r
-        a = """lambda x_y_z: x_y_z[0] + x_y_z[1][0] + f(x_y_z[1][0])"""\r
-        self.check(b, a)\r
-\r
-class Test_methodattrs(FixerTestCase):\r
-    fixer = "methodattrs"\r
-\r
-    attrs = ["func", "self", "class"]\r
-\r
-    def test(self):\r
-        for attr in self.attrs:\r
-            b = "a.im_%s" % attr\r
-            if attr == "class":\r
-                a = "a.__self__.__class__"\r
-            else:\r
-                a = "a.__%s__" % attr\r
-            self.check(b, a)\r
-\r
-            b = "self.foo.im_%s.foo_bar" % attr\r
-            if attr == "class":\r
-                a = "self.foo.__self__.__class__.foo_bar"\r
-            else:\r
-                a = "self.foo.__%s__.foo_bar" % attr\r
-            self.check(b, a)\r
-\r
-    def test_unchanged(self):\r
-        for attr in self.attrs:\r
-            s = "foo(im_%s + 5)" % attr\r
-            self.unchanged(s)\r
-\r
-            s = "f(foo.__%s__)" % attr\r
-            self.unchanged(s)\r
-\r
-            s = "f(foo.__%s__.foo)" % attr\r
-            self.unchanged(s)\r
-\r
-class Test_next(FixerTestCase):\r
-    fixer = "next"\r
-\r
-    def test_1(self):\r
-        b = """it.next()"""\r
-        a = """next(it)"""\r
-        self.check(b, a)\r
-\r
-    def test_2(self):\r
-        b = """a.b.c.d.next()"""\r
-        a = """next(a.b.c.d)"""\r
-        self.check(b, a)\r
-\r
-    def test_3(self):\r
-        b = """(a + b).next()"""\r
-        a = """next((a + b))"""\r
-        self.check(b, a)\r
-\r
-    def test_4(self):\r
-        b = """a().next()"""\r
-        a = """next(a())"""\r
-        self.check(b, a)\r
-\r
-    def test_5(self):\r
-        b = """a().next() + b"""\r
-        a = """next(a()) + b"""\r
-        self.check(b, a)\r
-\r
-    def test_6(self):\r
-        b = """c(      a().next() + b)"""\r
-        a = """c(      next(a()) + b)"""\r
-        self.check(b, a)\r
-\r
-    def test_prefix_preservation_1(self):\r
-        b = """\r
-            for a in b:\r
-                foo(a)\r
-                a.next()\r
-            """\r
-        a = """\r
-            for a in b:\r
-                foo(a)\r
-                next(a)\r
-            """\r
-        self.check(b, a)\r
-\r
-    def test_prefix_preservation_2(self):\r
-        b = """\r
-            for a in b:\r
-                foo(a) # abc\r
-                # def\r
-                a.next()\r
-            """\r
-        a = """\r
-            for a in b:\r
-                foo(a) # abc\r
-                # def\r
-                next(a)\r
-            """\r
-        self.check(b, a)\r
-\r
-    def test_prefix_preservation_3(self):\r
-        b = """\r
-            next = 5\r
-            for a in b:\r
-                foo(a)\r
-                a.next()\r
-            """\r
-        a = """\r
-            next = 5\r
-            for a in b:\r
-                foo(a)\r
-                a.__next__()\r
-            """\r
-        self.check(b, a, ignore_warnings=True)\r
-\r
-    def test_prefix_preservation_4(self):\r
-        b = """\r
-            next = 5\r
-            for a in b:\r
-                foo(a) # abc\r
-                # def\r
-                a.next()\r
-            """\r
-        a = """\r
-            next = 5\r
-            for a in b:\r
-                foo(a) # abc\r
-                # def\r
-                a.__next__()\r
-            """\r
-        self.check(b, a, ignore_warnings=True)\r
-\r
-    def test_prefix_preservation_5(self):\r
-        b = """\r
-            next = 5\r
-            for a in b:\r
-                foo(foo(a), # abc\r
-                    a.next())\r
-            """\r
-        a = """\r
-            next = 5\r
-            for a in b:\r
-                foo(foo(a), # abc\r
-                    a.__next__())\r
-            """\r
-        self.check(b, a, ignore_warnings=True)\r
-\r
-    def test_prefix_preservation_6(self):\r
-        b = """\r
-            for a in b:\r
-                foo(foo(a), # abc\r
-                    a.next())\r
-            """\r
-        a = """\r
-            for a in b:\r
-                foo(foo(a), # abc\r
-                    next(a))\r
-            """\r
-        self.check(b, a)\r
-\r
-    def test_method_1(self):\r
-        b = """\r
-            class A:\r
-                def next(self):\r
-                    pass\r
-            """\r
-        a = """\r
-            class A:\r
-                def __next__(self):\r
-                    pass\r
-            """\r
-        self.check(b, a)\r
-\r
-    def test_method_2(self):\r
-        b = """\r
-            class A(object):\r
-                def next(self):\r
-                    pass\r
-            """\r
-        a = """\r
-            class A(object):\r
-                def __next__(self):\r
-                    pass\r
-            """\r
-        self.check(b, a)\r
-\r
-    def test_method_3(self):\r
-        b = """\r
-            class A:\r
-                def next(x):\r
-                    pass\r
-            """\r
-        a = """\r
-            class A:\r
-                def __next__(x):\r
-                    pass\r
-            """\r
-        self.check(b, a)\r
-\r
-    def test_method_4(self):\r
-        b = """\r
-            class A:\r
-                def __init__(self, foo):\r
-                    self.foo = foo\r
-\r
-                def next(self):\r
-                    pass\r
-\r
-                def __iter__(self):\r
-                    return self\r
-            """\r
-        a = """\r
-            class A:\r
-                def __init__(self, foo):\r
-                    self.foo = foo\r
-\r
-                def __next__(self):\r
-                    pass\r
-\r
-                def __iter__(self):\r
-                    return self\r
-            """\r
-        self.check(b, a)\r
-\r
-    def test_method_unchanged(self):\r
-        s = """\r
-            class A:\r
-                def next(self, a, b):\r
-                    pass\r
-            """\r
-        self.unchanged(s)\r
-\r
-    def test_shadowing_assign_simple(self):\r
-        s = """\r
-            next = foo\r
-\r
-            class A:\r
-                def next(self, a, b):\r
-                    pass\r
-            """\r
-        self.warns_unchanged(s, "Calls to builtin next() possibly shadowed")\r
-\r
-    def test_shadowing_assign_tuple_1(self):\r
-        s = """\r
-            (next, a) = foo\r
-\r
-            class A:\r
-                def next(self, a, b):\r
-                    pass\r
-            """\r
-        self.warns_unchanged(s, "Calls to builtin next() possibly shadowed")\r
-\r
-    def test_shadowing_assign_tuple_2(self):\r
-        s = """\r
-            (a, (b, (next, c)), a) = foo\r
-\r
-            class A:\r
-                def next(self, a, b):\r
-                    pass\r
-            """\r
-        self.warns_unchanged(s, "Calls to builtin next() possibly shadowed")\r
-\r
-    def test_shadowing_assign_list_1(self):\r
-        s = """\r
-            [next, a] = foo\r
-\r
-            class A:\r
-                def next(self, a, b):\r
-                    pass\r
-            """\r
-        self.warns_unchanged(s, "Calls to builtin next() possibly shadowed")\r
-\r
-    def test_shadowing_assign_list_2(self):\r
-        s = """\r
-            [a, [b, [next, c]], a] = foo\r
-\r
-            class A:\r
-                def next(self, a, b):\r
-                    pass\r
-            """\r
-        self.warns_unchanged(s, "Calls to builtin next() possibly shadowed")\r
-\r
-    def test_builtin_assign(self):\r
-        s = """\r
-            def foo():\r
-                __builtin__.next = foo\r
-\r
-            class A:\r
-                def next(self, a, b):\r
-                    pass\r
-            """\r
-        self.warns_unchanged(s, "Calls to builtin next() possibly shadowed")\r
-\r
-    def test_builtin_assign_in_tuple(self):\r
-        s = """\r
-            def foo():\r
-                (a, __builtin__.next) = foo\r
-\r
-            class A:\r
-                def next(self, a, b):\r
-                    pass\r
-            """\r
-        self.warns_unchanged(s, "Calls to builtin next() possibly shadowed")\r
-\r
-    def test_builtin_assign_in_list(self):\r
-        s = """\r
-            def foo():\r
-                [a, __builtin__.next] = foo\r
-\r
-            class A:\r
-                def next(self, a, b):\r
-                    pass\r
-            """\r
-        self.warns_unchanged(s, "Calls to builtin next() possibly shadowed")\r
-\r
-    def test_assign_to_next(self):\r
-        s = """\r
-            def foo():\r
-                A.next = foo\r
-\r
-            class A:\r
-                def next(self, a, b):\r
-                    pass\r
-            """\r
-        self.unchanged(s)\r
-\r
-    def test_assign_to_next_in_tuple(self):\r
-        s = """\r
-            def foo():\r
-                (a, A.next) = foo\r
-\r
-            class A:\r
-                def next(self, a, b):\r
-                    pass\r
-            """\r
-        self.unchanged(s)\r
-\r
-    def test_assign_to_next_in_list(self):\r
-        s = """\r
-            def foo():\r
-                [a, A.next] = foo\r
-\r
-            class A:\r
-                def next(self, a, b):\r
-                    pass\r
-            """\r
-        self.unchanged(s)\r
-\r
-    def test_shadowing_import_1(self):\r
-        s = """\r
-            import foo.bar as next\r
-\r
-            class A:\r
-                def next(self, a, b):\r
-                    pass\r
-            """\r
-        self.warns_unchanged(s, "Calls to builtin next() possibly shadowed")\r
-\r
-    def test_shadowing_import_2(self):\r
-        s = """\r
-            import bar, bar.foo as next\r
-\r
-            class A:\r
-                def next(self, a, b):\r
-                    pass\r
-            """\r
-        self.warns_unchanged(s, "Calls to builtin next() possibly shadowed")\r
-\r
-    def test_shadowing_import_3(self):\r
-        s = """\r
-            import bar, bar.foo as next, baz\r
-\r
-            class A:\r
-                def next(self, a, b):\r
-                    pass\r
-            """\r
-        self.warns_unchanged(s, "Calls to builtin next() possibly shadowed")\r
-\r
-    def test_shadowing_import_from_1(self):\r
-        s = """\r
-            from x import next\r
-\r
-            class A:\r
-                def next(self, a, b):\r
-                    pass\r
-            """\r
-        self.warns_unchanged(s, "Calls to builtin next() possibly shadowed")\r
-\r
-    def test_shadowing_import_from_2(self):\r
-        s = """\r
-            from x.a import next\r
-\r
-            class A:\r
-                def next(self, a, b):\r
-                    pass\r
-            """\r
-        self.warns_unchanged(s, "Calls to builtin next() possibly shadowed")\r
-\r
-    def test_shadowing_import_from_3(self):\r
-        s = """\r
-            from x import a, next, b\r
-\r
-            class A:\r
-                def next(self, a, b):\r
-                    pass\r
-            """\r
-        self.warns_unchanged(s, "Calls to builtin next() possibly shadowed")\r
-\r
-    def test_shadowing_import_from_4(self):\r
-        s = """\r
-            from x.a import a, next, b\r
-\r
-            class A:\r
-                def next(self, a, b):\r
-                    pass\r
-            """\r
-        self.warns_unchanged(s, "Calls to builtin next() possibly shadowed")\r
-\r
-    def test_shadowing_funcdef_1(self):\r
-        s = """\r
-            def next(a):\r
-                pass\r
-\r
-            class A:\r
-                def next(self, a, b):\r
-                    pass\r
-            """\r
-        self.warns_unchanged(s, "Calls to builtin next() possibly shadowed")\r
-\r
-    def test_shadowing_funcdef_2(self):\r
-        b = """\r
-            def next(a):\r
-                pass\r
-\r
-            class A:\r
-                def next(self):\r
-                    pass\r
-\r
-            it.next()\r
-            """\r
-        a = """\r
-            def next(a):\r
-                pass\r
-\r
-            class A:\r
-                def __next__(self):\r
-                    pass\r
-\r
-            it.__next__()\r
-            """\r
-        self.warns(b, a, "Calls to builtin next() possibly shadowed")\r
-\r
-    def test_shadowing_global_1(self):\r
-        s = """\r
-            def f():\r
-                global next\r
-                next = 5\r
-            """\r
-        self.warns_unchanged(s, "Calls to builtin next() possibly shadowed")\r
-\r
-    def test_shadowing_global_2(self):\r
-        s = """\r
-            def f():\r
-                global a, next, b\r
-                next = 5\r
-            """\r
-        self.warns_unchanged(s, "Calls to builtin next() possibly shadowed")\r
-\r
-    def test_shadowing_for_simple(self):\r
-        s = """\r
-            for next in it():\r
-                pass\r
-\r
-            b = 5\r
-            c = 6\r
-            """\r
-        self.warns_unchanged(s, "Calls to builtin next() possibly shadowed")\r
-\r
-    def test_shadowing_for_tuple_1(self):\r
-        s = """\r
-            for next, b in it():\r
-                pass\r
-\r
-            b = 5\r
-            c = 6\r
-            """\r
-        self.warns_unchanged(s, "Calls to builtin next() possibly shadowed")\r
-\r
-    def test_shadowing_for_tuple_2(self):\r
-        s = """\r
-            for a, (next, c), b in it():\r
-                pass\r
-\r
-            b = 5\r
-            c = 6\r
-            """\r
-        self.warns_unchanged(s, "Calls to builtin next() possibly shadowed")\r
-\r
-    def test_noncall_access_1(self):\r
-        b = """gnext = g.next"""\r
-        a = """gnext = g.__next__"""\r
-        self.check(b, a)\r
-\r
-    def test_noncall_access_2(self):\r
-        b = """f(g.next + 5)"""\r
-        a = """f(g.__next__ + 5)"""\r
-        self.check(b, a)\r
-\r
-    def test_noncall_access_3(self):\r
-        b = """f(g().next + 5)"""\r
-        a = """f(g().__next__ + 5)"""\r
-        self.check(b, a)\r
-\r
-class Test_nonzero(FixerTestCase):\r
-    fixer = "nonzero"\r
-\r
-    def test_1(self):\r
-        b = """\r
-            class A:\r
-                def __nonzero__(self):\r
-                    pass\r
-            """\r
-        a = """\r
-            class A:\r
-                def __bool__(self):\r
-                    pass\r
-            """\r
-        self.check(b, a)\r
-\r
-    def test_2(self):\r
-        b = """\r
-            class A(object):\r
-                def __nonzero__(self):\r
-                    pass\r
-            """\r
-        a = """\r
-            class A(object):\r
-                def __bool__(self):\r
-                    pass\r
-            """\r
-        self.check(b, a)\r
-\r
-    def test_unchanged_1(self):\r
-        s = """\r
-            class A(object):\r
-                def __bool__(self):\r
-                    pass\r
-            """\r
-        self.unchanged(s)\r
-\r
-    def test_unchanged_2(self):\r
-        s = """\r
-            class A(object):\r
-                def __nonzero__(self, a):\r
-                    pass\r
-            """\r
-        self.unchanged(s)\r
-\r
-    def test_unchanged_func(self):\r
-        s = """\r
-            def __nonzero__(self):\r
-                pass\r
-            """\r
-        self.unchanged(s)\r
-\r
-class Test_numliterals(FixerTestCase):\r
-    fixer = "numliterals"\r
-\r
-    def test_octal_1(self):\r
-        b = """0755"""\r
-        a = """0o755"""\r
-        self.check(b, a)\r
-\r
-    def test_long_int_1(self):\r
-        b = """a = 12L"""\r
-        a = """a = 12"""\r
-        self.check(b, a)\r
-\r
-    def test_long_int_2(self):\r
-        b = """a = 12l"""\r
-        a = """a = 12"""\r
-        self.check(b, a)\r
-\r
-    def test_long_hex(self):\r
-        b = """b = 0x12l"""\r
-        a = """b = 0x12"""\r
-        self.check(b, a)\r
-\r
-    def test_comments_and_spacing(self):\r
-        b = """b =   0x12L"""\r
-        a = """b =   0x12"""\r
-        self.check(b, a)\r
-\r
-        b = """b = 0755 # spam"""\r
-        a = """b = 0o755 # spam"""\r
-        self.check(b, a)\r
-\r
-    def test_unchanged_int(self):\r
-        s = """5"""\r
-        self.unchanged(s)\r
-\r
-    def test_unchanged_float(self):\r
-        s = """5.0"""\r
-        self.unchanged(s)\r
-\r
-    def test_unchanged_octal(self):\r
-        s = """0o755"""\r
-        self.unchanged(s)\r
-\r
-    def test_unchanged_hex(self):\r
-        s = """0xABC"""\r
-        self.unchanged(s)\r
-\r
-    def test_unchanged_exp(self):\r
-        s = """5.0e10"""\r
-        self.unchanged(s)\r
-\r
-    def test_unchanged_complex_int(self):\r
-        s = """5 + 4j"""\r
-        self.unchanged(s)\r
-\r
-    def test_unchanged_complex_float(self):\r
-        s = """5.4 + 4.9j"""\r
-        self.unchanged(s)\r
-\r
-    def test_unchanged_complex_bare(self):\r
-        s = """4j"""\r
-        self.unchanged(s)\r
-        s = """4.4j"""\r
-        self.unchanged(s)\r
-\r
-class Test_renames(FixerTestCase):\r
-    fixer = "renames"\r
-\r
-    modules = {"sys":  ("maxint", "maxsize"),\r
-              }\r
-\r
-    def test_import_from(self):\r
-        for mod, (old, new) in self.modules.items():\r
-            b = "from %s import %s" % (mod, old)\r
-            a = "from %s import %s" % (mod, new)\r
-            self.check(b, a)\r
-\r
-            s = "from foo import %s" % old\r
-            self.unchanged(s)\r
-\r
-    def test_import_from_as(self):\r
-        for mod, (old, new) in self.modules.items():\r
-            b = "from %s import %s as foo_bar" % (mod, old)\r
-            a = "from %s import %s as foo_bar" % (mod, new)\r
-            self.check(b, a)\r
-\r
-    def test_import_module_usage(self):\r
-        for mod, (old, new) in self.modules.items():\r
-            b = """\r
-                import %s\r
-                foo(%s, %s.%s)\r
-                """ % (mod, mod, mod, old)\r
-            a = """\r
-                import %s\r
-                foo(%s, %s.%s)\r
-                """ % (mod, mod, mod, new)\r
-            self.check(b, a)\r
-\r
-    def XXX_test_from_import_usage(self):\r
-        # not implemented yet\r
-        for mod, (old, new) in self.modules.items():\r
-            b = """\r
-                from %s import %s\r
-                foo(%s, %s)\r
-                """ % (mod, old, mod, old)\r
-            a = """\r
-                from %s import %s\r
-                foo(%s, %s)\r
-                """ % (mod, new, mod, new)\r
-            self.check(b, a)\r
-\r
-class Test_unicode(FixerTestCase):\r
-    fixer = "unicode"\r
-\r
-    def test_whitespace(self):\r
-        b = """unicode( x)"""\r
-        a = """str( x)"""\r
-        self.check(b, a)\r
-\r
-        b = """ unicode(x )"""\r
-        a = """ str(x )"""\r
-        self.check(b, a)\r
-\r
-        b = """ u'h'"""\r
-        a = """ 'h'"""\r
-        self.check(b, a)\r
-\r
-    def test_unicode_call(self):\r
-        b = """unicode(x, y, z)"""\r
-        a = """str(x, y, z)"""\r
-        self.check(b, a)\r
-\r
-    def test_unichr(self):\r
-        b = """unichr(u'h')"""\r
-        a = """chr('h')"""\r
-        self.check(b, a)\r
-\r
-    def test_unicode_literal_1(self):\r
-        b = '''u"x"'''\r
-        a = '''"x"'''\r
-        self.check(b, a)\r
-\r
-    def test_unicode_literal_2(self):\r
-        b = """ur'x'"""\r
-        a = """r'x'"""\r
-        self.check(b, a)\r
-\r
-    def test_unicode_literal_3(self):\r
-        b = """UR'''x''' """\r
-        a = """R'''x''' """\r
-        self.check(b, a)\r
-\r
-class Test_callable(FixerTestCase):\r
-    fixer = "callable"\r
-\r
-    def test_prefix_preservation(self):\r
-        b = """callable(    x)"""\r
-        a = """import collections\nisinstance(    x, collections.Callable)"""\r
-        self.check(b, a)\r
-\r
-        b = """if     callable(x): pass"""\r
-        a = """import collections\r
-if     isinstance(x, collections.Callable): pass"""\r
-        self.check(b, a)\r
-\r
-    def test_callable_call(self):\r
-        b = """callable(x)"""\r
-        a = """import collections\nisinstance(x, collections.Callable)"""\r
-        self.check(b, a)\r
-\r
-    def test_global_import(self):\r
-        b = """\r
-def spam(foo):\r
-    callable(foo)"""[1:]\r
-        a = """\r
-import collections\r
-def spam(foo):\r
-    isinstance(foo, collections.Callable)"""[1:]\r
-        self.check(b, a)\r
-\r
-        b = """\r
-import collections\r
-def spam(foo):\r
-    callable(foo)"""[1:]\r
-        # same output if it was already imported\r
-        self.check(b, a)\r
-\r
-        b = """\r
-from collections import *\r
-def spam(foo):\r
-    callable(foo)"""[1:]\r
-        a = """\r
-from collections import *\r
-import collections\r
-def spam(foo):\r
-    isinstance(foo, collections.Callable)"""[1:]\r
-        self.check(b, a)\r
-\r
-        b = """\r
-do_stuff()\r
-do_some_other_stuff()\r
-assert callable(do_stuff)"""[1:]\r
-        a = """\r
-import collections\r
-do_stuff()\r
-do_some_other_stuff()\r
-assert isinstance(do_stuff, collections.Callable)"""[1:]\r
-        self.check(b, a)\r
-\r
-        b = """\r
-if isinstance(do_stuff, Callable):\r
-    assert callable(do_stuff)\r
-    do_stuff(do_stuff)\r
-    if not callable(do_stuff):\r
-        exit(1)\r
-    else:\r
-        assert callable(do_stuff)\r
-else:\r
-    assert not callable(do_stuff)"""[1:]\r
-        a = """\r
-import collections\r
-if isinstance(do_stuff, Callable):\r
-    assert isinstance(do_stuff, collections.Callable)\r
-    do_stuff(do_stuff)\r
-    if not isinstance(do_stuff, collections.Callable):\r
-        exit(1)\r
-    else:\r
-        assert isinstance(do_stuff, collections.Callable)\r
-else:\r
-    assert not isinstance(do_stuff, collections.Callable)"""[1:]\r
-        self.check(b, a)\r
-\r
-    def test_callable_should_not_change(self):\r
-        a = """callable(*x)"""\r
-        self.unchanged(a)\r
-\r
-        a = """callable(x, y)"""\r
-        self.unchanged(a)\r
-\r
-        a = """callable(x, kw=y)"""\r
-        self.unchanged(a)\r
-\r
-        a = """callable()"""\r
-        self.unchanged(a)\r
-\r
-class Test_filter(FixerTestCase):\r
-    fixer = "filter"\r
-\r
-    def test_prefix_preservation(self):\r
-        b = """x =   filter(    foo,     'abc'   )"""\r
-        a = """x =   list(filter(    foo,     'abc'   ))"""\r
-        self.check(b, a)\r
-\r
-        b = """x =   filter(  None , 'abc'  )"""\r
-        a = """x =   [_f for _f in 'abc' if _f]"""\r
-        self.check(b, a)\r
-\r
-    def test_filter_basic(self):\r
-        b = """x = filter(None, 'abc')"""\r
-        a = """x = [_f for _f in 'abc' if _f]"""\r
-        self.check(b, a)\r
-\r
-        b = """x = len(filter(f, 'abc'))"""\r
-        a = """x = len(list(filter(f, 'abc')))"""\r
-        self.check(b, a)\r
-\r
-        b = """x = filter(lambda x: x%2 == 0, range(10))"""\r
-        a = """x = [x for x in range(10) if x%2 == 0]"""\r
-        self.check(b, a)\r
-\r
-        # Note the parens around x\r
-        b = """x = filter(lambda (x): x%2 == 0, range(10))"""\r
-        a = """x = [x for x in range(10) if x%2 == 0]"""\r
-        self.check(b, a)\r
-\r
-        # XXX This (rare) case is not supported\r
-##         b = """x = filter(f, 'abc')[0]"""\r
-##         a = """x = list(filter(f, 'abc'))[0]"""\r
-##         self.check(b, a)\r
-\r
-    def test_filter_nochange(self):\r
-        a = """b.join(filter(f, 'abc'))"""\r
-        self.unchanged(a)\r
-        a = """(a + foo(5)).join(filter(f, 'abc'))"""\r
-        self.unchanged(a)\r
-        a = """iter(filter(f, 'abc'))"""\r
-        self.unchanged(a)\r
-        a = """list(filter(f, 'abc'))"""\r
-        self.unchanged(a)\r
-        a = """list(filter(f, 'abc'))[0]"""\r
-        self.unchanged(a)\r
-        a = """set(filter(f, 'abc'))"""\r
-        self.unchanged(a)\r
-        a = """set(filter(f, 'abc')).pop()"""\r
-        self.unchanged(a)\r
-        a = """tuple(filter(f, 'abc'))"""\r
-        self.unchanged(a)\r
-        a = """any(filter(f, 'abc'))"""\r
-        self.unchanged(a)\r
-        a = """all(filter(f, 'abc'))"""\r
-        self.unchanged(a)\r
-        a = """sum(filter(f, 'abc'))"""\r
-        self.unchanged(a)\r
-        a = """sorted(filter(f, 'abc'))"""\r
-        self.unchanged(a)\r
-        a = """sorted(filter(f, 'abc'), key=blah)"""\r
-        self.unchanged(a)\r
-        a = """sorted(filter(f, 'abc'), key=blah)[0]"""\r
-        self.unchanged(a)\r
-        a = """for i in filter(f, 'abc'): pass"""\r
-        self.unchanged(a)\r
-        a = """[x for x in filter(f, 'abc')]"""\r
-        self.unchanged(a)\r
-        a = """(x for x in filter(f, 'abc'))"""\r
-        self.unchanged(a)\r
-\r
-    def test_future_builtins(self):\r
-        a = "from future_builtins import spam, filter; filter(f, 'ham')"\r
-        self.unchanged(a)\r
-\r
-        b = """from future_builtins import spam; x = filter(f, 'abc')"""\r
-        a = """from future_builtins import spam; x = list(filter(f, 'abc'))"""\r
-        self.check(b, a)\r
-\r
-        a = "from future_builtins import *; filter(f, 'ham')"\r
-        self.unchanged(a)\r
-\r
-class Test_map(FixerTestCase):\r
-    fixer = "map"\r
-\r
-    def check(self, b, a):\r
-        self.unchanged("from future_builtins import map; " + b, a)\r
-        super(Test_map, self).check(b, a)\r
-\r
-    def test_prefix_preservation(self):\r
-        b = """x =    map(   f,    'abc'   )"""\r
-        a = """x =    list(map(   f,    'abc'   ))"""\r
-        self.check(b, a)\r
-\r
-    def test_trailing_comment(self):\r
-        b = """x = map(f, 'abc')   #   foo"""\r
-        a = """x = list(map(f, 'abc'))   #   foo"""\r
-        self.check(b, a)\r
-\r
-    def test_None_with_multiple_arguments(self):\r
-        s = """x = map(None, a, b, c)"""\r
-        self.warns_unchanged(s, "cannot convert map(None, ...) with "\r
-                             "multiple arguments")\r
-\r
-    def test_map_basic(self):\r
-        b = """x = map(f, 'abc')"""\r
-        a = """x = list(map(f, 'abc'))"""\r
-        self.check(b, a)\r
-\r
-        b = """x = len(map(f, 'abc', 'def'))"""\r
-        a = """x = len(list(map(f, 'abc', 'def')))"""\r
-        self.check(b, a)\r
-\r
-        b = """x = map(None, 'abc')"""\r
-        a = """x = list('abc')"""\r
-        self.check(b, a)\r
-\r
-        b = """x = map(lambda x: x+1, range(4))"""\r
-        a = """x = [x+1 for x in range(4)]"""\r
-        self.check(b, a)\r
-\r
-        # Note the parens around x\r
-        b = """x = map(lambda (x): x+1, range(4))"""\r
-        a = """x = [x+1 for x in range(4)]"""\r
-        self.check(b, a)\r
-\r
-        b = """\r
-            foo()\r
-            # foo\r
-            map(f, x)\r
-            """\r
-        a = """\r
-            foo()\r
-            # foo\r
-            list(map(f, x))\r
-            """\r
-        self.warns(b, a, "You should use a for loop here")\r
-\r
-        # XXX This (rare) case is not supported\r
-##         b = """x = map(f, 'abc')[0]"""\r
-##         a = """x = list(map(f, 'abc'))[0]"""\r
-##         self.check(b, a)\r
-\r
-    def test_map_nochange(self):\r
-        a = """b.join(map(f, 'abc'))"""\r
-        self.unchanged(a)\r
-        a = """(a + foo(5)).join(map(f, 'abc'))"""\r
-        self.unchanged(a)\r
-        a = """iter(map(f, 'abc'))"""\r
-        self.unchanged(a)\r
-        a = """list(map(f, 'abc'))"""\r
-        self.unchanged(a)\r
-        a = """list(map(f, 'abc'))[0]"""\r
-        self.unchanged(a)\r
-        a = """set(map(f, 'abc'))"""\r
-        self.unchanged(a)\r
-        a = """set(map(f, 'abc')).pop()"""\r
-        self.unchanged(a)\r
-        a = """tuple(map(f, 'abc'))"""\r
-        self.unchanged(a)\r
-        a = """any(map(f, 'abc'))"""\r
-        self.unchanged(a)\r
-        a = """all(map(f, 'abc'))"""\r
-        self.unchanged(a)\r
-        a = """sum(map(f, 'abc'))"""\r
-        self.unchanged(a)\r
-        a = """sorted(map(f, 'abc'))"""\r
-        self.unchanged(a)\r
-        a = """sorted(map(f, 'abc'), key=blah)"""\r
-        self.unchanged(a)\r
-        a = """sorted(map(f, 'abc'), key=blah)[0]"""\r
-        self.unchanged(a)\r
-        a = """for i in map(f, 'abc'): pass"""\r
-        self.unchanged(a)\r
-        a = """[x for x in map(f, 'abc')]"""\r
-        self.unchanged(a)\r
-        a = """(x for x in map(f, 'abc'))"""\r
-        self.unchanged(a)\r
-\r
-    def test_future_builtins(self):\r
-        a = "from future_builtins import spam, map, eggs; map(f, 'ham')"\r
-        self.unchanged(a)\r
-\r
-        b = """from future_builtins import spam, eggs; x = map(f, 'abc')"""\r
-        a = """from future_builtins import spam, eggs; x = list(map(f, 'abc'))"""\r
-        self.check(b, a)\r
-\r
-        a = "from future_builtins import *; map(f, 'ham')"\r
-        self.unchanged(a)\r
-\r
-class Test_zip(FixerTestCase):\r
-    fixer = "zip"\r
-\r
-    def check(self, b, a):\r
-        self.unchanged("from future_builtins import zip; " + b, a)\r
-        super(Test_zip, self).check(b, a)\r
-\r
-    def test_zip_basic(self):\r
-        b = """x = zip(a, b, c)"""\r
-        a = """x = list(zip(a, b, c))"""\r
-        self.check(b, a)\r
-\r
-        b = """x = len(zip(a, b))"""\r
-        a = """x = len(list(zip(a, b)))"""\r
-        self.check(b, a)\r
-\r
-    def test_zip_nochange(self):\r
-        a = """b.join(zip(a, b))"""\r
-        self.unchanged(a)\r
-        a = """(a + foo(5)).join(zip(a, b))"""\r
-        self.unchanged(a)\r
-        a = """iter(zip(a, b))"""\r
-        self.unchanged(a)\r
-        a = """list(zip(a, b))"""\r
-        self.unchanged(a)\r
-        a = """list(zip(a, b))[0]"""\r
-        self.unchanged(a)\r
-        a = """set(zip(a, b))"""\r
-        self.unchanged(a)\r
-        a = """set(zip(a, b)).pop()"""\r
-        self.unchanged(a)\r
-        a = """tuple(zip(a, b))"""\r
-        self.unchanged(a)\r
-        a = """any(zip(a, b))"""\r
-        self.unchanged(a)\r
-        a = """all(zip(a, b))"""\r
-        self.unchanged(a)\r
-        a = """sum(zip(a, b))"""\r
-        self.unchanged(a)\r
-        a = """sorted(zip(a, b))"""\r
-        self.unchanged(a)\r
-        a = """sorted(zip(a, b), key=blah)"""\r
-        self.unchanged(a)\r
-        a = """sorted(zip(a, b), key=blah)[0]"""\r
-        self.unchanged(a)\r
-        a = """for i in zip(a, b): pass"""\r
-        self.unchanged(a)\r
-        a = """[x for x in zip(a, b)]"""\r
-        self.unchanged(a)\r
-        a = """(x for x in zip(a, b))"""\r
-        self.unchanged(a)\r
-\r
-    def test_future_builtins(self):\r
-        a = "from future_builtins import spam, zip, eggs; zip(a, b)"\r
-        self.unchanged(a)\r
-\r
-        b = """from future_builtins import spam, eggs; x = zip(a, b)"""\r
-        a = """from future_builtins import spam, eggs; x = list(zip(a, b))"""\r
-        self.check(b, a)\r
-\r
-        a = "from future_builtins import *; zip(a, b)"\r
-        self.unchanged(a)\r
-\r
-class Test_standarderror(FixerTestCase):\r
-    fixer = "standarderror"\r
-\r
-    def test(self):\r
-        b = """x =    StandardError()"""\r
-        a = """x =    Exception()"""\r
-        self.check(b, a)\r
-\r
-        b = """x = StandardError(a, b, c)"""\r
-        a = """x = Exception(a, b, c)"""\r
-        self.check(b, a)\r
-\r
-        b = """f(2 + StandardError(a, b, c))"""\r
-        a = """f(2 + Exception(a, b, c))"""\r
-        self.check(b, a)\r
-\r
-class Test_types(FixerTestCase):\r
-    fixer = "types"\r
-\r
-    def test_basic_types_convert(self):\r
-        b = """types.StringType"""\r
-        a = """bytes"""\r
-        self.check(b, a)\r
-\r
-        b = """types.DictType"""\r
-        a = """dict"""\r
-        self.check(b, a)\r
-\r
-        b = """types . IntType"""\r
-        a = """int"""\r
-        self.check(b, a)\r
-\r
-        b = """types.ListType"""\r
-        a = """list"""\r
-        self.check(b, a)\r
-\r
-        b = """types.LongType"""\r
-        a = """int"""\r
-        self.check(b, a)\r
-\r
-        b = """types.NoneType"""\r
-        a = """type(None)"""\r
-        self.check(b, a)\r
-\r
-class Test_idioms(FixerTestCase):\r
-    fixer = "idioms"\r
-\r
-    def test_while(self):\r
-        b = """while 1: foo()"""\r
-        a = """while True: foo()"""\r
-        self.check(b, a)\r
-\r
-        b = """while   1: foo()"""\r
-        a = """while   True: foo()"""\r
-        self.check(b, a)\r
-\r
-        b = """\r
-            while 1:\r
-                foo()\r
-            """\r
-        a = """\r
-            while True:\r
-                foo()\r
-            """\r
-        self.check(b, a)\r
-\r
-    def test_while_unchanged(self):\r
-        s = """while 11: foo()"""\r
-        self.unchanged(s)\r
-\r
-        s = """while 0: foo()"""\r
-        self.unchanged(s)\r
-\r
-        s = """while foo(): foo()"""\r
-        self.unchanged(s)\r
-\r
-        s = """while []: foo()"""\r
-        self.unchanged(s)\r
-\r
-    def test_eq_simple(self):\r
-        b = """type(x) == T"""\r
-        a = """isinstance(x, T)"""\r
-        self.check(b, a)\r
-\r
-        b = """if   type(x) == T: pass"""\r
-        a = """if   isinstance(x, T): pass"""\r
-        self.check(b, a)\r
-\r
-    def test_eq_reverse(self):\r
-        b = """T == type(x)"""\r
-        a = """isinstance(x, T)"""\r
-        self.check(b, a)\r
-\r
-        b = """if   T == type(x): pass"""\r
-        a = """if   isinstance(x, T): pass"""\r
-        self.check(b, a)\r
-\r
-    def test_eq_expression(self):\r
-        b = """type(x+y) == d.get('T')"""\r
-        a = """isinstance(x+y, d.get('T'))"""\r
-        self.check(b, a)\r
-\r
-        b = """type(   x  +  y) == d.get('T')"""\r
-        a = """isinstance(x  +  y, d.get('T'))"""\r
-        self.check(b, a)\r
-\r
-    def test_is_simple(self):\r
-        b = """type(x) is T"""\r
-        a = """isinstance(x, T)"""\r
-        self.check(b, a)\r
-\r
-        b = """if   type(x) is T: pass"""\r
-        a = """if   isinstance(x, T): pass"""\r
-        self.check(b, a)\r
-\r
-    def test_is_reverse(self):\r
-        b = """T is type(x)"""\r
-        a = """isinstance(x, T)"""\r
-        self.check(b, a)\r
-\r
-        b = """if   T is type(x): pass"""\r
-        a = """if   isinstance(x, T): pass"""\r
-        self.check(b, a)\r
-\r
-    def test_is_expression(self):\r
-        b = """type(x+y) is d.get('T')"""\r
-        a = """isinstance(x+y, d.get('T'))"""\r
-        self.check(b, a)\r
-\r
-        b = """type(   x  +  y) is d.get('T')"""\r
-        a = """isinstance(x  +  y, d.get('T'))"""\r
-        self.check(b, a)\r
-\r
-    def test_is_not_simple(self):\r
-        b = """type(x) is not T"""\r
-        a = """not isinstance(x, T)"""\r
-        self.check(b, a)\r
-\r
-        b = """if   type(x) is not T: pass"""\r
-        a = """if   not isinstance(x, T): pass"""\r
-        self.check(b, a)\r
-\r
-    def test_is_not_reverse(self):\r
-        b = """T is not type(x)"""\r
-        a = """not isinstance(x, T)"""\r
-        self.check(b, a)\r
-\r
-        b = """if   T is not type(x): pass"""\r
-        a = """if   not isinstance(x, T): pass"""\r
-        self.check(b, a)\r
-\r
-    def test_is_not_expression(self):\r
-        b = """type(x+y) is not d.get('T')"""\r
-        a = """not isinstance(x+y, d.get('T'))"""\r
-        self.check(b, a)\r
-\r
-        b = """type(   x  +  y) is not d.get('T')"""\r
-        a = """not isinstance(x  +  y, d.get('T'))"""\r
-        self.check(b, a)\r
-\r
-    def test_ne_simple(self):\r
-        b = """type(x) != T"""\r
-        a = """not isinstance(x, T)"""\r
-        self.check(b, a)\r
-\r
-        b = """if   type(x) != T: pass"""\r
-        a = """if   not isinstance(x, T): pass"""\r
-        self.check(b, a)\r
-\r
-    def test_ne_reverse(self):\r
-        b = """T != type(x)"""\r
-        a = """not isinstance(x, T)"""\r
-        self.check(b, a)\r
-\r
-        b = """if   T != type(x): pass"""\r
-        a = """if   not isinstance(x, T): pass"""\r
-        self.check(b, a)\r
-\r
-    def test_ne_expression(self):\r
-        b = """type(x+y) != d.get('T')"""\r
-        a = """not isinstance(x+y, d.get('T'))"""\r
-        self.check(b, a)\r
-\r
-        b = """type(   x  +  y) != d.get('T')"""\r
-        a = """not isinstance(x  +  y, d.get('T'))"""\r
-        self.check(b, a)\r
-\r
-    def test_type_unchanged(self):\r
-        a = """type(x).__name__"""\r
-        self.unchanged(a)\r
-\r
-    def test_sort_list_call(self):\r
-        b = """\r
-            v = list(t)\r
-            v.sort()\r
-            foo(v)\r
-            """\r
-        a = """\r
-            v = sorted(t)\r
-            foo(v)\r
-            """\r
-        self.check(b, a)\r
-\r
-        b = """\r
-            v = list(foo(b) + d)\r
-            v.sort()\r
-            foo(v)\r
-            """\r
-        a = """\r
-            v = sorted(foo(b) + d)\r
-            foo(v)\r
-            """\r
-        self.check(b, a)\r
-\r
-        b = """\r
-            while x:\r
-                v = list(t)\r
-                v.sort()\r
-                foo(v)\r
-            """\r
-        a = """\r
-            while x:\r
-                v = sorted(t)\r
-                foo(v)\r
-            """\r
-        self.check(b, a)\r
-\r
-        b = """\r
-            v = list(t)\r
-            # foo\r
-            v.sort()\r
-            foo(v)\r
-            """\r
-        a = """\r
-            v = sorted(t)\r
-            # foo\r
-            foo(v)\r
-            """\r
-        self.check(b, a)\r
-\r
-        b = r"""\r
-            v = list(   t)\r
-            v.sort()\r
-            foo(v)\r
-            """\r
-        a = r"""\r
-            v = sorted(   t)\r
-            foo(v)\r
-            """\r
-        self.check(b, a)\r
-\r
-        b = r"""\r
-            try:\r
-                m = list(s)\r
-                m.sort()\r
-            except: pass\r
-            """\r
-\r
-        a = r"""\r
-            try:\r
-                m = sorted(s)\r
-            except: pass\r
-            """\r
-        self.check(b, a)\r
-\r
-        b = r"""\r
-            try:\r
-                m = list(s)\r
-                # foo\r
-                m.sort()\r
-            except: pass\r
-            """\r
-\r
-        a = r"""\r
-            try:\r
-                m = sorted(s)\r
-                # foo\r
-            except: pass\r
-            """\r
-        self.check(b, a)\r
-\r
-        b = r"""\r
-            m = list(s)\r
-            # more comments\r
-            m.sort()"""\r
-\r
-        a = r"""\r
-            m = sorted(s)\r
-            # more comments"""\r
-        self.check(b, a)\r
-\r
-    def test_sort_simple_expr(self):\r
-        b = """\r
-            v = t\r
-            v.sort()\r
-            foo(v)\r
-            """\r
-        a = """\r
-            v = sorted(t)\r
-            foo(v)\r
-            """\r
-        self.check(b, a)\r
-\r
-        b = """\r
-            v = foo(b)\r
-            v.sort()\r
-            foo(v)\r
-            """\r
-        a = """\r
-            v = sorted(foo(b))\r
-            foo(v)\r
-            """\r
-        self.check(b, a)\r
-\r
-        b = """\r
-            v = b.keys()\r
-            v.sort()\r
-            foo(v)\r
-            """\r
-        a = """\r
-            v = sorted(b.keys())\r
-            foo(v)\r
-            """\r
-        self.check(b, a)\r
-\r
-        b = """\r
-            v = foo(b) + d\r
-            v.sort()\r
-            foo(v)\r
-            """\r
-        a = """\r
-            v = sorted(foo(b) + d)\r
-            foo(v)\r
-            """\r
-        self.check(b, a)\r
-\r
-        b = """\r
-            while x:\r
-                v = t\r
-                v.sort()\r
-                foo(v)\r
-            """\r
-        a = """\r
-            while x:\r
-                v = sorted(t)\r
-                foo(v)\r
-            """\r
-        self.check(b, a)\r
-\r
-        b = """\r
-            v = t\r
-            # foo\r
-            v.sort()\r
-            foo(v)\r
-            """\r
-        a = """\r
-            v = sorted(t)\r
-            # foo\r
-            foo(v)\r
-            """\r
-        self.check(b, a)\r
-\r
-        b = r"""\r
-            v =   t\r
-            v.sort()\r
-            foo(v)\r
-            """\r
-        a = r"""\r
-            v =   sorted(t)\r
-            foo(v)\r
-            """\r
-        self.check(b, a)\r
-\r
-    def test_sort_unchanged(self):\r
-        s = """\r
-            v = list(t)\r
-            w.sort()\r
-            foo(w)\r
-            """\r
-        self.unchanged(s)\r
-\r
-        s = """\r
-            v = list(t)\r
-            v.sort(u)\r
-            foo(v)\r
-            """\r
-        self.unchanged(s)\r
-\r
-class Test_basestring(FixerTestCase):\r
-    fixer = "basestring"\r
-\r
-    def test_basestring(self):\r
-        b = """isinstance(x, basestring)"""\r
-        a = """isinstance(x, str)"""\r
-        self.check(b, a)\r
-\r
-class Test_buffer(FixerTestCase):\r
-    fixer = "buffer"\r
-\r
-    def test_buffer(self):\r
-        b = """x = buffer(y)"""\r
-        a = """x = memoryview(y)"""\r
-        self.check(b, a)\r
-\r
-    def test_slicing(self):\r
-        b = """buffer(y)[4:5]"""\r
-        a = """memoryview(y)[4:5]"""\r
-        self.check(b, a)\r
-\r
-class Test_future(FixerTestCase):\r
-    fixer = "future"\r
-\r
-    def test_future(self):\r
-        b = """from __future__ import braces"""\r
-        a = """"""\r
-        self.check(b, a)\r
-\r
-        b = """# comment\nfrom __future__ import braces"""\r
-        a = """# comment\n"""\r
-        self.check(b, a)\r
-\r
-        b = """from __future__ import braces\n# comment"""\r
-        a = """\n# comment"""\r
-        self.check(b, a)\r
-\r
-    def test_run_order(self):\r
-        self.assert_runs_after('print')\r
-\r
-class Test_itertools(FixerTestCase):\r
-    fixer = "itertools"\r
-\r
-    def checkall(self, before, after):\r
-        # Because we need to check with and without the itertools prefix\r
-        # and on each of the three functions, these loops make it all\r
-        # much easier\r
-        for i in ('itertools.', ''):\r
-            for f in ('map', 'filter', 'zip'):\r
-                b = before %(i+'i'+f)\r
-                a = after %(f)\r
-                self.check(b, a)\r
-\r
-    def test_0(self):\r
-        # A simple example -- test_1 covers exactly the same thing,\r
-        # but it's not quite as clear.\r
-        b = "itertools.izip(a, b)"\r
-        a = "zip(a, b)"\r
-        self.check(b, a)\r
-\r
-    def test_1(self):\r
-        b = """%s(f, a)"""\r
-        a = """%s(f, a)"""\r
-        self.checkall(b, a)\r
-\r
-    def test_qualified(self):\r
-        b = """itertools.ifilterfalse(a, b)"""\r
-        a = """itertools.filterfalse(a, b)"""\r
-        self.check(b, a)\r
-\r
-        b = """itertools.izip_longest(a, b)"""\r
-        a = """itertools.zip_longest(a, b)"""\r
-        self.check(b, a)\r
-\r
-    def test_2(self):\r
-        b = """ifilterfalse(a, b)"""\r
-        a = """filterfalse(a, b)"""\r
-        self.check(b, a)\r
-\r
-        b = """izip_longest(a, b)"""\r
-        a = """zip_longest(a, b)"""\r
-        self.check(b, a)\r
-\r
-    def test_space_1(self):\r
-        b = """    %s(f, a)"""\r
-        a = """    %s(f, a)"""\r
-        self.checkall(b, a)\r
-\r
-    def test_space_2(self):\r
-        b = """    itertools.ifilterfalse(a, b)"""\r
-        a = """    itertools.filterfalse(a, b)"""\r
-        self.check(b, a)\r
-\r
-        b = """    itertools.izip_longest(a, b)"""\r
-        a = """    itertools.zip_longest(a, b)"""\r
-        self.check(b, a)\r
-\r
-    def test_run_order(self):\r
-        self.assert_runs_after('map', 'zip', 'filter')\r
-\r
-\r
-class Test_itertools_imports(FixerTestCase):\r
-    fixer = 'itertools_imports'\r
-\r
-    def test_reduced(self):\r
-        b = "from itertools import imap, izip, foo"\r
-        a = "from itertools import foo"\r
-        self.check(b, a)\r
-\r
-        b = "from itertools import bar, imap, izip, foo"\r
-        a = "from itertools import bar, foo"\r
-        self.check(b, a)\r
-\r
-        b = "from itertools import chain, imap, izip"\r
-        a = "from itertools import chain"\r
-        self.check(b, a)\r
-\r
-    def test_comments(self):\r
-        b = "#foo\nfrom itertools import imap, izip"\r
-        a = "#foo\n"\r
-        self.check(b, a)\r
-\r
-    def test_none(self):\r
-        b = "from itertools import imap, izip"\r
-        a = ""\r
-        self.check(b, a)\r
-\r
-        b = "from itertools import izip"\r
-        a = ""\r
-        self.check(b, a)\r
-\r
-    def test_import_as(self):\r
-        b = "from itertools import izip, bar as bang, imap"\r
-        a = "from itertools import bar as bang"\r
-        self.check(b, a)\r
-\r
-        b = "from itertools import izip as _zip, imap, bar"\r
-        a = "from itertools import bar"\r
-        self.check(b, a)\r
-\r
-        b = "from itertools import imap as _map"\r
-        a = ""\r
-        self.check(b, a)\r
-\r
-        b = "from itertools import imap as _map, izip as _zip"\r
-        a = ""\r
-        self.check(b, a)\r
-\r
-        s = "from itertools import bar as bang"\r
-        self.unchanged(s)\r
-\r
-    def test_ifilter_and_zip_longest(self):\r
-        for name in "filterfalse", "zip_longest":\r
-            b = "from itertools import i%s" % (name,)\r
-            a = "from itertools import %s" % (name,)\r
-            self.check(b, a)\r
-\r
-            b = "from itertools import imap, i%s, foo" % (name,)\r
-            a = "from itertools import %s, foo" % (name,)\r
-            self.check(b, a)\r
-\r
-            b = "from itertools import bar, i%s, foo" % (name,)\r
-            a = "from itertools import bar, %s, foo" % (name,)\r
-            self.check(b, a)\r
-\r
-    def test_import_star(self):\r
-        s = "from itertools import *"\r
-        self.unchanged(s)\r
-\r
-\r
-    def test_unchanged(self):\r
-        s = "from itertools import foo"\r
-        self.unchanged(s)\r
-\r
-\r
-class Test_import(FixerTestCase):\r
-    fixer = "import"\r
-\r
-    def setUp(self):\r
-        super(Test_import, self).setUp()\r
-        # Need to replace fix_import's exists method\r
-        # so we can check that it's doing the right thing\r
-        self.files_checked = []\r
-        self.present_files = set()\r
-        self.always_exists = True\r
-        def fake_exists(name):\r
-            self.files_checked.append(name)\r
-            return self.always_exists or (name in self.present_files)\r
-\r
-        from lib2to3.fixes import fix_import\r
-        fix_import.exists = fake_exists\r
-\r
-    def tearDown(self):\r
-        from lib2to3.fixes import fix_import\r
-        fix_import.exists = os.path.exists\r
-\r
-    def check_both(self, b, a):\r
-        self.always_exists = True\r
-        super(Test_import, self).check(b, a)\r
-        self.always_exists = False\r
-        super(Test_import, self).unchanged(b)\r
-\r
-    def test_files_checked(self):\r
-        def p(path):\r
-            # Takes a unix path and returns a path with correct separators\r
-            return os.path.pathsep.join(path.split("/"))\r
-\r
-        self.always_exists = False\r
-        self.present_files = set(['__init__.py'])\r
-        expected_extensions = ('.py', os.path.sep, '.pyc', '.so', '.sl', '.pyd')\r
-        names_to_test = (p("/spam/eggs.py"), "ni.py", p("../../shrubbery.py"))\r
-\r
-        for name in names_to_test:\r
-            self.files_checked = []\r
-            self.filename = name\r
-            self.unchanged("import jam")\r
-\r
-            if os.path.dirname(name):\r
-                name = os.path.dirname(name) + '/jam'\r
-            else:\r
-                name = 'jam'\r
-            expected_checks = set(name + ext for ext in expected_extensions)\r
-            expected_checks.add("__init__.py")\r
-\r
-            self.assertEqual(set(self.files_checked), expected_checks)\r
-\r
-    def test_not_in_package(self):\r
-        s = "import bar"\r
-        self.always_exists = False\r
-        self.present_files = set(["bar.py"])\r
-        self.unchanged(s)\r
-\r
-    def test_with_absolute_import_enabled(self):\r
-        s = "from __future__ import absolute_import\nimport bar"\r
-        self.always_exists = False\r
-        self.present_files = set(["__init__.py", "bar.py"])\r
-        self.unchanged(s)\r
-\r
-    def test_in_package(self):\r
-        b = "import bar"\r
-        a = "from . import bar"\r
-        self.always_exists = False\r
-        self.present_files = set(["__init__.py", "bar.py"])\r
-        self.check(b, a)\r
-\r
-    def test_import_from_package(self):\r
-        b = "import bar"\r
-        a = "from . import bar"\r
-        self.always_exists = False\r
-        self.present_files = set(["__init__.py", "bar" + os.path.sep])\r
-        self.check(b, a)\r
-\r
-    def test_already_relative_import(self):\r
-        s = "from . import bar"\r
-        self.unchanged(s)\r
-\r
-    def test_comments_and_indent(self):\r
-        b = "import bar # Foo"\r
-        a = "from . import bar # Foo"\r
-        self.check(b, a)\r
-\r
-    def test_from(self):\r
-        b = "from foo import bar, baz"\r
-        a = "from .foo import bar, baz"\r
-        self.check_both(b, a)\r
-\r
-        b = "from foo import bar"\r
-        a = "from .foo import bar"\r
-        self.check_both(b, a)\r
-\r
-        b = "from foo import (bar, baz)"\r
-        a = "from .foo import (bar, baz)"\r
-        self.check_both(b, a)\r
-\r
-    def test_dotted_from(self):\r
-        b = "from green.eggs import ham"\r
-        a = "from .green.eggs import ham"\r
-        self.check_both(b, a)\r
-\r
-    def test_from_as(self):\r
-        b = "from green.eggs import ham as spam"\r
-        a = "from .green.eggs import ham as spam"\r
-        self.check_both(b, a)\r
-\r
-    def test_import(self):\r
-        b = "import foo"\r
-        a = "from . import foo"\r
-        self.check_both(b, a)\r
-\r
-        b = "import foo, bar"\r
-        a = "from . import foo, bar"\r
-        self.check_both(b, a)\r
-\r
-        b = "import foo, bar, x"\r
-        a = "from . import foo, bar, x"\r
-        self.check_both(b, a)\r
-\r
-        b = "import x, y, z"\r
-        a = "from . import x, y, z"\r
-        self.check_both(b, a)\r
-\r
-    def test_import_as(self):\r
-        b = "import foo as x"\r
-        a = "from . import foo as x"\r
-        self.check_both(b, a)\r
-\r
-        b = "import a as b, b as c, c as d"\r
-        a = "from . import a as b, b as c, c as d"\r
-        self.check_both(b, a)\r
-\r
-    def test_local_and_absolute(self):\r
-        self.always_exists = False\r
-        self.present_files = set(["foo.py", "__init__.py"])\r
-\r
-        s = "import foo, bar"\r
-        self.warns_unchanged(s, "absolute and local imports together")\r
-\r
-    def test_dotted_import(self):\r
-        b = "import foo.bar"\r
-        a = "from . import foo.bar"\r
-        self.check_both(b, a)\r
-\r
-    def test_dotted_import_as(self):\r
-        b = "import foo.bar as bang"\r
-        a = "from . import foo.bar as bang"\r
-        self.check_both(b, a)\r
-\r
-    def test_prefix(self):\r
-        b = """\r
-        # prefix\r
-        import foo.bar\r
-        """\r
-        a = """\r
-        # prefix\r
-        from . import foo.bar\r
-        """\r
-        self.check_both(b, a)\r
-\r
-\r
-class Test_set_literal(FixerTestCase):\r
-\r
-    fixer = "set_literal"\r
-\r
-    def test_basic(self):\r
-        b = """set([1, 2, 3])"""\r
-        a = """{1, 2, 3}"""\r
-        self.check(b, a)\r
-\r
-        b = """set((1, 2, 3))"""\r
-        a = """{1, 2, 3}"""\r
-        self.check(b, a)\r
-\r
-        b = """set((1,))"""\r
-        a = """{1}"""\r
-        self.check(b, a)\r
-\r
-        b = """set([1])"""\r
-        self.check(b, a)\r
-\r
-        b = """set((a, b))"""\r
-        a = """{a, b}"""\r
-        self.check(b, a)\r
-\r
-        b = """set([a, b])"""\r
-        self.check(b, a)\r
-\r
-        b = """set((a*234, f(args=23)))"""\r
-        a = """{a*234, f(args=23)}"""\r
-        self.check(b, a)\r
-\r
-        b = """set([a*23, f(23)])"""\r
-        a = """{a*23, f(23)}"""\r
-        self.check(b, a)\r
-\r
-        b = """set([a-234**23])"""\r
-        a = """{a-234**23}"""\r
-        self.check(b, a)\r
-\r
-    def test_listcomps(self):\r
-        b = """set([x for x in y])"""\r
-        a = """{x for x in y}"""\r
-        self.check(b, a)\r
-\r
-        b = """set([x for x in y if x == m])"""\r
-        a = """{x for x in y if x == m}"""\r
-        self.check(b, a)\r
-\r
-        b = """set([x for x in y for a in b])"""\r
-        a = """{x for x in y for a in b}"""\r
-        self.check(b, a)\r
-\r
-        b = """set([f(x) - 23 for x in y])"""\r
-        a = """{f(x) - 23 for x in y}"""\r
-        self.check(b, a)\r
-\r
-    def test_whitespace(self):\r
-        b = """set( [1, 2])"""\r
-        a = """{1, 2}"""\r
-        self.check(b, a)\r
-\r
-        b = """set([1 ,  2])"""\r
-        a = """{1 ,  2}"""\r
-        self.check(b, a)\r
-\r
-        b = """set([ 1 ])"""\r
-        a = """{ 1 }"""\r
-        self.check(b, a)\r
-\r
-        b = """set( [1] )"""\r
-        a = """{1}"""\r
-        self.check(b, a)\r
-\r
-        b = """set([  1,  2  ])"""\r
-        a = """{  1,  2  }"""\r
-        self.check(b, a)\r
-\r
-        b = """set([x  for x in y ])"""\r
-        a = """{x  for x in y }"""\r
-        self.check(b, a)\r
-\r
-        b = """set(\r
-                   [1, 2]\r
-               )\r
-            """\r
-        a = """{1, 2}\n"""\r
-        self.check(b, a)\r
-\r
-    def test_comments(self):\r
-        b = """set((1, 2)) # Hi"""\r
-        a = """{1, 2} # Hi"""\r
-        self.check(b, a)\r
-\r
-        # This isn't optimal behavior, but the fixer is optional.\r
-        b = """\r
-            # Foo\r
-            set( # Bar\r
-               (1, 2)\r
-            )\r
-            """\r
-        a = """\r
-            # Foo\r
-            {1, 2}\r
-            """\r
-        self.check(b, a)\r
-\r
-    def test_unchanged(self):\r
-        s = """set()"""\r
-        self.unchanged(s)\r
-\r
-        s = """set(a)"""\r
-        self.unchanged(s)\r
-\r
-        s = """set(a, b, c)"""\r
-        self.unchanged(s)\r
-\r
-        # Don't transform generators because they might have to be lazy.\r
-        s = """set(x for x in y)"""\r
-        self.unchanged(s)\r
-\r
-        s = """set(x for x in y if z)"""\r
-        self.unchanged(s)\r
-\r
-        s = """set(a*823-23**2 + f(23))"""\r
-        self.unchanged(s)\r
-\r
-\r
-class Test_sys_exc(FixerTestCase):\r
-    fixer = "sys_exc"\r
-\r
-    def test_0(self):\r
-        b = "sys.exc_type"\r
-        a = "sys.exc_info()[0]"\r
-        self.check(b, a)\r
-\r
-    def test_1(self):\r
-        b = "sys.exc_value"\r
-        a = "sys.exc_info()[1]"\r
-        self.check(b, a)\r
-\r
-    def test_2(self):\r
-        b = "sys.exc_traceback"\r
-        a = "sys.exc_info()[2]"\r
-        self.check(b, a)\r
-\r
-    def test_3(self):\r
-        b = "sys.exc_type # Foo"\r
-        a = "sys.exc_info()[0] # Foo"\r
-        self.check(b, a)\r
-\r
-    def test_4(self):\r
-        b = "sys.  exc_type"\r
-        a = "sys.  exc_info()[0]"\r
-        self.check(b, a)\r
-\r
-    def test_5(self):\r
-        b = "sys  .exc_type"\r
-        a = "sys  .exc_info()[0]"\r
-        self.check(b, a)\r
-\r
-\r
-class Test_paren(FixerTestCase):\r
-    fixer = "paren"\r
-\r
-    def test_0(self):\r
-        b = """[i for i in 1, 2 ]"""\r
-        a = """[i for i in (1, 2) ]"""\r
-        self.check(b, a)\r
-\r
-    def test_1(self):\r
-        b = """[i for i in 1, 2, ]"""\r
-        a = """[i for i in (1, 2,) ]"""\r
-        self.check(b, a)\r
-\r
-    def test_2(self):\r
-        b = """[i for i  in     1, 2 ]"""\r
-        a = """[i for i  in     (1, 2) ]"""\r
-        self.check(b, a)\r
-\r
-    def test_3(self):\r
-        b = """[i for i in 1, 2 if i]"""\r
-        a = """[i for i in (1, 2) if i]"""\r
-        self.check(b, a)\r
-\r
-    def test_4(self):\r
-        b = """[i for i in 1,    2    ]"""\r
-        a = """[i for i in (1,    2)    ]"""\r
-        self.check(b, a)\r
-\r
-    def test_5(self):\r
-        b = """(i for i in 1, 2)"""\r
-        a = """(i for i in (1, 2))"""\r
-        self.check(b, a)\r
-\r
-    def test_6(self):\r
-        b = """(i for i in 1   ,2   if i)"""\r
-        a = """(i for i in (1   ,2)   if i)"""\r
-        self.check(b, a)\r
-\r
-    def test_unchanged_0(self):\r
-        s = """[i for i in (1, 2)]"""\r
-        self.unchanged(s)\r
-\r
-    def test_unchanged_1(self):\r
-        s = """[i for i in foo()]"""\r
-        self.unchanged(s)\r
-\r
-    def test_unchanged_2(self):\r
-        s = """[i for i in (1, 2) if nothing]"""\r
-        self.unchanged(s)\r
-\r
-    def test_unchanged_3(self):\r
-        s = """(i for i in (1, 2))"""\r
-        self.unchanged(s)\r
-\r
-    def test_unchanged_4(self):\r
-        s = """[i for i in m]"""\r
-        self.unchanged(s)\r
-\r
-class Test_metaclass(FixerTestCase):\r
-\r
-    fixer = 'metaclass'\r
-\r
-    def test_unchanged(self):\r
-        self.unchanged("class X(): pass")\r
-        self.unchanged("class X(object): pass")\r
-        self.unchanged("class X(object1, object2): pass")\r
-        self.unchanged("class X(object1, object2, object3): pass")\r
-        self.unchanged("class X(metaclass=Meta): pass")\r
-        self.unchanged("class X(b, arg=23, metclass=Meta): pass")\r
-        self.unchanged("class X(b, arg=23, metaclass=Meta, other=42): pass")\r
-\r
-        s = """\r
-        class X:\r
-            def __metaclass__(self): pass\r
-        """\r
-        self.unchanged(s)\r
-\r
-        s = """\r
-        class X:\r
-            a[23] = 74\r
-        """\r
-        self.unchanged(s)\r
-\r
-    def test_comments(self):\r
-        b = """\r
-        class X:\r
-            # hi\r
-            __metaclass__ = AppleMeta\r
-        """\r
-        a = """\r
-        class X(metaclass=AppleMeta):\r
-            # hi\r
-            pass\r
-        """\r
-        self.check(b, a)\r
-\r
-        b = """\r
-        class X:\r
-            __metaclass__ = Meta\r
-            # Bedtime!\r
-        """\r
-        a = """\r
-        class X(metaclass=Meta):\r
-            pass\r
-            # Bedtime!\r
-        """\r
-        self.check(b, a)\r
-\r
-    def test_meta(self):\r
-        # no-parent class, odd body\r
-        b = """\r
-        class X():\r
-            __metaclass__ = Q\r
-            pass\r
-        """\r
-        a = """\r
-        class X(metaclass=Q):\r
-            pass\r
-        """\r
-        self.check(b, a)\r
-\r
-        # one parent class, no body\r
-        b = """class X(object): __metaclass__ = Q"""\r
-        a = """class X(object, metaclass=Q): pass"""\r
-        self.check(b, a)\r
-\r
-\r
-        # one parent, simple body\r
-        b = """\r
-        class X(object):\r
-            __metaclass__ = Meta\r
-            bar = 7\r
-        """\r
-        a = """\r
-        class X(object, metaclass=Meta):\r
-            bar = 7\r
-        """\r
-        self.check(b, a)\r
-\r
-        b = """\r
-        class X:\r
-            __metaclass__ = Meta; x = 4; g = 23\r
-        """\r
-        a = """\r
-        class X(metaclass=Meta):\r
-            x = 4; g = 23\r
-        """\r
-        self.check(b, a)\r
-\r
-        # one parent, simple body, __metaclass__ last\r
-        b = """\r
-        class X(object):\r
-            bar = 7\r
-            __metaclass__ = Meta\r
-        """\r
-        a = """\r
-        class X(object, metaclass=Meta):\r
-            bar = 7\r
-        """\r
-        self.check(b, a)\r
-\r
-        # redefining __metaclass__\r
-        b = """\r
-        class X():\r
-            __metaclass__ = A\r
-            __metaclass__ = B\r
-            bar = 7\r
-        """\r
-        a = """\r
-        class X(metaclass=B):\r
-            bar = 7\r
-        """\r
-        self.check(b, a)\r
-\r
-        # multiple inheritance, simple body\r
-        b = """\r
-        class X(clsA, clsB):\r
-            __metaclass__ = Meta\r
-            bar = 7\r
-        """\r
-        a = """\r
-        class X(clsA, clsB, metaclass=Meta):\r
-            bar = 7\r
-        """\r
-        self.check(b, a)\r
-\r
-        # keywords in the class statement\r
-        b = """class m(a, arg=23): __metaclass__ = Meta"""\r
-        a = """class m(a, arg=23, metaclass=Meta): pass"""\r
-        self.check(b, a)\r
-\r
-        b = """\r
-        class X(expression(2 + 4)):\r
-            __metaclass__ = Meta\r
-        """\r
-        a = """\r
-        class X(expression(2 + 4), metaclass=Meta):\r
-            pass\r
-        """\r
-        self.check(b, a)\r
-\r
-        b = """\r
-        class X(expression(2 + 4), x**4):\r
-            __metaclass__ = Meta\r
-        """\r
-        a = """\r
-        class X(expression(2 + 4), x**4, metaclass=Meta):\r
-            pass\r
-        """\r
-        self.check(b, a)\r
-\r
-        b = """\r
-        class X:\r
-            __metaclass__ = Meta\r
-            save.py = 23\r
-        """\r
-        a = """\r
-        class X(metaclass=Meta):\r
-            save.py = 23\r
-        """\r
-        self.check(b, a)\r
-\r
-\r
-class Test_getcwdu(FixerTestCase):\r
-\r
-    fixer = 'getcwdu'\r
-\r
-    def test_basic(self):\r
-        b = """os.getcwdu"""\r
-        a = """os.getcwd"""\r
-        self.check(b, a)\r
-\r
-        b = """os.getcwdu()"""\r
-        a = """os.getcwd()"""\r
-        self.check(b, a)\r
-\r
-        b = """meth = os.getcwdu"""\r
-        a = """meth = os.getcwd"""\r
-        self.check(b, a)\r
-\r
-        b = """os.getcwdu(args)"""\r
-        a = """os.getcwd(args)"""\r
-        self.check(b, a)\r
-\r
-    def test_comment(self):\r
-        b = """os.getcwdu() # Foo"""\r
-        a = """os.getcwd() # Foo"""\r
-        self.check(b, a)\r
-\r
-    def test_unchanged(self):\r
-        s = """os.getcwd()"""\r
-        self.unchanged(s)\r
-\r
-        s = """getcwdu()"""\r
-        self.unchanged(s)\r
-\r
-        s = """os.getcwdb()"""\r
-        self.unchanged(s)\r
-\r
-    def test_indentation(self):\r
-        b = """\r
-            if 1:\r
-                os.getcwdu()\r
-            """\r
-        a = """\r
-            if 1:\r
-                os.getcwd()\r
-            """\r
-        self.check(b, a)\r
-\r
-    def test_multilation(self):\r
-        b = """os .getcwdu()"""\r
-        a = """os .getcwd()"""\r
-        self.check(b, a)\r
-\r
-        b = """os.  getcwdu"""\r
-        a = """os.  getcwd"""\r
-        self.check(b, a)\r
-\r
-        b = """os.getcwdu (  )"""\r
-        a = """os.getcwd (  )"""\r
-        self.check(b, a)\r
-\r
-\r
-class Test_operator(FixerTestCase):\r
-\r
-    fixer = "operator"\r
-\r
-    def test_operator_isCallable(self):\r
-        b = "operator.isCallable(x)"\r
-        a = "hasattr(x, '__call__')"\r
-        self.check(b, a)\r
-\r
-    def test_operator_sequenceIncludes(self):\r
-        b = "operator.sequenceIncludes(x, y)"\r
-        a = "operator.contains(x, y)"\r
-        self.check(b, a)\r
-\r
-        b = "operator .sequenceIncludes(x, y)"\r
-        a = "operator .contains(x, y)"\r
-        self.check(b, a)\r
-\r
-        b = "operator.  sequenceIncludes(x, y)"\r
-        a = "operator.  contains(x, y)"\r
-        self.check(b, a)\r
-\r
-    def test_operator_isSequenceType(self):\r
-        b = "operator.isSequenceType(x)"\r
-        a = "import collections\nisinstance(x, collections.Sequence)"\r
-        self.check(b, a)\r
-\r
-    def test_operator_isMappingType(self):\r
-        b = "operator.isMappingType(x)"\r
-        a = "import collections\nisinstance(x, collections.Mapping)"\r
-        self.check(b, a)\r
-\r
-    def test_operator_isNumberType(self):\r
-        b = "operator.isNumberType(x)"\r
-        a = "import numbers\nisinstance(x, numbers.Number)"\r
-        self.check(b, a)\r
-\r
-    def test_operator_repeat(self):\r
-        b = "operator.repeat(x, n)"\r
-        a = "operator.mul(x, n)"\r
-        self.check(b, a)\r
-\r
-        b = "operator .repeat(x, n)"\r
-        a = "operator .mul(x, n)"\r
-        self.check(b, a)\r
-\r
-        b = "operator.  repeat(x, n)"\r
-        a = "operator.  mul(x, n)"\r
-        self.check(b, a)\r
-\r
-    def test_operator_irepeat(self):\r
-        b = "operator.irepeat(x, n)"\r
-        a = "operator.imul(x, n)"\r
-        self.check(b, a)\r
-\r
-        b = "operator .irepeat(x, n)"\r
-        a = "operator .imul(x, n)"\r
-        self.check(b, a)\r
-\r
-        b = "operator.  irepeat(x, n)"\r
-        a = "operator.  imul(x, n)"\r
-        self.check(b, a)\r
-\r
-    def test_bare_isCallable(self):\r
-        s = "isCallable(x)"\r
-        t = "You should use 'hasattr(x, '__call__')' here."\r
-        self.warns_unchanged(s, t)\r
-\r
-    def test_bare_sequenceIncludes(self):\r
-        s = "sequenceIncludes(x, y)"\r
-        t = "You should use 'operator.contains(x, y)' here."\r
-        self.warns_unchanged(s, t)\r
-\r
-    def test_bare_operator_isSequenceType(self):\r
-        s = "isSequenceType(z)"\r
-        t = "You should use 'isinstance(z, collections.Sequence)' here."\r
-        self.warns_unchanged(s, t)\r
-\r
-    def test_bare_operator_isMappingType(self):\r
-        s = "isMappingType(x)"\r
-        t = "You should use 'isinstance(x, collections.Mapping)' here."\r
-        self.warns_unchanged(s, t)\r
-\r
-    def test_bare_operator_isNumberType(self):\r
-        s = "isNumberType(y)"\r
-        t = "You should use 'isinstance(y, numbers.Number)' here."\r
-        self.warns_unchanged(s, t)\r
-\r
-    def test_bare_operator_repeat(self):\r
-        s = "repeat(x, n)"\r
-        t = "You should use 'operator.mul(x, n)' here."\r
-        self.warns_unchanged(s, t)\r
-\r
-    def test_bare_operator_irepeat(self):\r
-        s = "irepeat(y, 187)"\r
-        t = "You should use 'operator.imul(y, 187)' here."\r
-        self.warns_unchanged(s, t)\r
-\r
-\r
-class Test_exitfunc(FixerTestCase):\r
-\r
-    fixer = "exitfunc"\r
-\r
-    def test_simple(self):\r
-        b = """\r
-            import sys\r
-            sys.exitfunc = my_atexit\r
-            """\r
-        a = """\r
-            import sys\r
-            import atexit\r
-            atexit.register(my_atexit)\r
-            """\r
-        self.check(b, a)\r
-\r
-    def test_names_import(self):\r
-        b = """\r
-            import sys, crumbs\r
-            sys.exitfunc = my_func\r
-            """\r
-        a = """\r
-            import sys, crumbs, atexit\r
-            atexit.register(my_func)\r
-            """\r
-        self.check(b, a)\r
-\r
-    def test_complex_expression(self):\r
-        b = """\r
-            import sys\r
-            sys.exitfunc = do(d)/a()+complex(f=23, g=23)*expression\r
-            """\r
-        a = """\r
-            import sys\r
-            import atexit\r
-            atexit.register(do(d)/a()+complex(f=23, g=23)*expression)\r
-            """\r
-        self.check(b, a)\r
-\r
-    def test_comments(self):\r
-        b = """\r
-            import sys # Foo\r
-            sys.exitfunc = f # Blah\r
-            """\r
-        a = """\r
-            import sys\r
-            import atexit # Foo\r
-            atexit.register(f) # Blah\r
-            """\r
-        self.check(b, a)\r
-\r
-        b = """\r
-            import apples, sys, crumbs, larry # Pleasant comments\r
-            sys.exitfunc = func\r
-            """\r
-        a = """\r
-            import apples, sys, crumbs, larry, atexit # Pleasant comments\r
-            atexit.register(func)\r
-            """\r
-        self.check(b, a)\r
-\r
-    def test_in_a_function(self):\r
-        b = """\r
-            import sys\r
-            def f():\r
-                sys.exitfunc = func\r
-            """\r
-        a = """\r
-            import sys\r
-            import atexit\r
-            def f():\r
-                atexit.register(func)\r
-             """\r
-        self.check(b, a)\r
-\r
-    def test_no_sys_import(self):\r
-        b = """sys.exitfunc = f"""\r
-        a = """atexit.register(f)"""\r
-        msg = ("Can't find sys import; Please add an atexit import at the "\r
-            "top of your file.")\r
-        self.warns(b, a, msg)\r
-\r
-\r
-    def test_unchanged(self):\r
-        s = """f(sys.exitfunc)"""\r
-        self.unchanged(s)\r