changeset 18180:c582a71457e5

check-code: disallow two-argument form of raise Using this old form makes any attempt to port to Python 3 harder, and the new syntax is supported in 2.4 already.
author Augie Fackler <raf@durin42.com>
date Tue, 01 Jan 2013 12:58:21 -0600
parents f614543733b6
children c7d258cd77e5
files contrib/check-code.py tests/test-check-code.t
diffstat 2 files changed, 13 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/contrib/check-code.py	Tue Jan 01 13:25:07 2013 -0600
+++ b/contrib/check-code.py	Tue Jan 01 12:58:21 2013 -0600
@@ -185,6 +185,8 @@
     (r'[^^+=*/!<>&| %-](\s=|=\s)[^= ]',
      "wrong whitespace around ="),
     (r'raise Exception', "don't raise generic exceptions"),
+    (r'raise [^,(]+, (\([^\)]+\)|[^,\(\)]+)$',
+     "don't use old-style two-argument raise, use Exception(message)"),
     (r' is\s+(not\s+)?["\'0-9-]', "object comparison with literal"),
     (r' [=!]=\s+(True|False|None)',
      "comparison with singleton, use 'is' or 'is not' instead"),
--- a/tests/test-check-code.t	Tue Jan 01 13:25:07 2013 -0600
+++ b/tests/test-check-code.t	Tue Jan 01 12:58:21 2013 -0600
@@ -159,3 +159,14 @@
    > except:
    warning: naked except clause
   [1]
+
+  $ cat > raise-format.py <<EOF
+  > raise SomeException, message
+  > # this next line is okay
+  > raise SomeException(arg1, arg2)
+  > EOF
+  $ "$check_code" raise-format.py
+  raise-format.py:1:
+   > raise SomeException, message
+   don't use old-style two-argument raise, use Exception(message)
+  [1]