From fabd0fa801942f343a1b9c0d0e09e1f787e13c3c Mon Sep 17 00:00:00 2001 From: Tarek Ziade Date: Tue, 21 Feb 2012 15:46:05 +0100 Subject: [PATCH] more weird edge cases py2/3 --- flake8/pyflakes.py | 6 +++++- flake8/tests/test_flakes.py | 15 +++++++++++---- 2 files changed, 16 insertions(+), 5 deletions(-) diff --git a/flake8/pyflakes.py b/flake8/pyflakes.py index 13c579e..e80968d 100644 --- a/flake8/pyflakes.py +++ b/flake8/pyflakes.py @@ -334,7 +334,11 @@ class Checker(object): def EXCEPTHANDLER(self, node): if node.name is not None: - self.addBinding(node.lineno, Assignment(node.name, node)) + if isinstance(node.name, str): + name = node.name + else: + name = node.name.id + self.addBinding(node.lineno, Assignment(name, node)) def runException(): for stmt in node.body: diff --git a/flake8/tests/test_flakes.py b/flake8/tests/test_flakes.py index cb99546..da10034 100644 --- a/flake8/tests/test_flakes.py +++ b/flake8/tests/test_flakes.py @@ -13,18 +13,25 @@ code2 = """ try: pass except ValueError: - print(err) + print("err") try: pass except ValueError: - print(err) + print("err") +""" + +code3 = """ +try: + pass +except (ImportError, ValueError): + print("err") """ class TestFlake(TestCase): def test_exception(self): - for c in (code, code2): + for c in (code, code2, code3): warnings = check(code) - self.assertEqual(warnings, 0) + self.assertEqual(warnings, 0, code)