New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix infinite recursion collection bug with pytest_ignore_collect hook #3771

Merged
merged 2 commits into from Aug 6, 2018

Conversation

Projects
None yet
6 participants
@nicoddemus
Member

nicoddemus commented Aug 2, 2018

Adding an example for a bug we found at work. This blows up with:

.env36\lib\site-packages\pluggy\hooks.py:258: in __call__
    return self._hookexec(self, self._nonwrappers + self._wrappers, kwargs)
.env36\lib\site-packages\pluggy\manager.py:67: in _hookexec
    return self._inner_hookexec(hook, methods, kwargs)
.env36\lib\site-packages\pluggy\manager.py:61: in <lambda>
    firstresult=hook.spec_opts.get('firstresult'),
src\_pytest\python.py:210: in pytest_collect_file
    return ihook.pytest_pycollect_makemodule(path=path, parent=parent)
.env36\lib\site-packages\pluggy\hooks.py:258: in __call__
    return self._hookexec(self, self._nonwrappers + self._wrappers, kwargs)
.env36\lib\site-packages\pluggy\manager.py:67: in _hookexec
    return self._inner_hookexec(hook, methods, kwargs)
.env36\lib\site-packages\pluggy\manager.py:61: in <lambda>
    firstresult=hook.spec_opts.get('firstresult'),
src\_pytest\python.py:215: in pytest_pycollect_makemodule
    return Package(path, parent)
src\_pytest\python.py:552: in __init__
    self, fspath, parent=parent, config=config, session=session, nodeid=nodeid
src\_pytest\nodes.py:351: in __init__
    fspath = py.path.local(fspath)  # xxx only for test_resultlog.py?
.env36\lib\site-packages\py\_path\local.py:158: in __init__
    self.strpath = abspath(path)
w:\Miniconda\envs\py36\lib\ntpath.py:552: in abspath
    return normpath(path)
w:\Miniconda\envs\py36\lib\ntpath.py:494: in normpath
    prefix, path = splitdrive(path)
w:\Miniconda\envs\py36\lib\ntpath.py:142: in splitdrive
    if len(p) >= 2:
E   RecursionError: maximum recursion depth exceeded in comparison
!!!!!!!!!!!!!!!!!!! Interrupted: 1 errors during collection !!!!!!!!!!!!!!!!!!!

The trigger is the pytest_ignore_collect hook returning False. If it returns None, everything works.

This is a regression because returning False from the hook worked up until 3.7.0.

cc @kfasolin

@RonnyPfannschmidt

blanket approve, please add a reference to the issue using a mark and mark it as xfail

@nicoddemus

This comment has been minimized.

Show comment
Hide comment
@nicoddemus

nicoddemus Aug 2, 2018

Member

I plan to tackle it soon. If we get to the point where we decide to merge it, then sure I will mark it as xfail and create a reference issue. 👍

Member

nicoddemus commented Aug 2, 2018

I plan to tackle it soon. If we get to the point where we decide to merge it, then sure I will mark it as xfail and create a reference issue. 👍

@nicoddemus

This comment has been minimized.

Show comment
Hide comment
@nicoddemus

nicoddemus Aug 3, 2018

Member

I'm studying a fix for this, and I realize that the current package-scoped fixture should be collecting directories, not files. Currently it collects __init__.py files as Package objects:

def pytest_pycollect_makemodule(path, parent):
if path.basename == "__init__.py":
return Package(path, parent)
return Module(path, parent)

I believe this is the cause for this bug and the one reported in #3773.

