summaryrefslogtreecommitdiffstats
path: root/Lib/lib2to3/tests
diff options
context:
space:
mode:
Diffstat (limited to 'Lib/lib2to3/tests')
-rw-r--r--Lib/lib2to3/tests/data/README3
-rwxr-xr-xLib/lib2to3/tests/test_fixers.py128
-rwxr-xr-xLib/lib2to3/tests/test_pytree.py28
-rw-r--r--Lib/lib2to3/tests/test_refactor.py7
4 files changed, 144 insertions, 22 deletions
diff --git a/Lib/lib2to3/tests/data/README b/Lib/lib2to3/tests/data/README
index c48c608..7aa47e4 100644
--- a/Lib/lib2to3/tests/data/README
+++ b/Lib/lib2to3/tests/data/README
@@ -1,5 +1,6 @@
-Files in this directory:
+In this directory:
- py2_test_grammar.py -- test file that exercises most/all of Python 2.x's grammar.
- py3_test_grammar.py -- test file that exercises most/all of Python 3.x's grammar.
- infinite_recursion.py -- test file that causes lib2to3's faster recursive pattern matching
scheme to fail, but passes when lib2to3 falls back to iterative pattern matching.
+- fixes/ -- for use by test_refactor.py
diff --git a/Lib/lib2to3/tests/test_fixers.py b/Lib/lib2to3/tests/test_fixers.py
index 705b04e..76243bf 100755
--- a/Lib/lib2to3/tests/test_fixers.py
+++ b/Lib/lib2to3/tests/test_fixers.py
@@ -3385,6 +3385,134 @@ class Test_import(FixerTestCase):
"""
self.check_both(b, a)
+
+class Test_set_literal(FixerTestCase):
+
+ fixer = "set_literal"
+
+ def test_basic(self):
+ b = """set([1, 2, 3])"""
+ a = """{1, 2, 3}"""
+ self.check(b, a)
+
+ b = """set((1, 2, 3))"""
+ a = """{1, 2, 3}"""
+ self.check(b, a)
+
+ b = """set((1,))"""
+ a = """{1}"""
+ self.check(b, a)
+
+ b = """set([1])"""
+ self.check(b, a)
+
+ b = """set((a, b))"""
+ a = """{a, b}"""
+ self.check(b, a)
+
+ b = """set([a, b])"""
+ self.check(b, a)
+
+ b = """set((a*234, f(args=23)))"""
+ a = """{a*234, f(args=23)}"""
+ self.check(b, a)
+
+ b = """set([a*23, f(23)])"""
+ a = """{a*23, f(23)}"""
+ self.check(b, a)
+
+ b = """set([a-234**23])"""
+ a = """{a-234**23}"""
+ self.check(b, a)
+
+ def test_listcomps(self):
+ b = """set([x for x in y])"""
+ a = """{x for x in y}"""
+ self.check(b, a)
+
+ b = """set([x for x in y if x == m])"""
+ a = """{x for x in y if x == m}"""
+ self.check(b, a)
+
+ b = """set([x for x in y for a in b])"""
+ a = """{x for x in y for a in b}"""
+ self.check(b, a)
+
+ b = """set([f(x) - 23 for x in y])"""
+ a = """{f(x) - 23 for x in y}"""
+ self.check(b, a)
+
+ def test_whitespace(self):
+ b = """set( [1, 2])"""
+ a = """{1, 2}"""
+ self.check(b, a)
+
+ b = """set([1 , 2])"""
+ a = """{1 , 2}"""
+ self.check(b, a)
+
+ b = """set([ 1 ])"""
+ a = """{ 1 }"""
+ self.check(b, a)
+
+ b = """set( [1] )"""
+ a = """{1}"""
+ self.check(b, a)
+
+ b = """set([ 1, 2 ])"""
+ a = """{ 1, 2 }"""
+ self.check(b, a)
+
+ b = """set([x for x in y ])"""
+ a = """{x for x in y }"""
+ self.check(b, a)
+
+ b = """set(
+ [1, 2]
+ )
+ """
+ a = """{1, 2}\n"""
+ self.check(b, a)
+
+ def test_comments(self):
+ b = """set((1, 2)) # Hi"""
+ a = """{1, 2} # Hi"""
+ self.check(b, a)
+
+ # This isn't optimal behavior, but the fixer is optional.
+ b = """
+ # Foo
+ set( # Bar
+ (1, 2)
+ )
+ """
+ a = """
+ # Foo
+ {1, 2}
+ """
+ self.check(b, a)
+
+ def test_unchanged(self):
+ s = """set()"""
+ self.unchanged(s)
+
+ s = """set(a)"""
+ self.unchanged(s)
+
+ s = """set(a, b, c)"""
+ self.unchanged(s)
+
+ # Don't transform generators because they might have to be lazy.
+ s = """set(x for x in y)"""
+ self.unchanged(s)
+
+ s = """set(x for x in y if z)"""
+ self.unchanged(s)
+
+ s = """set(a*823-23**2 + f(23))"""
+ self.unchanged(s)
+
+
class Test_sys_exc(FixerTestCase):
fixer = "sys_exc"
diff --git a/Lib/lib2to3/tests/test_pytree.py b/Lib/lib2to3/tests/test_pytree.py
index 57c8a82..61c592a 100755
--- a/Lib/lib2to3/tests/test_pytree.py
+++ b/Lib/lib2to3/tests/test_pytree.py
@@ -353,29 +353,29 @@ class TestPatterns(support.TestCase):
# Build a pattern matching a leaf
pl = pytree.LeafPattern(100, "foo", name="pl")
r = {}
- self.assertEqual(pl.match(root, results=r), False)
+ self.assertFalse(pl.match(root, results=r))
self.assertEqual(r, {})
- self.assertEqual(pl.match(n1, results=r), False)
+ self.assertFalse(pl.match(n1, results=r))
self.assertEqual(r, {})
- self.assertEqual(pl.match(n2, results=r), False)
+ self.assertFalse(pl.match(n2, results=r))
self.assertEqual(r, {})
- self.assertEqual(pl.match(l1, results=r), True)
+ self.assertTrue(pl.match(l1, results=r))
self.assertEqual(r, {"pl": l1})
r = {}
- self.assertEqual(pl.match(l2, results=r), False)
+ self.assertFalse(pl.match(l2, results=r))
self.assertEqual(r, {})
# Build a pattern matching a node
pn = pytree.NodePattern(1000, [pl], name="pn")
- self.assertEqual(pn.match(root, results=r), False)
+ self.assertFalse(pn.match(root, results=r))
self.assertEqual(r, {})
- self.assertEqual(pn.match(n1, results=r), False)
+ self.assertFalse(pn.match(n1, results=r))
self.assertEqual(r, {})
- self.assertEqual(pn.match(n2, results=r), True)
+ self.assertTrue(pn.match(n2, results=r))
self.assertEqual(r, {"pn": n2, "pl": l3})
r = {}
- self.assertEqual(pn.match(l1, results=r), False)
+ self.assertFalse(pn.match(l1, results=r))
self.assertEqual(r, {})
- self.assertEqual(pn.match(l2, results=r), False)
+ self.assertFalse(pn.match(l2, results=r))
self.assertEqual(r, {})
def testWildcardPatterns(self):
@@ -391,11 +391,11 @@ class TestPatterns(support.TestCase):
pn = pytree.NodePattern(1000, [pl], name="pn")
pw = pytree.WildcardPattern([[pn], [pl, pl]], name="pw")
r = {}
- self.assertEqual(pw.match_seq([root], r), False)
+ self.assertFalse(pw.match_seq([root], r))
self.assertEqual(r, {})
- self.assertEqual(pw.match_seq([n1], r), False)
+ self.assertFalse(pw.match_seq([n1], r))
self.assertEqual(r, {})
- self.assertEqual(pw.match_seq([n2], r), True)
+ self.assertTrue(pw.match_seq([n2], r))
# These are easier to debug
self.assertEqual(sorted(r.keys()), ["pl", "pn", "pw"])
self.assertEqual(r["pl"], l1)
@@ -404,7 +404,7 @@ class TestPatterns(support.TestCase):
# But this is equivalent
self.assertEqual(r, {"pl": l1, "pn": n2, "pw": [n2]})
r = {}
- self.assertEqual(pw.match_seq([l1, l3], r), True)
+ self.assertTrue(pw.match_seq([l1, l3], r))
self.assertEqual(r, {"pl": l3, "pw": [l1, l3]})
self.assert_(r["pl"] is l3)
r = {}
diff --git a/Lib/lib2to3/tests/test_refactor.py b/Lib/lib2to3/tests/test_refactor.py
index fac8f80..1e15a1a 100644
--- a/Lib/lib2to3/tests/test_refactor.py
+++ b/Lib/lib2to3/tests/test_refactor.py
@@ -123,7 +123,6 @@ class TestRefactoringTool(unittest.TestCase):
def test_refactor_file(self):
test_file = os.path.join(FIXER_DIR, "parrot_example.py")
- backup = test_file + ".bak"
old_contents = open(test_file, "r").read()
rt = self.rt()
@@ -133,14 +132,8 @@ class TestRefactoringTool(unittest.TestCase):
rt.refactor_file(test_file, True)
try:
self.assertNotEqual(old_contents, open(test_file, "r").read())
- self.assertTrue(os.path.exists(backup))
- self.assertEqual(old_contents, open(backup, "r").read())
finally:
open(test_file, "w").write(old_contents)
- try:
- os.unlink(backup)
- except OSError:
- pass
def test_refactor_docstring(self):
rt = self.rt()