Skip to content
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

Customizing FileHandler of LoggingPlugin from hook #4707

Closed
mitzkia opened this Issue Feb 1, 2019 · 13 comments

Comments

Projects
None yet
4 participants
@mitzkia
Copy link

mitzkia commented Feb 1, 2019

Which hook is the best to customizing FileHandler of LoggingPlugin with the name of the testcase?
My goal is to create separate logfiles for each testcases (filename should contains name of the testcase).

Already tried:

  • pytest_report_header(): I can overwrite FileHandler of LoggingPlugin, but the testcase information is not yet exist (I would need name of the testcase from: request.node.originalname)
  • pytest_runtest_logstart(): I have got name of the testcase, but when I try to overwrite the FileHandler of LoggingPlugin it will take no effect.
@nicoddemus

This comment has been minimized.

Copy link
Member

nicoddemus commented Feb 1, 2019

cc @thisch to get his take on this 👍

@RonnyPfannschmidt

This comment has been minimized.

Copy link
Member

RonnyPfannschmidt commented Feb 1, 2019

We dont have a way to customize this atm

@mitzkia

This comment has been minimized.

Copy link
Author

mitzkia commented Feb 4, 2019

@nicoddemus , @RonnyPfannschmidt Thanks for your answers.
Is this goal goes against the current pytest architecture (is this a hard problem)?
I hope somehow this goal can be achieved, if this could work we can switch totally to the native LoggingPlugin.
Is there any workaround currently for this problem (just to start with something)?

@nicoddemus

This comment has been minimized.

Copy link
Member

nicoddemus commented Feb 4, 2019

Hi @mitzkia,

Is this goal goes against the current pytest architecture (is this a hard problem)?

Not really, we just have to figure out the best way to fit that requirement with how the native plugin works.

Is there any workaround currently for this problem (just to start with something)?

Off hand I don't think there is, because the log file is taken directly from the command line.

Just to clarify, what you mean by "testcase" exactly? Name of the class which contains test methods?

@mitzkia

This comment has been minimized.

Copy link
Author

mitzkia commented Feb 4, 2019

Hi @nicoddemus

Thanks for your question. My thought was to name the log-file as the test methods was named. As far as I know this information is exists in: request.node.originalname or in request.node.name.

In my case it would be the best if I could customize the filename parameter of the logging.FileHandler() call.

Just an example dir hierarchy from my side:

.
|-- conftest.py
|-- functional_tests
|-- pytest.ini
|-- reports
|-- src

In my case the reports dir contents is the following:

reports/2019-01-29-12-55-42-315311/test_acceptance/testcase_test_acceptance.log
  • 2019-01-29-12-55-42-315311: directory, full date when the pytest run was executed (this parent directory would not change during the testruns)
  • test_acceptance: directory, name of the test method, contains all of the session files which created during actual test run, and also contains the testlog file (this directory will be created when pytest switchs to another test method)
  • testcase_test_acceptance.log: file, the actual testlog file, "tescase" is a simple prefix string, "test_acceptance" name of the test method (this file is created for each test method)
@thisch

This comment has been minimized.

Copy link
Contributor

thisch commented Feb 4, 2019

@mitzkia Thx for bringing this issue up. (The company I work for implemented a custom unittest based testrunner that has support for creating one log file per testcase. We also store the log files in a directory containing the timestamp of the time when the testrunner was started)

I think we can easily implement support for this use case in pytest, but maybe we should instead support this customization via hooks.

@thisch

This comment has been minimized.

Copy link
Contributor

thisch commented Feb 4, 2019

What do you think if we only add a set_log_filename method to the LoggingPlugin class? Then we could write a local hook that takes care of updating the log filename of each test.

@pytest.hookimpl(hookwrapper=True, tryfirst=True)
def pytest_runtest_setup(item):
    config = item.config
    logging_plugin = config.pluginmanager.get_plugin("logging-plugin")

    full_fname = os.path.join(
        basedir,
        item._request.node.name + '.log'
    )
    logging_plugin.set_log_filename(full_fname)
    yield

Edit: Now I have a working pytest patch that allows you to change the filename of each testcase.

@mitzkia

This comment has been minimized.

Copy link
Author

mitzkia commented Feb 5, 2019

Hi @thisch

First of all thanks for your answer and for your help.
Yes, my first idea was also the same, to support this customization via hook.
Sounds great if it could work in this way.
If you have public patch or branch I would gladly tested it in my environment.

Thank you.

@nicoddemus

This comment has been minimized.

Copy link
Member

nicoddemus commented Feb 5, 2019

I like the set_log_filename solution. Let's mark it as experimental for now, just in case we detect a problem later with it. If by 4.4 we don't see any issues, we can just remove the experimental status from that function.

thisch added a commit to thisch/pytest that referenced this issue Feb 6, 2019

@thisch

This comment has been minimized.

Copy link
Contributor

thisch commented Feb 6, 2019

@mitzkia I've just pushed the initial implementation to my pytest fork on github.

Please give it a try.
If you want to contribute to pytest, which would be very welcome, feel free to take over this code and create a PR out of it.

@mitzkia

This comment has been minimized.

Copy link
Author

mitzkia commented Feb 7, 2019

Hi @thisch

Thank you very much for your help, and for your suggestion.
Then I will try to create a PR (of course I will mark you as a signer too).

Thanks

@mitzkia

This comment has been minimized.

Copy link
Author

mitzkia commented Feb 8, 2019

Related PR: #4752

@mitzkia

This comment has been minimized.

Copy link
Author

mitzkia commented Feb 16, 2019

@nicoddemus, @RonnyPfannschmidt, @thisch Thanks for your help again.
The related PR is merged :).

@mitzkia mitzkia closed this Feb 16, 2019

peterbe added a commit to peterbe/django-peterbecom that referenced this issue Feb 19, 2019

