Commit eea6e8a3 authored by gabrieldemarmiesse's avatar gabrieldemarmiesse Committed by gabrieldemarmiesse

Added the pep8 test to travis. All the warnings are disabled and only a few...

Added the pep8 test to travis. All the warnings are disabled and only a few error checks are enabled.
parent cd6113fc
...@@ -44,6 +44,10 @@ env: ...@@ -44,6 +44,10 @@ env:
matrix: matrix:
include: include:
- python: 3.7
dist: xenial # Required for Python 3.7
sudo: required # travis-ci/travis-ci#9069
env: TEST_CODE_STYLE=1
- python: 3.7 - python: 3.7
dist: xenial # Required for Python 3.7 dist: xenial # Required for Python 3.7
sudo: required # travis-ci/travis-ci#9069 sudo: required # travis-ci/travis-ci#9069
...@@ -144,9 +148,14 @@ install: ...@@ -144,9 +148,14 @@ install:
before_script: ccache -s || true before_script: ccache -s || true
script: script:
- if [ "$TEST_CODE_STYLE" = "1" ]; then
STYLE_ARGS="--no-unit --no-doctest --no-file --no-pyregr --no-examples";
else
STYLE_ARGS=--no-code-style;
fi
- PYTHON_DBG="python$( python -c 'import sys; print("%d.%d" % sys.version_info[:2])' )-dbg" - PYTHON_DBG="python$( python -c 'import sys; print("%d.%d" % sys.version_info[:2])' )-dbg"
- if $PYTHON_DBG -V >&2; then CFLAGS="-O0 -ggdb" $PYTHON_DBG runtests.py -vv Debugger --backends=$BACKEND; fi - if $PYTHON_DBG -V >&2; then CFLAGS="-O0 -ggdb" $PYTHON_DBG runtests.py -vv $STYLE_ARGS Debugger --backends=$BACKEND; fi
- if [ "$BACKEND" = "cpp" -a -n "${TRAVIS_PYTHON_VERSION##2.6*}" ]; then pip install pythran; fi - if [ "$BACKEND" = "cpp" -a -n "${TRAVIS_PYTHON_VERSION##2.6*}" ]; then pip install pythran; fi
- if [ "$BACKEND" = "c" -a -n "${TRAVIS_PYTHON_VERSION##2*}" ]; then pip install mypy; fi - if [ "$BACKEND" = "c" -a -n "${TRAVIS_PYTHON_VERSION##2*}" ]; then pip install mypy; fi
- CFLAGS="-O2 -ggdb -Wall -Wextra $(python -c 'import sys; print("-fno-strict-aliasing" if sys.version_info[0] == 2 else "")')" python setup.py build_ext -i - CFLAGS="-O2 -ggdb -Wall -Wextra $(python -c 'import sys; print("-fno-strict-aliasing" if sys.version_info[0] == 2 else "")')" python setup.py build_ext -i
- CFLAGS="-O0 -ggdb -Wall -Wextra" python runtests.py -vv -x Debugger --backends=$BACKEND -j7 - CFLAGS="-O0 -ggdb -Wall -Wextra" python runtests.py -vv $STYLE_ARGS -x Debugger --backends=$BACKEND -j7
...@@ -230,7 +230,7 @@ class DistutilsInfo(object): ...@@ -230,7 +230,7 @@ class DistutilsInfo(object):
break break
line = line[1:].lstrip() line = line[1:].lstrip()
kind = next((k for k in ("distutils:","cython:") if line.startswith(k)), None) kind = next((k for k in ("distutils:","cython:") if line.startswith(k)), None)
if not kind is None: if kind is not None:
key, _, value = [s.strip() for s in line[len(kind):].partition('=')] key, _, value = [s.strip() for s in line[len(kind):].partition('=')]
type = distutils_settings.get(key, None) type = distutils_settings.get(key, None)
if line.startswith("cython:") and type is None: continue if line.startswith("cython:") and type is None: continue
......
...@@ -113,7 +113,7 @@ class ModuleNode(Nodes.Node, Nodes.BlockNode): ...@@ -113,7 +113,7 @@ class ModuleNode(Nodes.Node, Nodes.BlockNode):
env.doc = self.doc = None env.doc = self.doc = None
elif Options.embed_pos_in_docstring: elif Options.embed_pos_in_docstring:
env.doc = EncodedString(u'File: %s (starting at line %s)' % Nodes.relative_position(self.pos)) env.doc = EncodedString(u'File: %s (starting at line %s)' % Nodes.relative_position(self.pos))
if not self.doc is None: if self.doc is not None:
env.doc = EncodedString(env.doc + u'\n' + self.doc) env.doc = EncodedString(env.doc + u'\n' + self.doc)
env.doc.encoding = self.doc.encoding env.doc.encoding = self.doc.encoding
else: else:
......
...@@ -16,7 +16,7 @@ def run_tests(N): ...@@ -16,7 +16,7 @@ def run_tests(N):
print(func.__name__) print(func.__name__)
for type in ['int', 'unsigned int', 'long long', 'unsigned long long', 'object']: for type in ['int', 'unsigned int', 'long long', 'unsigned long long', 'object']:
if func == most_orthogonal: if func == most_orthogonal:
if type == 'object' or np == None: if type == 'object' or np is None:
continue continue
type_map = {'int': 'int32', 'unsigned int': 'uint32', 'long long': 'int64', 'unsigned long long': 'uint64'} type_map = {'int': 'int32', 'unsigned int': 'uint32', 'long long': 'int64', 'unsigned long long': 'uint64'}
shape = N, 3 shape = N, 3
......
...@@ -1446,6 +1446,22 @@ class CythonPyregrTestCase(CythonRunTestCase): ...@@ -1446,6 +1446,22 @@ class CythonPyregrTestCase(CythonRunTestCase):
run_forked_test(result, run_test, self.shortDescription(), self.fork) run_forked_test(result, run_test, self.shortDescription(), self.fork)
class TestCodeFormat(unittest.TestCase):
def __init__(self, cython_dir):
self.cython_dir = cython_dir
unittest.TestCase.__init__(self)
def runTest(self):
import pycodestyle
config_file = os.path.join(self.cython_dir, "tox.ini")
paths = glob.glob(os.path.join(self.cython_dir, "**/*.py"), recursive=True)
style = pycodestyle.StyleGuide(config_file=config_file)
print("") # Fix the first line of the report.
result = style.check_files(paths)
self.assertEqual(result.total_errors, 0, "Found code style errors.")
include_debugger = IS_CPYTHON include_debugger = IS_CPYTHON
...@@ -1868,6 +1884,9 @@ def main(): ...@@ -1868,6 +1884,9 @@ def main():
parser.add_option("--no-examples", dest="examples", parser.add_option("--no-examples", dest="examples",
action="store_false", default=True, action="store_false", default=True,
help="Do not run the documentation tests in the examples directory.") help="Do not run the documentation tests in the examples directory.")
parser.add_option("--no-code-style", dest="code_style",
action="store_false", default=True,
help="Do not run the code style (PEP8) checks.")
parser.add_option("--cython-only", dest="cython_only", parser.add_option("--cython-only", dest="cython_only",
action="store_true", default=False, action="store_true", default=False,
help="only compile pyx to c, do not run C compiler or run the tests") help="only compile pyx to c, do not run C compiler or run the tests")
...@@ -2214,6 +2233,9 @@ def runtests(options, cmd_args, coverage=None): ...@@ -2214,6 +2233,9 @@ def runtests(options, cmd_args, coverage=None):
sys.stderr.write("Including CPython regression tests in %s\n" % sys_pyregr_dir) sys.stderr.write("Including CPython regression tests in %s\n" % sys_pyregr_dir)
test_suite.addTest(filetests.handle_directory(sys_pyregr_dir, 'pyregr')) test_suite.addTest(filetests.handle_directory(sys_pyregr_dir, 'pyregr'))
if options.code_style and options.shard_num <= 0:
test_suite.addTest(TestCodeFormat(options.cython_dir))
if xml_output_dir: if xml_output_dir:
from Cython.Tests.xmlrunner import XMLTestRunner from Cython.Tests.xmlrunner import XMLTestRunner
if not os.path.exists(xml_output_dir): if not os.path.exists(xml_output_dir):
......
...@@ -10,3 +10,9 @@ envlist = py26, py27, py32, py33, py34, pypy ...@@ -10,3 +10,9 @@ envlist = py26, py27, py32, py33, py34, pypy
setenv = CFLAGS=-O0 -ggdb setenv = CFLAGS=-O0 -ggdb
commands = commands =
{envpython} runtests.py -vv {envpython} runtests.py -vv
[pycodestyle]
ignore = W, E
select = E711, E714
max-line-length = 300
format = pylint
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment