From 65ee45c64133e6e451bf93f4960dcb1ab0781c13 Mon Sep 17 00:00:00 2001
From: Joe Gordon <jogo@cloudscaling.com>
Date: Tue, 4 Dec 2012 11:52:23 +0200
Subject: [PATCH] Add pyflakes option to tox

* Uses pyflakes wrapper to ignore gettext errors
* Based on: https://bugs.launchpad.net/pyflakes/+bug/844592

Change-Id: I4fd947176f5258f89f517acf5dda2ded4a2da15e
---
 tools/flakes.py | 22 ++++++++++++++++++++++
 tox.ini         |  4 ++++
 2 files changed, 26 insertions(+)
 create mode 100644 tools/flakes.py

diff --git a/tools/flakes.py b/tools/flakes.py
new file mode 100644
index 000000000000..7ebe10cec778
--- /dev/null
+++ b/tools/flakes.py
@@ -0,0 +1,22 @@
+import __builtin__
+import os
+import sys
+
+from pyflakes.scripts.pyflakes import main
+
+"""
+ wrapper for pyflakes to ignore gettext based warning:
+     "undefined name '_'"
+
+ From https://bugs.launchpad.net/pyflakes/+bug/844592
+"""
+
+names = os.environ.get('PYFLAKES_BUILTINS', '_')
+names = [x.strip() for x in names.split(',')]
+for x in names:
+    if not hasattr(__builtin__, x):
+        setattr(__builtin__, x, True)
+
+del names, os, __builtin__
+
+sys.exit(main())
diff --git a/tox.ini b/tox.ini
index 16959d621e26..ebbaf2173d31 100644
--- a/tox.ini
+++ b/tox.ini
@@ -35,6 +35,10 @@ deps = -r{toxinidir}/tools/pip-requires
        pylint==0.26.0
 commands = bash tools/lintstack.sh
 
+[testenv:pyflakes]
+deps = pyflakes
+commands = python tools/flakes.py nova
+
 [testenv:cover]
 setenv = NOSE_WITH_COVERAGE=1