This is an automated email from the git hooks/post-receive script. bdrung pushed a commit to branch master in repository devscripts.
commit 52b2db9ad08c74fd0b733611da4472cfe3b85594 Author: Benjamin Drung <bdr...@debian.org> Date: Sun Feb 4 21:12:46 2018 +0100 Convert flake8 test into a unittest Signed-off-by: Benjamin Drung <bdr...@debian.org> --- scripts/Makefile | 5 +--- scripts/devscripts/test/test_flake8.py | 53 ++++++++++++++++++++++++++++++++++ 2 files changed, 54 insertions(+), 4 deletions(-) diff --git a/scripts/Makefile b/scripts/Makefile index e25f9e6..ab2b59e 100644 --- a/scripts/Makefile +++ b/scripts/Makefile @@ -25,8 +25,6 @@ BC_BUILD_DIR:=bash_completion COMPLETION = $(patsubst %.bash_completion,$(BC_BUILD_DIR)/%,$(COMPL_FILES)) COMPL_DIR := $(shell pkg-config --variable=completionsdir bash-completion) PKGNAMES:=wnpp-alert wnpp-check mk-build-deps rmadison mass-bug debsnap dd-list build-rdeps who-uploads transition-check getbuildlog dcontrol grep-excuses rc-alert whodepends dget pts-subscribe pts-unsubscribe debcheckout -# also update the list in setup.py -PYTHON3_SCRIPTS:=debdiff-apply sadt suspicious-source wrap-and-sort reproducible-check GEN_MAN1S += debrepro.1 devscripts.1 ltnu.1 mk-origtargz.1 uscan.1 reproducible-check.1 @@ -74,8 +72,7 @@ test_pl: $(PL_CHECKS) %.pl_check: % perl -I ../lib -c $< -test_py: $(PYTHON3_SCRIPTS) $(VERSION_FILE) - python3 -m flake8 --max-line-length=99 $(PYTHON3_SCRIPTS) +test_py: $(VERSION_FILE) $(foreach python,$(shell py3versions -r ../debian/control),$(python) setup.py test$(\n)) # There is a slight chance this gets called twice, once here from here and once diff --git a/scripts/devscripts/test/test_flake8.py b/scripts/devscripts/test/test_flake8.py new file mode 100644 index 0000000..09387c7 --- /dev/null +++ b/scripts/devscripts/test/test_flake8.py @@ -0,0 +1,53 @@ +# Copyright (C) 2017-2018, Benjamin Drung <bdr...@debian.org> +# +# Permission to use, copy, modify, and/or distribute this software for any +# purpose with or without fee is hereby granted, provided that the above +# copyright notice and this permission notice appear in all copies. +# +# THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES +# WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF +# MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR +# ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +# WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN +# ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF +# OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + +"""test_flake8.py - Run flake8 check""" + +import subprocess +import sys +import unittest + +from . import get_source_files, unittest_verbosity + + +class Flake8TestCase(unittest.TestCase): + """ + This unittest class provides a test that runs the flake8 code + checker (which combines pycodestyle and pyflakes) on the Python + source code. The list of source files is provided by the + get_source_files() function. + """ + + def test_flake8(self): + """Test: Run flake8 on Python source code""" + with open("/proc/self/cmdline", "r") as cmdline_file: + python_binary = cmdline_file.read().split("\0")[0] + cmd = [python_binary, "-m", "flake8", "--max-line-length=99"] + get_source_files() + if unittest_verbosity() >= 2: + sys.stderr.write("Running following command:\n{}\n".format(" ".join(cmd))) + process = subprocess.Popen(cmd, stdout=subprocess.PIPE, + stderr=subprocess.PIPE, close_fds=True) + + out, err = process.communicate() + if process.returncode != 0: + msgs = [] + if err: + msgs.append("flake8 exited with code {} and has unexpected output on stderr:\n{}" + .format(process.returncode, err.decode().rstrip())) + if out: + msgs.append("flake8 found issues:\n{}".format(out.decode().rstrip())) + if not msgs: + msgs.append("flake8 exited with code {} and has no output on stdout or stderr." + .format(process.returncode)) + self.fail("\n".join(msgs)) -- Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/collab-maint/devscripts.git _______________________________________________ devscripts-devel mailing list devscripts-devel@lists.alioth.debian.org http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/devscripts-devel