I think we can overhaul pytest_collect_directory (#571) to properly support collecting directories, but this would require some refactoring in the current code.

For the bug in demonstrated in this PR, I have a fix which seems to work but I believe the long term solution is to allow proper collection of directories.

cc @jonozzz

Member

nicoddemus commented Aug 3, 2018

I'm studying a fix for this, and I realize that the current package-scoped fixture should be collecting directories, not files. Currently it collects __init__.py files as Package objects:

def pytest_pycollect_makemodule(path, parent):
if path.basename == "__init__.py":
return Package(path, parent)
return Module(path, parent)

I believe this is the cause for this bug and the one reported in #3773.

I think we can overhaul pytest_collect_directory (#571) to properly support collecting directories, but this would require some refactoring in the current code.

For the bug in demonstrated in this PR, I have a fix which seems to work but I believe the long term solution is to allow proper collection of directories.

cc @jonozzz

@nicoddemus

This comment has been minimized.

Show comment
Hide comment
@nicoddemus

nicoddemus Aug 3, 2018

Member

Just pushed the workaround for this PR.

Member

nicoddemus commented Aug 3, 2018

Just pushed the workaround for this PR.

@@ -561,7 +561,7 @@ def __init__(self, fspath, parent=None, config=None, session=None, nodeid=None):
def _recurse(self, path):
ihook = self.gethookproxy(path.dirpath())
if ihook.pytest_ignore_collect(path=path, config=self.config):
return
return False

This comment has been minimized.

@nicoddemus

nicoddemus Aug 3, 2018

Member

This doesn't have anything to do with the fix, just thought I would keep the return value consistent.

@nicoddemus

nicoddemus Aug 3, 2018

Member

This doesn't have anything to do with the fix, just thought I would keep the return value consistent.

pkg_prefix = None
for path in path.visit(fil=lambda x: 1, rec=self._recurse, bf=True, sort=True):
for path in this_path.visit(rec=self._recurse, bf=True, sort=True):
# we will visit our own __init__.py file, in which case we skip it

This comment has been minimized.

@nicoddemus

nicoddemus Aug 3, 2018

Member

This is the actual fix. I did not understand what this had to do with pytest_ignore_collect though.

@nicoddemus

nicoddemus Aug 3, 2018

Member

This is the actual fix. I did not understand what this had to do with pytest_ignore_collect though.

This comment has been minimized.

@jonozzz

jonozzz Aug 10, 2018

visit() calls back the self._recurse(path) which in turn calls the pytest_ignore_collect

@jonozzz

jonozzz Aug 10, 2018

visit() calls back the self._recurse(path) which in turn calls the pytest_ignore_collect

@nicoddemus nicoddemus changed the title from [WIP] Add example for package recursion bug to Add example for package recursion bug Aug 3, 2018

@nicoddemus nicoddemus changed the title from Add example for package recursion bug to Fix infinite recursion collection bug with pytest_ignore_collect hook Aug 3, 2018

@coveralls

This comment has been minimized.

Show comment
Hide comment
@coveralls

coveralls Aug 3, 2018

Coverage Status

Coverage increased (+0.05%) to 92.518% when pulling fe0a76e on nicoddemus:package-infinite-recursion-bug into a76cc8f on pytest-dev:master.

coveralls commented Aug 3, 2018

Coverage Status

Coverage increased (+0.05%) to 92.518% when pulling fe0a76e on nicoddemus:package-infinite-recursion-bug into a76cc8f on pytest-dev:master.

@nicoddemus

This comment has been minimized.

Show comment
Hide comment
@nicoddemus

nicoddemus Aug 4, 2018

Member

@RonnyPfannschmidt I know you already approved it, but could you take a look at the new commits and tell what you think?

Would appreciate some input from @jonozzz as well

Member

nicoddemus commented Aug 4, 2018

@RonnyPfannschmidt I know you already approved it, but could you take a look at the new commits and tell what you think?

Would appreciate some input from @jonozzz as well

@jonozzz

jonozzz approved these changes Aug 6, 2018

Looks good. Thanks for fixing this.

@kfasolin

This comment has been minimized.

Show comment
Hide comment
@kfasolin

kfasolin Aug 6, 2018

Thanks for the fix @nicoddemus =P

kfasolin commented Aug 6, 2018

Thanks for the fix @nicoddemus =P

@nicoddemus nicoddemus merged commit e723069 into pytest-dev:master Aug 6, 2018

2 checks passed

continuous-integration/appveyor/pr AppVeyor build succeeded
Details
continuous-integration/travis-ci/pr The Travis CI build passed
Details

@nicoddemus nicoddemus deleted the nicoddemus:package-infinite-recursion-bug branch Aug 6, 2018

@drdavella

This comment has been minimized.

Show comment
Hide comment
@drdavella

drdavella Aug 9, 2018

Was this fix released in 3.7.1? This looks very similar to, but not exactly the same as, the issue I reported in astropy/pytest-doctestplus#22. Perhaps its the same bug but in a different hook?

drdavella commented Aug 9, 2018

Was this fix released in 3.7.1? This looks very similar to, but not exactly the same as, the issue I reported in astropy/pytest-doctestplus#22. Perhaps its the same bug but in a different hook?

@nicoddemus

This comment has been minimized.

Show comment
Hide comment
@nicoddemus

nicoddemus Aug 10, 2018

Member

@drdavella not yet, this will be released in 3.7.2. Can you try the current master meanwhile?

Member

nicoddemus commented Aug 10, 2018

@drdavella not yet, this will be released in 3.7.2. Can you try the current master meanwhile?

nicoddemus referenced this pull request Aug 10, 2018

@jonozzz

This comment has been minimized.

Show comment
Hide comment
@jonozzz

jonozzz Aug 10, 2018

@nicoddemus I didn't even know pytest_collect_directory existed! That would've simplified things a lot... Packages are basically directories with a special init.py file.

jonozzz commented Aug 10, 2018

@nicoddemus I didn't even know pytest_collect_directory existed! That would've simplified things a lot... Packages are basically directories with a special init.py file.

@nicoddemus

This comment has been minimized.

Show comment
Hide comment
@nicoddemus

nicoddemus Aug 10, 2018

Member

@jonozzz if you see the code currently you will notice that pytest_collect_directory cannot do much because its contents are discarded; we need to re-purpose it to be part of the collection. But my gut feeling is the same as yours, it would greatly simplify things.

Member

nicoddemus commented Aug 10, 2018

@jonozzz if you see the code currently you will notice that pytest_collect_directory cannot do much because its contents are discarded; we need to re-purpose it to be part of the collection. But my gut feeling is the same as yours, it would greatly simplify things.

@nicoddemus

This comment has been minimized.

Show comment
Hide comment
@nicoddemus

nicoddemus Aug 10, 2018

Member

On second thought, we probably don't want to re-purpose an existing hook, it might be better to deprecate it and add a new hook with the semantics we want to collect a directory.

Member

nicoddemus commented Aug 10, 2018

On second thought, we probably don't want to re-purpose an existing hook, it might be better to deprecate it and add a new hook with the semantics we want to collect a directory.

@nicoddemus

This comment has been minimized.

Show comment
Hide comment
@nicoddemus

nicoddemus Aug 10, 2018

Member

Got curious and decided to dig a little (although I should be in bed by now), it seems pytest_collect_directory was used at some point in the past to collect Directory nodes: 4a78daf

Member

nicoddemus commented Aug 10, 2018

Got curious and decided to dig a little (although I should be in bed by now), it seems pytest_collect_directory was used at some point in the past to collect Directory nodes: 4a78daf

@drdavella

This comment has been minimized.

Show comment
Hide comment
@drdavella

drdavella Aug 14, 2018

@nicoddemus yes the fix works for me on master, thanks.

drdavella commented Aug 14, 2018

@nicoddemus yes the fix works for me on master, thanks.

sfdye added a commit to pydanny/cookiecutter-django that referenced this pull request Aug 19, 2018

Update pytest to 3.7.2 (#1755)
This PR updates [pytest](https://pypi.org/project/pytest) from **3.7.1** to **3.7.2**.



<details>
  <summary>Changelog</summary>
  
  
   ### 3.7.2
   ```
   =========================

Bug Fixes
---------

- `3671 &lt;https://github.com/pytest-dev/pytest/issues/3671&gt;`_: Fix ``filterwarnings`` not being registered as a builtin mark.


- `3768 &lt;https://github.com/pytest-dev/pytest/issues/3768&gt;`_, `3789 &lt;https://github.com/pytest-dev/pytest/issues/3789&gt;`_: Fix test collection from packages mixed with normal directories.


- `3771 &lt;https://github.com/pytest-dev/pytest/issues/3771&gt;`_: Fix infinite recursion during collection if a ``pytest_ignore_collect`` hook returns ``False`` instead of ``None``.


- `3774 &lt;https://github.com/pytest-dev/pytest/issues/3774&gt;`_: Fix bug where decorated fixtures would lose functionality (for example ``mock.patch``).


- `3775 &lt;https://github.com/pytest-dev/pytest/issues/3775&gt;`_: Fix bug where importing modules or other objects with prefix ``pytest_`` prefix would raise a ``PluginValidationError``.


- `3788 &lt;https://github.com/pytest-dev/pytest/issues/3788&gt;`_: Fix ``AttributeError`` during teardown of ``TestCase`` subclasses which raise an exception during ``__init__``.


- `3804 &lt;https://github.com/pytest-dev/pytest/issues/3804&gt;`_: Fix traceback reporting for exceptions with ``__cause__`` cycles.



Improved Documentation
----------------------

- `3746 &lt;https://github.com/pytest-dev/pytest/issues/3746&gt;`_: Add documentation for ``metafunc.config`` that had been mistakenly hidden.
   ```
   
  
</details>


 

<details>
  <summary>Links</summary>
  
  - PyPI: https://pypi.org/project/pytest
  - Changelog: https://pyup.io/changelogs/pytest/
  - Homepage: http://pytest.org
</details>

cmccandless added a commit to cmccandless/tools that referenced this pull request Aug 20, 2018

Update pytest to 3.7.2 (#25)
This PR updates [pytest](https://pypi.org/project/pytest) from **3.7.1** to **3.7.2**.



<details>
  <summary>Changelog</summary>
  
  
   ### 3.7.2
   ```
   =========================

Bug Fixes
---------

- `3671 &lt;https://github.com/pytest-dev/pytest/issues/3671&gt;`_: Fix ``filterwarnings`` not being registered as a builtin mark.


- `3768 &lt;https://github.com/pytest-dev/pytest/issues/3768&gt;`_, `3789 &lt;https://github.com/pytest-dev/pytest/issues/3789&gt;`_: Fix test collection from packages mixed with normal directories.


- `3771 &lt;https://github.com/pytest-dev/pytest/issues/3771&gt;`_: Fix infinite recursion during collection if a ``pytest_ignore_collect`` hook returns ``False`` instead of ``None``.


- `3774 &lt;https://github.com/pytest-dev/pytest/issues/3774&gt;`_: Fix bug where decorated fixtures would lose functionality (for example ``mock.patch``).


- `3775 &lt;https://github.com/pytest-dev/pytest/issues/3775&gt;`_: Fix bug where importing modules or other objects with prefix ``pytest_`` prefix would raise a ``PluginValidationError``.


- `3788 &lt;https://github.com/pytest-dev/pytest/issues/3788&gt;`_: Fix ``AttributeError`` during teardown of ``TestCase`` subclasses which raise an exception during ``__init__``.


- `3804 &lt;https://github.com/pytest-dev/pytest/issues/3804&gt;`_: Fix traceback reporting for exceptions with ``__cause__`` cycles.



Improved Documentation
----------------------

- `3746 &lt;https://github.com/pytest-dev/pytest/issues/3746&gt;`_: Add documentation for ``metafunc.config`` that had been mistakenly hidden.
   ```
   
  
</details>


 

<details>
  <summary>Links</summary>
  
  - PyPI: https://pypi.org/project/pytest
  - Changelog: https://pyup.io/changelogs/pytest/
  - Homepage: http://pytest.org
</details>

cmccandless added a commit to cmccandless/multisite that referenced this pull request Aug 20, 2018

Update pytest to 3.7.2 (#8)
This PR updates [pytest](https://pypi.org/project/pytest) from **3.6.4** to **3.7.2**.



<details>
  <summary>Changelog</summary>
  
  
   ### 3.7.2
   ```
   =========================

Bug Fixes
---------

- `3671 &lt;https://github.com/pytest-dev/pytest/issues/3671&gt;`_: Fix ``filterwarnings`` not being registered as a builtin mark.


- `3768 &lt;https://github.com/pytest-dev/pytest/issues/3768&gt;`_, `3789 &lt;https://github.com/pytest-dev/pytest/issues/3789&gt;`_: Fix test collection from packages mixed with normal directories.


- `3771 &lt;https://github.com/pytest-dev/pytest/issues/3771&gt;`_: Fix infinite recursion during collection if a ``pytest_ignore_collect`` hook returns ``False`` instead of ``None``.


- `3774 &lt;https://github.com/pytest-dev/pytest/issues/3774&gt;`_: Fix bug where decorated fixtures would lose functionality (for example ``mock.patch``).


- `3775 &lt;https://github.com/pytest-dev/pytest/issues/3775&gt;`_: Fix bug where importing modules or other objects with prefix ``pytest_`` prefix would raise a ``PluginValidationError``.


- `3788 &lt;https://github.com/pytest-dev/pytest/issues/3788&gt;`_: Fix ``AttributeError`` during teardown of ``TestCase`` subclasses which raise an exception during ``__init__``.


- `3804 &lt;https://github.com/pytest-dev/pytest/issues/3804&gt;`_: Fix traceback reporting for exceptions with ``__cause__`` cycles.



Improved Documentation
----------------------

- `3746 &lt;https://github.com/pytest-dev/pytest/issues/3746&gt;`_: Add documentation for ``metafunc.config`` that had been mistakenly hidden.
   ```
   
  
  
   ### 3.7.1
   ```
   =========================

Bug Fixes
---------

- `3473 &lt;https://github.com/pytest-dev/pytest/issues/3473&gt;`_: Raise immediately if ``approx()`` is given an expected value of a type it doesn&#39;t understand (e.g. strings, nested dicts, etc.).


- `3712 &lt;https://github.com/pytest-dev/pytest/issues/3712&gt;`_: Correctly represent the dimensions of an numpy array when calling ``repr()`` on ``approx()``.

- `3742 &lt;https://github.com/pytest-dev/pytest/issues/3742&gt;`_: Fix incompatibility with third party plugins during collection, which produced the error ``object has no attribute &#39;_collectfile&#39;``.

- `3745 &lt;https://github.com/pytest-dev/pytest/issues/3745&gt;`_: Display the absolute path if ``cache_dir`` is not relative to the ``rootdir`` instead of failing.


- `3747 &lt;https://github.com/pytest-dev/pytest/issues/3747&gt;`_: Fix compatibility problem with plugins and the warning code issued by fixture functions when they are called directly.


- `3748 &lt;https://github.com/pytest-dev/pytest/issues/3748&gt;`_: Fix infinite recursion in ``pytest.approx`` with arrays in ``numpy&lt;1.13``.


- `3757 &lt;https://github.com/pytest-dev/pytest/issues/3757&gt;`_: Pin pathlib2 to ``&gt;=2.2.0`` as we require ``__fspath__`` support.


- `3763 &lt;https://github.com/pytest-dev/pytest/issues/3763&gt;`_: Fix ``TypeError`` when the assertion message is ``bytes`` in python 3.
   ```
   
  
  
   ### 3.7.0
   ```
   =========================

Deprecations and Removals
-------------------------

- `2639 &lt;https://github.com/pytest-dev/pytest/issues/2639&gt;`_: ``pytest_namespace`` has been deprecated.

  See the documentation for ``pytest_namespace`` hook for suggestions on how to deal
  with this in plugins which use this functionality.


- `3661 &lt;https://github.com/pytest-dev/pytest/issues/3661&gt;`_: Calling a fixture function directly, as opposed to request them in a test function, now issues a ``RemovedInPytest4Warning``. It will be changed into an error in pytest ``4.0``.

  This is a great source of confusion to new users, which will often call the fixture functions and request them from test functions interchangeably, which breaks the fixture resolution model.



Features
--------

- `2283 &lt;https://github.com/pytest-dev/pytest/issues/2283&gt;`_: New ``package`` fixture scope: fixtures are finalized when the last test of a *package* finishes. This feature is considered **experimental**, so use it sparingly.


- `3576 &lt;https://github.com/pytest-dev/pytest/issues/3576&gt;`_: ``Node.add_marker`` now supports an ``append=True/False`` parameter to determine whether the mark comes last (default) or first.


- `3579 &lt;https://github.com/pytest-dev/pytest/issues/3579&gt;`_: Fixture ``caplog`` now has a ``messages`` property, providing convenient access to the format-interpolated log messages without the extra data provided by the formatter/handler.


- `3610 &lt;https://github.com/pytest-dev/pytest/issues/3610&gt;`_: New ``--trace`` option to enter the debugger at the start of a test.


- `3623 &lt;https://github.com/pytest-dev/pytest/issues/3623&gt;`_: Introduce ``pytester.copy_example`` as helper to do acceptance tests against examples from the project.



Bug Fixes
---------

- `2220 &lt;https://github.com/pytest-dev/pytest/issues/2220&gt;`_: Fix a bug where fixtures overridden by direct parameters (for example parametrization) were being instantiated even if they were not being used by a test.


- `3695 &lt;https://github.com/pytest-dev/pytest/issues/3695&gt;`_: Fix ``ApproxNumpy`` initialisation argument mixup, ``abs`` and ``rel`` tolerances were flipped causing strange comparsion results.
  Add tests to check ``abs`` and ``rel`` tolerances for ``np.array`` and test for expecting ``nan`` with ``np.array()``


- `980 &lt;https://github.com/pytest-dev/pytest/issues/980&gt;`_: Fix truncated locals output in verbose mode.



Improved Documentation
----------------------

- `3295 &lt;https://github.com/pytest-dev/pytest/issues/3295&gt;`_: Correct the usage documentation of ``--last-failed-no-failures`` by adding the missing ``--last-failed`` argument in the presented examples, because they are misleading and lead to think that the missing argument is not needed.



Trivial/Internal Changes
------------------------

- `3519 &lt;https://github.com/pytest-dev/pytest/issues/3519&gt;`_: Now a ``README.md`` file is created in ``.pytest_cache`` to make it clear why the directory exists.
   ```
   
  
</details>


 

<details>
  <summary>Links</summary>
  
  - PyPI: https://pypi.org/project/pytest
  - Changelog: https://pyup.io/changelogs/pytest/
  - Homepage: http://pytest.org
</details>

bors bot added a commit to rehandalal/therapist that referenced this pull request Aug 20, 2018

Merge #28
28: Update pytest to 3.7.2 r=rehandalal a=pyup-bot


This PR updates [pytest](https://pypi.org/project/pytest) from **3.7.1** to **3.7.2**.



<details>
  <summary>Changelog</summary>
  
  
   ### 3.7.2
   ```
   =========================

Bug Fixes
---------

- `3671 &lt;https://github.com/pytest-dev/pytest/issues/3671&gt;`_: Fix ``filterwarnings`` not being registered as a builtin mark.


- `3768 &lt;https://github.com/pytest-dev/pytest/issues/3768&gt;`_, `3789 &lt;https://github.com/pytest-dev/pytest/issues/3789&gt;`_: Fix test collection from packages mixed with normal directories.


- `3771 &lt;https://github.com/pytest-dev/pytest/issues/3771&gt;`_: Fix infinite recursion during collection if a ``pytest_ignore_collect`` hook returns ``False`` instead of ``None``.


- `3774 &lt;https://github.com/pytest-dev/pytest/issues/3774&gt;`_: Fix bug where decorated fixtures would lose functionality (for example ``mock.patch``).


- `3775 &lt;https://github.com/pytest-dev/pytest/issues/3775&gt;`_: Fix bug where importing modules or other objects with prefix ``pytest_`` prefix would raise a ``PluginValidationError``.


- `3788 &lt;https://github.com/pytest-dev/pytest/issues/3788&gt;`_: Fix ``AttributeError`` during teardown of ``TestCase`` subclasses which raise an exception during ``__init__``.


- `3804 &lt;https://github.com/pytest-dev/pytest/issues/3804&gt;`_: Fix traceback reporting for exceptions with ``__cause__`` cycles.



Improved Documentation
----------------------

- `3746 &lt;https://github.com/pytest-dev/pytest/issues/3746&gt;`_: Add documentation for ``metafunc.config`` that had been mistakenly hidden.
   ```
   
  
</details>


 

<details>
  <summary>Links</summary>
  
  - PyPI: https://pypi.org/project/pytest
  - Changelog: https://pyup.io/changelogs/pytest/
  - Homepage: http://pytest.org
</details>



Co-authored-by: pyup-bot <github-bot@pyup.io>

sbanert added a commit to sbanert/odl that referenced this pull request Aug 21, 2018

TST: Blacklist pytest versions 3.7.0 and 3.7.1.
This prevents the pytest recursion bug described in
pytest-dev/pytest#3771. For a discussion, see also
pull request #1416.

@sbanert sbanert referenced this pull request Aug 21, 2018

Merged

TST: Blacklist pytest 3.7 #1417

sbanert added a commit to sbanert/odl that referenced this pull request Aug 21, 2018

TST: Blacklist pytest versions 3.7.0 and 3.7.1.
This prevents the pytest recursion bug described in
pytest-dev/pytest#3771. For a discussion, see also
pull request #1416.

sbanert added a commit to sbanert/odl that referenced this pull request Aug 21, 2018

TST: Blacklist pytest versions 3.7.0 and 3.7.1.
This prevents the pytest recursion bug described in
pytest-dev/pytest#3771. For a discussion, see also
pull request #1416.

sbanert added a commit to sbanert/odl that referenced this pull request Aug 21, 2018

TST: Blacklist pytest versions 3.7.0 and 3.7.1.
This prevents the pytest recursion bug described in
pytest-dev/pytest#3771. For a discussion, see also
pull request #1416.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment