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

pytest overwrites .gitignore and README.md when run with --pdb #4393

Closed
cdeil opened this Issue Nov 14, 2018 · 7 comments

Comments

Projects
None yet
2 participants
@cdeil

cdeil commented Nov 14, 2018

There's an issue that was introduced in #3982 .

Running pytest -v test.py --pdb on a test that raises an exception will create or overwrite the .gitignore and README.md files in the current working directory.

At least I had one case where this happened, with Python 2.7.15, pytest-3.10.1, py-1.7.0, pluggy-0.8.0 because for some reason there:

cachedir: .

See https://gist.github.com/cdeil/a90f0b5727a6187d06ecbf6be68af0ad

This writing of .gitignore and README.md was introduced in #4390, so cc @nicoddemus .

Can you reproduce the issue?

@blueyed

This comment has been minimized.

Contributor

blueyed commented Nov 14, 2018

The README.md should not be overwritten (but gets created), but .gitignore might be overwritten even:
https://github.com/blueyed/pytest/blob/ce0ed9cd22f40d9753efeb59e62c9bb2335877cb/src/_pytest/cacheprovider.py#L123-L131

I think this should only get done if the cache dir is created?!

@cdeil

This comment has been minimized.

cdeil commented Nov 14, 2018

@blueyed - Indeed, README.md wasn't overwritten.

In my project there is only a README.rst. So pytest created a new README.md file.

@blueyed

This comment has been minimized.

Contributor

blueyed commented Nov 14, 2018

See #4394 - however cache_dir = . is not really a good setting in general AFAICT (except for finding corner cases.. ;))

@cdeil

This comment has been minimized.

cdeil commented Nov 14, 2018

@blueyed - I don't understand why cache_dir = . is chosen by pytest in this environment.

$ pytest -v gammapy/spectrum/tests/test_utils.py

Gammapy test data availability:
gammapy-extra ... yes
Gammapy environment variables:
GAMMAPY_EXTRA = /Users/deil/work/code/gammapy-extra
Setting matplotlib backend to "agg" for the tests.
=================================================================================== test session starts ===================================================================================
platform darwin -- Python 2.7.15, pytest-3.10.1, py-1.7.0, pluggy-0.8.0 -- /Users/deil/software/anaconda3/envs/gammapy-dev-py2/bin/python
cachedir: .

I can't reproduce the issue in a new folder with a single file so far.
Is there a command that I can run that gives info how cache_dir is chosen, why it's set to . in that env?
Or maybe you could try to clone https://github.com/gammapy/gammapy and see if you also get cache_dir: . with Python 2?

@blueyed

This comment has been minimized.

Contributor

blueyed commented Nov 14, 2018

Ah, I've thought you configured it explicitly.
Check what inifile is set to (from the header).
Are you using tox by chance?

@blueyed

This comment has been minimized.

Contributor

blueyed commented Nov 14, 2018

I get .pytest_cache:

platform linux2 -- Python 2.7.15, pytest-4.0.0, py-1.7.0, pluggy-0.8.0 -- /tmp/gammapy/venv2/bin/python
cachedir: .pytest_cache
rootdir: /tmp/gammapy, inifile: setup.cfg
collecting ... 
Gammapy test data availability:
gammapy-extra ... no
Gammapy environment variables:
GAMMAPY_EXTRA = not set
collected 0 items / 1 errors                                                                

Also with pytest-3.10.1, and when tests are run actually.

@blueyed

This comment has been minimized.

Contributor

blueyed commented Nov 14, 2018

Check the code around here:

cache_dir_default = ".pytest_cache"
if "TOX_ENV_DIR" in os.environ:
cache_dir_default = os.path.join(os.environ["TOX_ENV_DIR"], cache_dir_default)
parser.addini("cache_dir", default=cache_dir_default, help="cache directory path.")

peterbe added a commit to mozilla-services/tecken that referenced this issue Nov 26, 2018