Update pytest to 4.3.0
This PR updates [pytest](https://pypi.org/project/pytest) from **4.2.1** to **4.3.0**.



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

Deprecations
------------

- `4724 &lt;https://github.com/pytest-dev/pytest/issues/4724&gt;`_: ``pytest.warns()`` now emits a warning when it receives unknown keyword arguments.

  This will be changed into an error in the future.



Features
--------

- `2753 &lt;https://github.com/pytest-dev/pytest/issues/2753&gt;`_: Usage errors from argparse are mapped to pytest&#39;s ``UsageError``.


- `3711 &lt;https://github.com/pytest-dev/pytest/issues/3711&gt;`_: Add the ``--ignore-glob`` parameter to exclude test-modules with Unix shell-style wildcards.
  Add the ``collect_ignore_glob`` for ``conftest.py`` to exclude test-modules with Unix shell-style wildcards.


- `4698 &lt;https://github.com/pytest-dev/pytest/issues/4698&gt;`_: The warning about Python 2.7 and 3.4 not being supported in pytest 5.0 has been removed.

  In the end it was considered to be more
  of a nuisance than actual utility and users of those Python versions shouldn&#39;t have problems as ``pip`` will not
  install pytest 5.0 on those interpreters.


- `4707 &lt;https://github.com/pytest-dev/pytest/issues/4707&gt;`_: With the help of new ``set_log_path()`` method there is a way to set ``log_file`` paths from hooks.



Bug Fixes
---------

- `4651 &lt;https://github.com/pytest-dev/pytest/issues/4651&gt;`_: ``--help`` and ``--version`` are handled with ``UsageError``.


- `4782 &lt;https://github.com/pytest-dev/pytest/issues/4782&gt;`_: Fix ``AssertionError`` with collection of broken symlinks with packages.
   ```
   
  
</details>


 

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

bors bot added a commit to rehandalal/therapist that referenced this issue Feb 19, 2019

Merge #61
61: Update pytest to 4.3.0 r=rehandalal a=pyup-bot


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



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

Deprecations
------------

- `4724 &lt;https://github.com/pytest-dev/pytest/issues/4724&gt;`_: ``pytest.warns()`` now emits a warning when it receives unknown keyword arguments.

  This will be changed into an error in the future.



Features
--------

- `2753 &lt;https://github.com/pytest-dev/pytest/issues/2753&gt;`_: Usage errors from argparse are mapped to pytest&#39;s ``UsageError``.


- `3711 &lt;https://github.com/pytest-dev/pytest/issues/3711&gt;`_: Add the ``--ignore-glob`` parameter to exclude test-modules with Unix shell-style wildcards.
  Add the ``collect_ignore_glob`` for ``conftest.py`` to exclude test-modules with Unix shell-style wildcards.


- `4698 &lt;https://github.com/pytest-dev/pytest/issues/4698&gt;`_: The warning about Python 2.7 and 3.4 not being supported in pytest 5.0 has been removed.

  In the end it was considered to be more
  of a nuisance than actual utility and users of those Python versions shouldn&#39;t have problems as ``pip`` will not
  install pytest 5.0 on those interpreters.


- `4707 &lt;https://github.com/pytest-dev/pytest/issues/4707&gt;`_: With the help of new ``set_log_path()`` method there is a way to set ``log_file`` paths from hooks.



Bug Fixes
---------

- `4651 &lt;https://github.com/pytest-dev/pytest/issues/4651&gt;`_: ``--help`` and ``--version`` are handled with ``UsageError``.


- `4782 &lt;https://github.com/pytest-dev/pytest/issues/4782&gt;`_: Fix ``AssertionError`` with collection of broken symlinks with packages.
   ```
   
  
  
   ### 4.2.1
   ```
   =========================

Bug Fixes
---------

- `2895 &lt;https://github.com/pytest-dev/pytest/issues/2895&gt;`_: The ``pytest_report_collectionfinish`` hook now is also called with ``--collect-only``.


- `3899 &lt;https://github.com/pytest-dev/pytest/issues/3899&gt;`_: Do not raise ``UsageError`` when an imported package has a ``pytest_plugins.py`` child module.


- `4347 &lt;https://github.com/pytest-dev/pytest/issues/4347&gt;`_: Fix output capturing when using pdb++ with recursive debugging.


- `4592 &lt;https://github.com/pytest-dev/pytest/issues/4592&gt;`_: Fix handling of ``collect_ignore`` via parent ``conftest.py``.


- `4700 &lt;https://github.com/pytest-dev/pytest/issues/4700&gt;`_: Fix regression where ``setUpClass`` would always be called in subclasses even if all tests
  were skipped by a ``unittest.skip()`` decorator applied in the subclass.


- `4739 &lt;https://github.com/pytest-dev/pytest/issues/4739&gt;`_: Fix ``parametrize(... ids=&lt;function&gt;)`` when the function returns non-strings.


- `4745 &lt;https://github.com/pytest-dev/pytest/issues/4745&gt;`_: Fix/improve collection of args when passing in ``__init__.py`` and a test file.


- `4770 &lt;https://github.com/pytest-dev/pytest/issues/4770&gt;`_: ``more_itertools`` is now constrained to &lt;6.0.0 when required for Python 2.7 compatibility.


- `526 &lt;https://github.com/pytest-dev/pytest/issues/526&gt;`_: Fix &quot;ValueError: Plugin already registered&quot; exceptions when running in build directories that symlink to actual source.



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

- `3899 &lt;https://github.com/pytest-dev/pytest/issues/3899&gt;`_: Add note to ``plugins.rst`` that ``pytest_plugins`` should not be used as a name for a user module containing plugins.


- `4324 &lt;https://github.com/pytest-dev/pytest/issues/4324&gt;`_: Document how to use ``raises`` and ``does_not_raise`` to write parametrized tests with conditional raises.


- `4709 &lt;https://github.com/pytest-dev/pytest/issues/4709&gt;`_: Document how to customize test failure messages when using
  ``pytest.warns``.



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

- `4741 &lt;https://github.com/pytest-dev/pytest/issues/4741&gt;`_: Some verbosity related attributes of the TerminalReporter plugin are now
  read only properties.
   ```
   
  
</details>


 

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



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

bors bot added a commit to mozilla/normandy that referenced this issue Feb 26, 2019

Merge #1760
1760: Scheduled weekly dependency update for week 08 r=peterbe a=pyup-bot






### Update [botocore](https://pypi.org/project/botocore) from **1.12.96** to **1.12.101**.


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

* api-change:``athena``: Update athena client to latest version
* api-change:``glue``: Update glue client to latest version
* api-change:``stepfunctions``: Update stepfunctions client to latest version
* api-change:``cloud9``: Update cloud9 client to latest version
   ```
   
  
  
   ### 1.12.100
   ```
   ========

* api-change:``kinesis-video-archived-media``: Update kinesis-video-archived-media client to latest version
* api-change:``workdocs``: Update workdocs client to latest version
* api-change:``codebuild``: Update codebuild client to latest version
* api-change:``cloudwatch``: Update cloudwatch client to latest version
* api-change:``organizations``: Update organizations client to latest version
* api-change:``kinesisvideo``: Update kinesisvideo client to latest version
* api-change:``kinesis-video-media``: Update kinesis-video-media client to latest version
* api-change:``transfer``: Update transfer client to latest version
   ```
   
  
  
   ### 1.12.99
   ```
   =======

* api-change:``codecommit``: Update codecommit client to latest version
* api-change:``directconnect``: Update directconnect client to latest version
* api-change:``medialive``: Update medialive client to latest version
   ```
   
  
  
   ### 1.12.98
   ```
   =======

* api-change:``iot``: Update iot client to latest version
* api-change:``ssm``: Update ssm client to latest version
* api-change:``ds``: Update ds client to latest version
* enhancement:Paginator: Add additional paginators for CloudFormation
* api-change:``efs``: Update efs client to latest version
   ```
   
  
  
   ### 1.12.97
   ```
   =======

* api-change:``athena``: Update athena client to latest version
* api-change:``secretsmanager``: Update secretsmanager client to latest version
   ```
   
  
</details>


 

<details>
  <summary>Links</summary>
  
  - PyPI: https://pypi.org/project/botocore
  - Changelog: https://pyup.io/changelogs/botocore/
  - Repo: https://github.com/boto/botocore
</details>





### Update [jmespath](https://pypi.org/project/jmespath) from **0.9.3** to **0.9.4**.


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

* Fix ``min_by``/``max_by`` with empty lists
  `(`issue 151 &lt;https://github.com/jmespath/jmespath.py/pull/151&gt;`__)
* Fix reverse type for ``null`` type
  (`issue 145 &lt;https://github.com/jmespath/jmespath.py/pull/145&gt;`__)
   ```
   
  
</details>


 

<details>
  <summary>Links</summary>
  
  - PyPI: https://pypi.org/project/jmespath
  - Changelog: https://pyup.io/changelogs/jmespath/
  - Repo: https://github.com/jmespath/jmespath.py
</details>





### Update [MarkupSafe](https://pypi.org/project/MarkupSafe) from **1.1.0** to **1.1.1**.


*The bot wasn't able to find a changelog for this release. [Got an idea?](https://github.com/pyupio/changelogs/issues/new)*

<details>
  <summary>Links</summary>
  
  - PyPI: https://pypi.org/project/markupsafe
  - Changelog: https://pyup.io/changelogs/markupsafe/
  - Homepage: https://palletsprojects.com/p/markupsafe/
</details>





### Update [pluggy](https://pypi.org/project/pluggy) from **0.8.1** to **0.9.0**.


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

Features
--------

- `189 &lt;https://github.com/pytest-dev/pluggy/issues/189&gt;`_: ``PluginManager.load_setuptools_entrypoints`` now accepts a ``name`` parameter that when given will
  load only entry points with that name.

  ``PluginManager.load_setuptools_entrypoints`` also now returns the number of plugins loaded by the
  call, as opposed to the number of all plugins loaded by all calls to this method.



Bug Fixes
---------

- `187 &lt;https://github.com/pytest-dev/pluggy/issues/187&gt;`_: Fix internal ``varnames`` function for PyPy3.
   ```
   
  
</details>


 

<details>
  <summary>Links</summary>
  
  - PyPI: https://pypi.org/project/pluggy
  - Changelog: https://pyup.io/changelogs/pluggy/
  - Repo: https://github.com/pytest-dev/pluggy
</details>





### Update [py](https://pypi.org/project/py) from **1.7.0** to **1.8.0**.


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

- add ``&quot;importlib&quot;`` pyimport mode for python3.5+, allowing unimportable test suites
  to contain identically named modules.

- fix ``LocalPath.as_cwd()`` not calling ``os.chdir()`` with ``None``, when
  being invoked from a non-existing directory.
   ```
   
  
</details>


 

<details>
  <summary>Links</summary>
  
  - PyPI: https://pypi.org/project/py
  - Changelog: https://pyup.io/changelogs/py/
  - Docs: http://py.readthedocs.io/
</details>





### Update [google-auth](https://pypi.org/project/google-auth) from **1.6.2** to **1.6.3**.


<details>
  <summary>Changelog</summary>
  
  
   ### 1.6.3
   ```
   ------

02-15-2019 9:31 PST

Implementation Changes
+++++++++++++

- follow rfc 7515 : strip padding from JWS segments 324 (`324 &lt;https://github.com/googleapis/google-auth-library-python/pull/324&gt;`_)
- Add retry to _metadata.ping() (`323 &lt;https://github.com/googleapis/google-auth-library-python/pull/323&gt;`_)
   ```
   
  
</details>


 

<details>
  <summary>Links</summary>
  
  - PyPI: https://pypi.org/project/google-auth
  - Changelog: https://pyup.io/changelogs/google-auth/
  - Repo: https://github.com/GoogleCloudPlatform/google-auth-library-python
</details>





### Update [boto3](https://pypi.org/project/boto3) from **1.9.96** to **1.9.101**.


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

* api-change:``athena``: [``botocore``] Update athena client to latest version
* api-change:``glue``: [``botocore``] Update glue client to latest version
* api-change:``stepfunctions``: [``botocore``] Update stepfunctions client to latest version
* api-change:``cloud9``: [``botocore``] Update cloud9 client to latest version
   ```
   
  
  
   ### 1.9.100
   ```
   =======

* api-change:``kinesis-video-archived-media``: [``botocore``] Update kinesis-video-archived-media client to latest version
* api-change:``workdocs``: [``botocore``] Update workdocs client to latest version
* api-change:``codebuild``: [``botocore``] Update codebuild client to latest version
* api-change:``cloudwatch``: [``botocore``] Update cloudwatch client to latest version
* api-change:``organizations``: [``botocore``] Update organizations client to latest version
* api-change:``kinesisvideo``: [``botocore``] Update kinesisvideo client to latest version
* api-change:``kinesis-video-media``: [``botocore``] Update kinesis-video-media client to latest version
* api-change:``transfer``: [``botocore``] Update transfer client to latest version
   ```
   
  
  
   ### 1.9.99
   ```
   ======

* api-change:``codecommit``: [``botocore``] Update codecommit client to latest version
* api-change:``directconnect``: [``botocore``] Update directconnect client to latest version
* api-change:``medialive``: [``botocore``] Update medialive client to latest version
   ```
   
  
  
   ### 1.9.98
   ```
   ======

* api-change:``iot``: [``botocore``] Update iot client to latest version
* api-change:``ssm``: [``botocore``] Update ssm client to latest version
* api-change:``ds``: [``botocore``] Update ds client to latest version
* enhancement:Paginator: [``botocore``] Add additional paginators for CloudFormation
* api-change:``efs``: [``botocore``] Update efs client to latest version
   ```
   
  
  
   ### 1.9.97
   ```
   ======

* api-change:``athena``: [``botocore``] Update athena client to latest version
* api-change:``secretsmanager``: [``botocore``] Update secretsmanager client to latest version
   ```
   
  
</details>


 

<details>
  <summary>Links</summary>
  
  - PyPI: https://pypi.org/project/boto3
  - Changelog: https://pyup.io/changelogs/boto3/
  - Repo: https://github.com/boto/boto3
</details>





### Update [flake8](https://pypi.org/project/flake8) from **3.7.5** to **3.7.7**.


<details>
  <summary>Changelog</summary>
  
  
   ### 3.7.7
   ```
   -------------------

You can view the `3.7.7 milestone`_ on GitLab for more details.

Bugs Fixed
~~~~~~~~~~

- Fix crahes in plugins causing ``flake8`` to hang while unpickling errors (See
  also `GitLab!308`_, `GitLab505`_)


.. all links
.. _3.7.7 milestone:
    https://gitlab.com/pycqa/flake8/milestones/30

.. issue links
.. _GitLab505:
    https://gitlab.com/pycqa/flake8/issues/505

.. merge request links
.. _GitLab!308:
    https://gitlab.com/pycqa/flake8/merge_requests/308
   ```
   
  
  
   ### 3.7.6
   ```
   -------------------

You can view the `3.7.6 milestone`_ on GitLab for more details.

Bugs Fixed
~~~~~~~~~~

- Fix ``--per-file-ignores`` for multi-letter error codes (See also
  `GitLab!303`_, `GitLab507`_)

- Improve flake8 speed when only 1 filename is passed (See also `GitLab!305`_)


.. all links
.. _3.7.6 milestone:
    https://gitlab.com/pycqa/flake8/milestones/29

.. issue links
.. _GitLab507:
    https://gitlab.com/pycqa/flake8/issues/507

.. merge request links
.. _GitLab!303:
    https://gitlab.com/pycqa/flake8/merge_requests/303
.. _GitLab!305:
    https://gitlab.com/pycqa/flake8/merge_requests/305
   ```
   
  
</details>


 

<details>
  <summary>Links</summary>
  
  - PyPI: https://pypi.org/project/flake8
  - Changelog: https://pyup.io/changelogs/flake8/
  - Repo: https://gitlab.com/pycqa/flake8
</details>





### Update [jsonschema](https://pypi.org/project/jsonschema) from **2.6.0** to **3.0.0**.


<details>
  <summary>Changelog</summary>
  
  
   ### 3.0.0
   ```
   ------

* Support for Draft 6 and Draft 7
* Draft 7 is now the default
* New ``TypeChecker`` object for more complex type definitions (and overrides)
* Falling back to isodate for the date-time format checker is no longer
  attempted, in accordance with the specification
   ```
   
  
</details>


 

<details>
  <summary>Links</summary>
  
  - PyPI: https://pypi.org/project/jsonschema
  - Changelog: https://pyup.io/changelogs/jsonschema/
  - Repo: https://github.com/Julian/jsonschema
</details>





### Update [pytest](https://pypi.org/project/pytest) from **4.2.1** to **4.3.0**.


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

Deprecations
------------

- `4724 &lt;https://github.com/pytest-dev/pytest/issues/4724&gt;`_: ``pytest.warns()`` now emits a warning when it receives unknown keyword arguments.

  This will be changed into an error in the future.



Features
--------

- `2753 &lt;https://github.com/pytest-dev/pytest/issues/2753&gt;`_: Usage errors from argparse are mapped to pytest&#39;s ``UsageError``.


- `3711 &lt;https://github.com/pytest-dev/pytest/issues/3711&gt;`_: Add the ``--ignore-glob`` parameter to exclude test-modules with Unix shell-style wildcards.
  Add the ``collect_ignore_glob`` for ``conftest.py`` to exclude test-modules with Unix shell-style wildcards.


- `4698 &lt;https://github.com/pytest-dev/pytest/issues/4698&gt;`_: The warning about Python 2.7 and 3.4 not being supported in pytest 5.0 has been removed.

  In the end it was considered to be more
  of a nuisance than actual utility and users of those Python versions shouldn&#39;t have problems as ``pip`` will not
  install pytest 5.0 on those interpreters.


- `4707 &lt;https://github.com/pytest-dev/pytest/issues/4707&gt;`_: With the help of new ``set_log_path()`` method there is a way to set ``log_file`` paths from hooks.



Bug Fixes
---------

- `4651 &lt;https://github.com/pytest-dev/pytest/issues/4651&gt;`_: ``--help`` and ``--version`` are handled with ``UsageError``.


- `4782 &lt;https://github.com/pytest-dev/pytest/issues/4782&gt;`_: Fix ``AssertionError`` with collection of broken symlinks with packages.
   ```
   
  
</details>


 

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







Co-authored-by: pyup-bot <github-bot@pyup.io>
Co-authored-by: Mike Cooper <mythmon@gmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.