diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 9e9549ed9..cae90a428 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -34,3 +34,8 @@ repos: language: python additional_dependencies: [pygments, restructuredtext_lint] python_version: python3.6 + - id: rst-backticks + name: rst ``code`` is two backticks + entry: ' `[^`]+[^_]`([^_]|$)' + language: pygrep + types: [rst] diff --git a/.travis.yml b/.travis.yml index f2921e118..28393a0b7 100644 --- a/.travis.yml +++ b/.travis.yml @@ -3,7 +3,8 @@ language: python stages: - linting - test -- deploy +- name: deploy + if: repo = pytest-dev/pytest AND tag IS present python: - '3.6' install: diff --git a/CHANGELOG.rst b/CHANGELOG.rst index 21a090414..0c3bb2476 100644 --- a/CHANGELOG.rst +++ b/CHANGELOG.rst @@ -8,6 +8,52 @@ .. towncrier release notes start +Pytest 3.6.3 (2018-07-04) +========================= + +Bug Fixes +--------- + +- Fix ``ImportWarning`` triggered by explicit relative imports in + assertion-rewritten package modules. (`#3061 + `_) + +- Fix error in ``pytest.approx`` when dealing with 0-dimension numpy + arrays. (`#3593 `_) + +- No longer raise ``ValueError`` when using the ``get_marker`` API. (`#3605 + `_) + +- Fix problem where log messages with non-ascii characters would not + appear in the output log file. + (`#3630 `_) + +- No longer raise ``AttributeError`` when legacy marks can't be stored in + functions. (`#3631 `_) + + +Improved Documentation +---------------------- + +- The description above the example for ``@pytest.mark.skipif`` now better + matches the code. (`#3611 + `_) + + +Trivial/Internal Changes +------------------------ + +- Internal refactoring: removed unused ``CallSpec2tox ._globalid_args`` + attribute and ``metafunc`` parameter from ``CallSpec2.copy()``. (`#3598 + `_) + +- Silence usage of ``reduce`` warning in Python 2 (`#3609 + `_) + +- Fix usage of ``attr.ib`` deprecated ``convert`` parameter. (`#3653 + `_) + + Pytest 3.6.2 (2018-06-20) ========================= @@ -26,7 +72,7 @@ Bug Fixes raises an exception. (`#3569 `_) -- Fix encoding error with `print` statements in doctests (`#3583 +- Fix encoding error with ``print`` statements in doctests (`#3583 `_) @@ -299,7 +345,7 @@ Features ``pytest_runtest_logfinish`` hooks when live logs are enabled. (`#3189 `_) -- Passing `--log-cli-level` in the command-line now automatically activates +- Passing ``--log-cli-level`` in the command-line now automatically activates live logging. (`#3190 `_) - Add command line option ``--deselect`` to allow deselection of individual @@ -651,8 +697,8 @@ Trivial/Internal Changes - Code cleanup. (`#3015 `_, `#3021 `_) -- Clean up code by replacing imports and references of `_ast` to `ast`. (`#3018 - `_) +- Clean up code by replacing imports and references of ``_ast`` to ``ast``. + (`#3018 `_) Pytest 3.3.1 (2017-12-05) @@ -980,7 +1026,7 @@ Pytest 3.2.2 (2017-09-06) Bug Fixes --------- -- Calling the deprecated `request.getfuncargvalue()` now shows the source of +- Calling the deprecated ``request.getfuncargvalue()`` now shows the source of the call. (`#2681 `_) - Allow tests declared as ``@staticmethod`` to use fixtures. (`#2699 @@ -1002,10 +1048,10 @@ Improved Documentation ``pytest.mark.MARKER_NAME.__call__`` (`#2604 `_) -- In one of the simple examples, use `pytest_collection_modifyitems()` to skip +- In one of the simple examples, use ``pytest_collection_modifyitems()`` to skip tests based on a command-line option, allowing its sharing while preventing a - user error when acessing `pytest.config` before the argument parsing. (`#2653 - `_) + user error when acessing ``pytest.config`` before the argument parsing. + (`#2653 `_) Trivial/Internal Changes @@ -1083,7 +1129,7 @@ Features from parent classes or modules. (`#2516 `_) -- Collection ignores local virtualenvs by default; `--collect-in-virtualenv` +- Collection ignores local virtualenvs by default; ``--collect-in-virtualenv`` overrides this behavior. (`#2518 `_) diff --git a/HOWTORELEASE.rst b/HOWTORELEASE.rst index 97bddf720..b5e852d3b 100644 --- a/HOWTORELEASE.rst +++ b/HOWTORELEASE.rst @@ -10,10 +10,6 @@ taking a lot of time to make a new one. pytest releases must be prepared on **Linux** because the docs and examples expect to be executed in that platform. -#. Install development dependencies in a virtual environment with:: - - pip3 install -U -r tasks/requirements.txt - #. Create a branch ``release-X.Y.Z`` with the version for the release. * **patch releases**: from the latest ``master``; @@ -22,9 +18,19 @@ taking a lot of time to make a new one. Ensure your are in a clean work tree. -#. Generate docs, changelog, announcements and a **local** tag:: +#. Install development dependencies in a virtual environment with:: + + $ pip3 install -U -r tasks/requirements.txt + +#. Generate docs, changelog, announcements, and a **local** tag:: + + $ invoke generate.pre-release + +#. Execute pre-commit on all files to ensure the docs are conformant and commit your results:: + + $ pre-commit run --all-files + $ git commit -am "Fix files with pre-commit" - invoke generate.pre-release #. Open a PR for this branch targeting ``master``. diff --git a/README.rst b/README.rst index 564ffff6c..97b21898e 100644 --- a/README.rst +++ b/README.rst @@ -3,6 +3,7 @@ :align: center :alt: pytest + ------ .. image:: https://img.shields.io/pypi/v/pytest.svg @@ -109,7 +110,7 @@ Consult the `Changelog `__ page License ------- -Copyright Holger Krekel and others, 2004-2017. +Copyright Holger Krekel and others, 2004-2018. Distributed under the terms of the `MIT`_ license, pytest is free and open source software. diff --git a/changelog/2319.trivial.rst b/changelog/2319.trivial.rst new file mode 100644 index 000000000..a69ec1345 --- /dev/null +++ b/changelog/2319.trivial.rst @@ -0,0 +1 @@ +Remove obsolete ``__future__`` imports. diff --git a/changelog/3061.bugfix.rst b/changelog/3061.bugfix.rst deleted file mode 100644 index 1bdd1064e..000000000 --- a/changelog/3061.bugfix.rst +++ /dev/null @@ -1 +0,0 @@ -Fix ``ImportWarning`` triggered by explicit relative imports in assertion-rewritten package modules. diff --git a/changelog/3593.bugfix.rst b/changelog/3593.bugfix.rst deleted file mode 100644 index 37aa30577..000000000 --- a/changelog/3593.bugfix.rst +++ /dev/null @@ -1,5 +0,0 @@ -If the user pass as a expected value a numpy array created like -numpy.array(5); it will creates an array with one element without shape, -when used with approx it will raise an error for the `repr` -'TypeError: iteration over a 0-d array'. With this PR pytest will iterate -properly in the numpy array even with 0 dimension. diff --git a/changelog/3598.trivial.rst b/changelog/3598.trivial.rst deleted file mode 100644 index fd80f58cd..000000000 --- a/changelog/3598.trivial.rst +++ /dev/null @@ -1 +0,0 @@ -Internal refactoring: removed unused ``CallSpec2tox ._globalid_args`` attribute and ``metafunc`` parameter from ``CallSpec2.copy()``. diff --git a/changelog/3605.bugfix.rst b/changelog/3605.bugfix.rst deleted file mode 100644 index 58a294ecb..000000000 --- a/changelog/3605.bugfix.rst +++ /dev/null @@ -1 +0,0 @@ -no longer ValueError when using the ``get_marker`` api. diff --git a/changelog/3609.trivial.rst b/changelog/3609.trivial.rst deleted file mode 100644 index 96e720d92..000000000 --- a/changelog/3609.trivial.rst +++ /dev/null @@ -1 +0,0 @@ -Silence usage of ``reduce`` warning in python 2 diff --git a/changelog/3611.doc.rst b/changelog/3611.doc.rst deleted file mode 100644 index fe19cc025..000000000 --- a/changelog/3611.doc.rst +++ /dev/null @@ -1 +0,0 @@ -The description above the example for ``@pytest.mark.skipif`` now better matches the code. diff --git a/changelog/3630.bugfix.rst b/changelog/3630.bugfix.rst deleted file mode 100644 index 505bcb8fd..000000000 --- a/changelog/3630.bugfix.rst +++ /dev/null @@ -1 +0,0 @@ -Log messages with unicode characters would not appear in the output log file. diff --git a/changelog/3631.bugfix.rst b/changelog/3631.bugfix.rst deleted file mode 100644 index 261c41ccd..000000000 --- a/changelog/3631.bugfix.rst +++ /dev/null @@ -1 +0,0 @@ -No longer raise AttributeError when legacy marks can't be stored. diff --git a/changelog/742.bugfix.rst b/changelog/742.bugfix.rst new file mode 100644 index 000000000..51dfce972 --- /dev/null +++ b/changelog/742.bugfix.rst @@ -0,0 +1 @@ +Invoke pytest using ``-mpytest`` so ``sys.path`` does not get polluted by packages installed in ``site-packages``. diff --git a/doc/en/announce/index.rst b/doc/en/announce/index.rst index 107fcd2ad..8283bf86d 100644 --- a/doc/en/announce/index.rst +++ b/doc/en/announce/index.rst @@ -6,6 +6,7 @@ Release announcements :maxdepth: 2 + release-3.6.3 release-3.6.2 release-3.6.1 release-3.6.0 diff --git a/doc/en/announce/release-2.9.0.rst b/doc/en/announce/release-2.9.0.rst index 8d829996d..c079fdf6b 100644 --- a/doc/en/announce/release-2.9.0.rst +++ b/doc/en/announce/release-2.9.0.rst @@ -124,7 +124,7 @@ The py.test Development Team Thanks `@biern`_ for the PR. * Fix `traceback style docs`_ to describe all of the available options - (auto/long/short/line/native/no), with `auto` being the default since v2.6. + (auto/long/short/line/native/no), with ``auto`` being the default since v2.6. Thanks `@hackebrot`_ for the PR. * Fix (`#1422`_): junit record_xml_property doesn't allow multiple records diff --git a/doc/en/announce/release-3.6.3.rst b/doc/en/announce/release-3.6.3.rst new file mode 100644 index 000000000..1aff2bc38 --- /dev/null +++ b/doc/en/announce/release-3.6.3.rst @@ -0,0 +1,28 @@ +pytest-3.6.3 +======================================= + +pytest 3.6.3 has just been released to PyPI. + +This is a bug-fix release, being a drop-in replacement. To upgrade:: + + pip install --upgrade pytest + +The full changelog is available at http://doc.pytest.org/en/latest/changelog.html. + +Thanks to all who contributed to this release, among them: + +* AdamEr8 +* Anthony Sottile +* Bruno Oliveira +* Jean-Paul Calderone +* Jon Dufresne +* Marcelo Duarte Trevisani +* Ondřej Súkup +* Ronny Pfannschmidt +* T.E.A de Souza +* Victor +* victor + + +Happy testing, +The pytest Development Team diff --git a/doc/en/example/markers.rst b/doc/en/example/markers.rst index bf352bc81..1b4aa9279 100644 --- a/doc/en/example/markers.rst +++ b/doc/en/example/markers.rst @@ -299,10 +299,10 @@ Skip and xfail marks can also be applied in this way, see :ref:`skip/xfail with .. note:: If the data you are parametrizing happen to be single callables, you need to be careful - when marking these items. `pytest.mark.xfail(my_func)` won't work because it's also the + when marking these items. ``pytest.mark.xfail(my_func)`` won't work because it's also the signature of a function being decorated. To resolve this ambiguity, you need to pass a reason argument: - `pytest.mark.xfail(func_bar, reason="Issue#7")`. + ``pytest.mark.xfail(func_bar, reason="Issue#7")``. .. _`adding a custom marker from a plugin`: diff --git a/doc/en/example/simple.rst b/doc/en/example/simple.rst index f8c1fd279..ed2c9d67a 100644 --- a/doc/en/example/simple.rst +++ b/doc/en/example/simple.rst @@ -415,8 +415,8 @@ Now we can profile which test functions execute the slowest:: ========================= slowest 3 test durations ========================= 0.30s call test_some_are_slow.py::test_funcslow2 - 0.21s call test_some_are_slow.py::test_funcslow1 - 0.10s call test_some_are_slow.py::test_funcfast + 0.20s call test_some_are_slow.py::test_funcslow1 + 0.13s call test_some_are_slow.py::test_funcfast ========================= 3 passed in 0.12 seconds ========================= incremental testing - test steps diff --git a/doc/en/fixture.rst b/doc/en/fixture.rst index 1fd16fa34..dd50abacf 100644 --- a/doc/en/fixture.rst +++ b/doc/en/fixture.rst @@ -944,7 +944,7 @@ a generic feature of the mark mechanism: Note that the assigned variable *must* be called ``pytestmark``, assigning e.g. ``foomark`` will not activate the fixtures. -Lastly you can put fixtures required by all tests in your project +It is also possible to put fixtures required by all tests in your project into an ini-file: .. code-block:: ini @@ -954,6 +954,22 @@ into an ini-file: usefixtures = cleandir +.. warning:: + + Note this mark has no effect in **fixture functions**. For example, + this **will not work as expected**: + + .. code-block:: python + + @pytest.mark.usefixtures("my_other_fixture") + @pytest.fixture + def my_fixture_that_sadly_wont_use_my_other_fixture(): + ... + + Currently this will not generate any error or warning, but this is intended + to be handled by `#3664 `_. + + .. _`autouse`: .. _`autouse fixtures`: diff --git a/doc/en/goodpractices.rst b/doc/en/goodpractices.rst index 2bbd9d0ae..d9c685299 100644 --- a/doc/en/goodpractices.rst +++ b/doc/en/goodpractices.rst @@ -187,7 +187,7 @@ You can then install your package in "editable" mode:: pip install -e . which lets you change your source code (both tests and application) and rerun tests at will. -This is similar to running `python setup.py develop` or `conda develop` in that it installs +This is similar to running ``python setup.py develop`` or ``conda develop`` in that it installs your package using a symlink to your development code. Once you are done with your work and want to make sure that your actual diff --git a/doc/en/mark.rst b/doc/en/mark.rst index aa1210bb6..c99768ce0 100644 --- a/doc/en/mark.rst +++ b/doc/en/mark.rst @@ -52,8 +52,6 @@ should add ``--strict`` to ``addopts``: serial -.. `marker-iteration` - Marker revamp and iteration --------------------------- diff --git a/doc/en/reference.rst b/doc/en/reference.rst index fe9e87042..b65e15822 100644 --- a/doc/en/reference.rst +++ b/doc/en/reference.rst @@ -161,6 +161,25 @@ Skip a test function if a condition is ``True``. :keyword str reason: Reason why the test function is being skipped. +.. _`pytest.mark.usefixtures ref`: + +pytest.mark.usefixtures +~~~~~~~~~~~~~~~~~~~~~~~ + +**Tutorial**: :ref:`usefixtures`. + +Mark a test function as using the given fixture names. + +.. warning:: + + This mark can be used with *test functions* only, having no affect when applied + to a **fixture** function. + +.. py:function:: pytest.mark.usefixtures(*names) + + :param args: the names of the fixture to use, as strings + + .. _`pytest.mark.xfail ref`: pytest.mark.xfail diff --git a/src/_pytest/_code/source.py b/src/_pytest/_code/source.py index 711408f61..3b037b7d4 100644 --- a/src/_pytest/_code/source.py +++ b/src/_pytest/_code/source.py @@ -1,4 +1,4 @@ -from __future__ import absolute_import, division, generators, print_function +from __future__ import absolute_import, division, print_function import ast from ast import PyCF_ONLY_AST as _AST_FLAG @@ -152,12 +152,7 @@ class Source(object): return "\n".join(self.lines) def compile( - self, - filename=None, - mode="exec", - flag=generators.compiler_flag, - dont_inherit=0, - _genframe=None, + self, filename=None, mode="exec", flag=0, dont_inherit=0, _genframe=None ): """ return compiled code object. if filename is None invent an artificial filename which displays @@ -201,9 +196,7 @@ class Source(object): # -def compile_( - source, filename=None, mode="exec", flags=generators.compiler_flag, dont_inherit=0 -): +def compile_(source, filename=None, mode="exec", flags=0, dont_inherit=0): """ compile the given source to a raw code object, and maintain an internal cache which allows later retrieval of the source code for the code object diff --git a/src/_pytest/compat.py b/src/_pytest/compat.py index 3ca27fe60..dab09c9d5 100644 --- a/src/_pytest/compat.py +++ b/src/_pytest/compat.py @@ -41,8 +41,8 @@ PY36 = sys.version_info[:2] >= (3, 6) MODULE_NOT_FOUND_ERROR = "ModuleNotFoundError" if PY36 else "ImportError" if _PY3: - from collections.abc import MutableMapping as MappingMixin # noqa - from collections.abc import Mapping, Sequence # noqa + from collections.abc import MutableMapping as MappingMixin + from collections.abc import Mapping, Sequence else: # those raise DeprecationWarnings in Python >=3.7 from collections import MutableMapping as MappingMixin # noqa diff --git a/src/_pytest/config/__init__.py b/src/_pytest/config/__init__.py index 7e7f3b6d2..421d124e9 100644 --- a/src/_pytest/config/__init__.py +++ b/src/_pytest/config/__init__.py @@ -71,7 +71,7 @@ def main(args=None, plugins=None): return 4 -class cmdline(object): # NOQA compatibility namespace +class cmdline(object): # compatibility namespace main = staticmethod(main) diff --git a/src/_pytest/mark/structures.py b/src/_pytest/mark/structures.py index 3fb15bbc2..3c161c4a6 100644 --- a/src/_pytest/mark/structures.py +++ b/src/_pytest/mark/structures.py @@ -294,7 +294,7 @@ def _marked(func, mark): class MarkInfo(object): """ Marking object created by :class:`MarkDecorator` instances. """ - _marks = attr.ib(convert=list) + _marks = attr.ib(converter=list) @_marks.validator def validate_marks(self, attribute, value): diff --git a/src/_pytest/pytester.py b/src/_pytest/pytester.py index ce1c8ea1c..7c9c09b1c 100644 --- a/src/_pytest/pytester.py +++ b/src/_pytest/pytester.py @@ -23,11 +23,6 @@ from _pytest.main import Session, EXIT_OK from _pytest.assertion.rewrite import AssertionRewritingHook -PYTEST_FULLPATH = os.path.abspath(pytest.__file__.rstrip("oc")).replace( - "$py.class", ".py" -) - - IGNORE_PAM = [ # filenames added when obtaining details about the current user u"/var/lib/sss/mc/passwd" ] @@ -1029,9 +1024,7 @@ class Testdir(object): print("couldn't print to %s because of encoding" % (fp,)) def _getpytestargs(self): - # we cannot use `(sys.executable, script)` because on Windows the - # script is e.g. `pytest.exe` - return (sys.executable, PYTEST_FULLPATH) # noqa + return (sys.executable, "-mpytest") def runpython(self, script): """Run a python script using sys.executable as interpreter. diff --git a/testing/code/test_source.py b/testing/code/test_source.py index 7982cfa35..995fabcf4 100644 --- a/testing/code/test_source.py +++ b/testing/code/test_source.py @@ -744,3 +744,19 @@ something '''""" result = getstatement(1, source) assert str(result) == "'''\n'''" + + +def test_getstartingblock_multiline(): + class A(object): + def __init__(self, *args): + frame = sys._getframe(1) + self.source = _pytest._code.Frame(frame).statement + + # fmt: off + x = A('x', + 'y' + , + 'z') + # fmt: on + values = [i for i in x.source.lines if i.strip()] + assert len(values) == 4 diff --git a/testing/code/test_source_multiline_block.py b/testing/code/test_source_multiline_block.py deleted file mode 100644 index 009bb87ae..000000000 --- a/testing/code/test_source_multiline_block.py +++ /dev/null @@ -1,28 +0,0 @@ -# flake8: noqa -import sys - -import _pytest._code - - -def test_getstartingblock_multiline(): - """ - This test was originally found in test_source.py, but it depends on the weird - formatting of the ``x = A`` construct seen here and our autopep8 tool can only exclude entire - files (it does not support excluding lines/blocks using the traditional #noqa comment yet, - see hhatto/autopep8#307). It was considered better to just move this single test to its own - file and exclude it from autopep8 than try to complicate things. - """ - - class A(object): - def __init__(self, *args): - frame = sys._getframe(1) - self.source = _pytest._code.Frame(frame).statement - - # fmt: off - x = A('x', - 'y' - , - 'z') - # fmt: on - values = [i for i in x.source.lines if i.strip()] - assert len(values) == 4 diff --git a/testing/python/raises.py b/testing/python/raises.py index 99aeffdf2..732e1e82c 100644 --- a/testing/python/raises.py +++ b/testing/python/raises.py @@ -33,8 +33,7 @@ class TestRaises(object): def test_raises_as_contextmanager(self, testdir): testdir.makepyfile( """ - from __future__ import with_statement - import py, pytest + import pytest import _pytest._code def test_simple(): diff --git a/testing/test_assertrewrite.py b/testing/test_assertrewrite.py index 20cc476d8..274b1ac53 100644 --- a/testing/test_assertrewrite.py +++ b/testing/test_assertrewrite.py @@ -97,7 +97,7 @@ class TestAssertionRewrite(object): assert imp.lineno == 2 assert imp.col_offset == 0 assert isinstance(m.body[2], ast.Assign) - s = """from __future__ import with_statement\nother_stuff""" + s = """from __future__ import division\nother_stuff""" m = rewrite(s) assert isinstance(m.body[0], ast.ImportFrom) for imp in m.body[1:3]: @@ -105,7 +105,7 @@ class TestAssertionRewrite(object): assert imp.lineno == 2 assert imp.col_offset == 0 assert isinstance(m.body[3], ast.Expr) - s = """'doc string'\nfrom __future__ import with_statement""" + s = """'doc string'\nfrom __future__ import division""" m = rewrite(s) adjust_body_for_new_docstring_in_module_node(m) assert isinstance(m.body[0], ast.ImportFrom) @@ -113,7 +113,7 @@ class TestAssertionRewrite(object): assert isinstance(imp, ast.Import) assert imp.lineno == 2 assert imp.col_offset == 0 - s = """'doc string'\nfrom __future__ import with_statement\nother""" + s = """'doc string'\nfrom __future__ import division\nother""" m = rewrite(s) adjust_body_for_new_docstring_in_module_node(m) assert isinstance(m.body[0], ast.ImportFrom) @@ -941,7 +941,7 @@ class TestAssertionRewriteHookDetails(object): e = IOError() e.errno = 10 raise e - yield # noqa + yield monkeypatch.setattr(atomicwrites, "atomic_write", atomic_write_failed) assert not _write_pyc(state, [1], source_path.stat(), pycpath) diff --git a/testing/test_capture.py b/testing/test_capture.py index 54f0fbc44..5f5e1b98d 100644 --- a/testing/test_capture.py +++ b/testing/test_capture.py @@ -2,7 +2,6 @@ from __future__ import absolute_import, division, print_function # note: py.io capture tests where copied from # pylib 1.4.20.dev2 (rev 13d9af95547e) -from __future__ import with_statement import pickle import os import sys diff --git a/testing/test_pytester.py b/testing/test_pytester.py index 195f2c7f1..86dc35796 100644 --- a/testing/test_pytester.py +++ b/testing/test_pytester.py @@ -364,10 +364,7 @@ class TestSysPathsSnapshot(object): original = list(sys_path) original_other = list(getattr(sys, other_path_type)) snapshot = SysPathsSnapshot() - transformation = { - "source": (0, 1, 2, 3, 4, 5), - "target": (6, 2, 9, 7, 5, 8), - } # noqa: E201 + transformation = {"source": (0, 1, 2, 3, 4, 5), "target": (6, 2, 9, 7, 5, 8)} assert sys_path == [self.path(x) for x in transformation["source"]] sys_path[1] = self.path(6) sys_path[3] = self.path(7) @@ -394,3 +391,8 @@ class TestSysPathsSnapshot(object): assert getattr(sys, path_type) == original_data assert getattr(sys, other_path_type) is original_other assert getattr(sys, other_path_type) == original_other_data + + +def test_testdir_subprocess(testdir): + testfile = testdir.makepyfile("def test_one(): pass") + assert testdir.runpytest_subprocess(testfile).ret == 0 diff --git a/tox.ini b/tox.ini index adc4e9746..6e5d7ca68 100644 --- a/tox.ini +++ b/tox.ini @@ -151,14 +151,6 @@ commands = rm -rf /tmp/doc-exec* make regen -[testenv:fix-lint] -skipsdist = True -usedevelop = True -deps = - autopep8 -commands = - autopep8 --in-place -r --max-line-length=120 --exclude=test_source_multiline_block.py _pytest testing setup.py pytest.py - [testenv:jython] changedir = testing commands =