Update pytest to 4.0.1 (#1359)
This PR updates [pytest](https://pypi.org/project/pytest) from **4.0.0** to **4.0.1**.



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

Bug Fixes
---------

- `3952 &lt;https://github.com/pytest-dev/pytest/issues/3952&gt;`_: Display warnings before &quot;short test summary info&quot; again, but still later warnings in the end.


- `4386 &lt;https://github.com/pytest-dev/pytest/issues/4386&gt;`_: Handle uninitialized exceptioninfo in repr/str.


- `4393 &lt;https://github.com/pytest-dev/pytest/issues/4393&gt;`_: Do not create ``.gitignore``/``README.md`` files in existing cache directories.


- `4400 &lt;https://github.com/pytest-dev/pytest/issues/4400&gt;`_: Rearrange warning handling for the yield test errors so the opt-out in 4.0.x correctly works.


- `4405 &lt;https://github.com/pytest-dev/pytest/issues/4405&gt;`_: Fix collection of testpaths with ``--pyargs``.


- `4412 &lt;https://github.com/pytest-dev/pytest/issues/4412&gt;`_: Fix assertion rewriting involving ``Starred`` + side-effects.


- `4425 &lt;https://github.com/pytest-dev/pytest/issues/4425&gt;`_: Ensure we resolve the absolute path when the given ``--basetemp`` is a relative path.



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

- `4315 &lt;https://github.com/pytest-dev/pytest/issues/4315&gt;`_: Use ``pkg_resources.parse_version`` instead of ``LooseVersion`` in minversion check.


- `4440 &lt;https://github.com/pytest-dev/pytest/issues/4440&gt;`_: Adjust the stack level of some internal pytest warnings.
   ```
   
  
</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 mozilla/normandy that referenced this issue Nov 26, 2018

Merge #1629
1629: Scheduled weekly dependency update for week 47 r=mythmon a=pyup-bot






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


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

* api-change:``amplify``: Update amplify client to latest version
* api-change:``transfer``: Update transfer client to latest version
* api-change:``snowball``: Update snowball client to latest version
* api-change:``robomaker``: Update robomaker client to latest version
* api-change:``s3``: Update s3 client to latest version
* api-change:``datasync``: Update datasync client to latest version
   ```
   
  
  
   ### 1.12.50
   ```
   =======

* api-change:``rekognition``: Update rekognition client to latest version
   ```
   
  
  
   ### 1.12.49
   ```
   =======

* api-change:``autoscaling-plans``: Update autoscaling-plans client to latest version
* api-change:``xray``: Update xray client to latest version
* api-change:``devicefarm``: Update devicefarm client to latest version
* api-change:``ssm``: Update ssm client to latest version
* api-change:``medialive``: Update medialive client to latest version
* api-change:``redshift``: Update redshift client to latest version
* api-change:``rds-data``: Update rds-data client to latest version
* api-change:``appsync``: Update appsync client to latest version
* api-change:``cloudwatch``: Update cloudwatch client to latest version
* api-change:``quicksight``: Update quicksight client to latest version
* api-change:``cloudfront``: Update cloudfront client to latest version
   ```
   
  
  
   ### 1.12.48
   ```
   =======

* api-change:``lightsail``: Update lightsail client to latest version
* api-change:``workspaces``: Update workspaces client to latest version
* api-change:``workdocs``: Update workdocs client to latest version
* api-change:``batch``: Update batch client to latest version
* api-change:``ec2``: Update ec2 client to latest version
* api-change:``devicefarm``: Update devicefarm client to latest version
* api-change:``rds``: Update rds client to latest version
* api-change:``cloudformation``: Update cloudformation client to latest version
* api-change:``lambda``: Update lambda client to latest version
* api-change:``config``: Update config client to latest version
* api-change:``cloudtrail``: Update cloudtrail client to latest version
* api-change:``mediaconvert``: Update mediaconvert client to latest version
* api-change:``iot``: Update iot 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 [Pygments](https://pypi.org/project/Pygments) from **2.2.0** to **2.3.0**.


<details>
  <summary>Changelog</summary>
  
  
   ### 2.3.0
   ```
   -------------
(released Nov 25, 2018)

- Added lexers:

  * Fennel (PR783)
  * HLSL (PR675)

- Updated lexers:

  * Dockerfile (PR714)

- Minimum Python versions changed to 2.7 and 3.5
- Added support for Python 3.7 generator changes (PR772)
- Fix incorrect token type in SCSS for single-quote strings (1322)
- Use `terminal256` formatter if `TERM` contains `256` (PR666)
- Fix incorrect handling of GitHub style fences in Markdown (PR741, 1389)
- Fix `%a` not being highlighted in Python3 strings (PR727)
   ```
   
  
</details>


 

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





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


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

* api-change:``amplify``: [``botocore``] Update amplify client to latest version
* api-change:``transfer``: [``botocore``] Update transfer client to latest version
* api-change:``snowball``: [``botocore``] Update snowball client to latest version
* api-change:``robomaker``: [``botocore``] Update robomaker client to latest version
* api-change:``s3``: [``botocore``] Update s3 client to latest version
* api-change:``datasync``: [``botocore``] Update datasync client to latest version
   ```
   
  
  
   ### 1.9.50
   ```
   ======

* api-change:``rekognition``: [``botocore``] Update rekognition client to latest version
   ```
   
  
  
   ### 1.9.49
   ```
   ======

* api-change:``autoscaling-plans``: [``botocore``] Update autoscaling-plans client to latest version
* api-change:``xray``: [``botocore``] Update xray client to latest version
* api-change:``devicefarm``: [``botocore``] Update devicefarm client to latest version
* api-change:``ssm``: [``botocore``] Update ssm client to latest version
* api-change:``medialive``: [``botocore``] Update medialive client to latest version
* api-change:``redshift``: [``botocore``] Update redshift client to latest version
* api-change:``rds-data``: [``botocore``] Update rds-data client to latest version
* api-change:``appsync``: [``botocore``] Update appsync client to latest version
* api-change:``cloudwatch``: [``botocore``] Update cloudwatch client to latest version
* api-change:``quicksight``: [``botocore``] Update quicksight client to latest version
* api-change:``cloudfront``: [``botocore``] Update cloudfront client to latest version
   ```
   
  
  
   ### 1.9.48
   ```
   ======

* api-change:``lightsail``: [``botocore``] Update lightsail client to latest version
* api-change:``workspaces``: [``botocore``] Update workspaces client to latest version
* api-change:``workdocs``: [``botocore``] Update workdocs client to latest version
* api-change:``batch``: [``botocore``] Update batch client to latest version
* api-change:``ec2``: [``botocore``] Update ec2 client to latest version
* api-change:``devicefarm``: [``botocore``] Update devicefarm client to latest version
* api-change:``rds``: [``botocore``] Update rds client to latest version
* api-change:``cloudformation``: [``botocore``] Update cloudformation client to latest version
* api-change:``lambda``: [``botocore``] Update lambda client to latest version
* api-change:``config``: [``botocore``] Update config client to latest version
* api-change:``cloudtrail``: [``botocore``] Update cloudtrail client to latest version
* api-change:``mediaconvert``: [``botocore``] Update mediaconvert client to latest version
* api-change:``iot``: [``botocore``] Update iot 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 [pytest](https://pypi.org/project/pytest) from **4.0.0** to **4.0.1**.


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

Bug Fixes
---------

- `3952 &lt;https://github.com/pytest-dev/pytest/issues/3952&gt;`_: Display warnings before &quot;short test summary info&quot; again, but still later warnings in the end.


- `4386 &lt;https://github.com/pytest-dev/pytest/issues/4386&gt;`_: Handle uninitialized exceptioninfo in repr/str.


- `4393 &lt;https://github.com/pytest-dev/pytest/issues/4393&gt;`_: Do not create ``.gitignore``/``README.md`` files in existing cache directories.


- `4400 &lt;https://github.com/pytest-dev/pytest/issues/4400&gt;`_: Rearrange warning handling for the yield test errors so the opt-out in 4.0.x correctly works.


- `4405 &lt;https://github.com/pytest-dev/pytest/issues/4405&gt;`_: Fix collection of testpaths with ``--pyargs``.


- `4412 &lt;https://github.com/pytest-dev/pytest/issues/4412&gt;`_: Fix assertion rewriting involving ``Starred`` + side-effects.


- `4425 &lt;https://github.com/pytest-dev/pytest/issues/4425&gt;`_: Ensure we resolve the absolute path when the given ``--basetemp`` is a relative path.



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

- `4315 &lt;https://github.com/pytest-dev/pytest/issues/4315&gt;`_: Use ``pkg_resources.parse_version`` instead of ``LooseVersion`` in minversion check.


- `4440 &lt;https://github.com/pytest-dev/pytest/issues/4440&gt;`_: Adjust the stack level of some internal pytest warnings.
   ```
   
  
</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>





### Update [whitenoise](https://pypi.org/project/whitenoise) from **4.1.1** to **4.1.2**.


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

 * Add correct MIME type for WebAssembly, which is required for files to be
   executed (thanks `mdboom &lt;https://github.com/mdboom&gt;`_ ).
 * Stop accessing the FILE_CHARSET Django setting which was almost entirely
   unused and is now deprecated (thanks `timgraham
   &lt;https://github.com/timgraham&gt;`_).
   ```
   
  
</details>


 

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





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


<details>
  <summary>Changelog</summary>
  
  
   ### 1.7.0
   ```
   Changed

- Support Python 3.7
- Drop support for async in Python 3.4
- Drop support for Python 2.6
- Update development dependencies
- Use poetry for dependencies and packaging
   ```
   
  
</details>


 

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







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

bors bot added a commit to rehandalal/therapist that referenced this issue Nov 27, 2018

Merge #47
47: Update pytest to 4.0.1 r=rehandalal a=pyup-bot


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



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

Bug Fixes
---------

- `3952 &lt;https://github.com/pytest-dev/pytest/issues/3952&gt;`_: Display warnings before &quot;short test summary info&quot; again, but still later warnings in the end.


- `4386 &lt;https://github.com/pytest-dev/pytest/issues/4386&gt;`_: Handle uninitialized exceptioninfo in repr/str.


- `4393 &lt;https://github.com/pytest-dev/pytest/issues/4393&gt;`_: Do not create ``.gitignore``/``README.md`` files in existing cache directories.


- `4400 &lt;https://github.com/pytest-dev/pytest/issues/4400&gt;`_: Rearrange warning handling for the yield test errors so the opt-out in 4.0.x correctly works.


- `4405 &lt;https://github.com/pytest-dev/pytest/issues/4405&gt;`_: Fix collection of testpaths with ``--pyargs``.


- `4412 &lt;https://github.com/pytest-dev/pytest/issues/4412&gt;`_: Fix assertion rewriting involving ``Starred`` + side-effects.


- `4425 &lt;https://github.com/pytest-dev/pytest/issues/4425&gt;`_: Ensure we resolve the absolute path when the given ``--basetemp`` is a relative path.



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

- `4315 &lt;https://github.com/pytest-dev/pytest/issues/4315&gt;`_: Use ``pkg_resources.parse_version`` instead of ``LooseVersion`` in minversion check.


- `4440 &lt;https://github.com/pytest-dev/pytest/issues/4440&gt;`_: Adjust the stack level of some internal pytest warnings.
   ```
   
  
</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>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment