Skip to content

pytester: test for _makefile joining an absolute path #6579

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

Merged
merged 1 commit into from
Jan 28, 2020

Conversation

blueyed
Copy link
Contributor

@blueyed blueyed commented Jan 26, 2020

@blueyed blueyed force-pushed the pytester-makefile-joins-abspath branch from 1953a46 to 0fa4448 Compare January 26, 2020 23:19
@blueyed blueyed force-pushed the pytester-makefile-joins-abspath branch from 0fa4448 to c2980eb Compare January 27, 2020 00:01
blueyed added a commit to blueyed/pytest that referenced this pull request Jan 28, 2020
This is a sane method to create a set of files, allowing for absolute
paths.

Ref: pytest-dev#6578
Ref: pytest-dev#6579
blueyed added a commit to blueyed/pytest that referenced this pull request Jan 28, 2020
This is a sane method to create a set of files, allowing for absolute
paths.

Ref: pytest-dev#6578
Ref: pytest-dev#6579
blueyed added a commit to blueyed/pytest that referenced this pull request Jan 28, 2020
This is a sane method to create a set of files, allowing for absolute
paths.

Ref: pytest-dev#6578
Ref: pytest-dev#6579
@@ -710,3 +710,13 @@ def test_error2(bad_fixture):
result.assert_outcomes(error=2)

assert result.parseoutcomes() == {"error": 2}


def test_makefile_joins_absolute_path(testdir: Testdir) -> None:
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

From #6578 (comment) I gather that we should not support absolute paths in _makefile, and I agree at first, I don't see a good use case to allow that and might open up for unwanted writes to system wide files.

I see two options here:

  1. Merge as is and document that this just tests the current behavior, but we want to change it in the future and point to here.
  2. While at it, we might disallow abspaths to _makefile and raise an error, or warning if we want to be conservative.

@RonnyPfannschmidt can correct me if I'm misinterpreting him.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@nicoddemus
This is only a test for the actual behavior, yes.
See #6603 for a saner helper that also allows for this.

Merge as is and document that this just tests the current behavior, but we want to change it in the future and point to here.

How should it be documented? Since it is internal that would be with the test's docstring then? Note that the commit has a reference already.

While at it, we might disallow abspaths to _makefile and raise an error, or warning if we want to be conservative.

Yeah, somebody could do it on top of this, but if nobody wants to do it now I think it is better to test the given behavior.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Always failing is preferable to surprises, however this needs to be done starting with a warning

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@nicoddemus how to proceed here then? I'd say to just merge it.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

How should it be documented? Since it is internal that would be with the test's docstring then?

Definitely, sorry I wasn't clear.

Note that the commit has a reference already.

That's good, but I prefer to also include it into the docstring: we often move code around so it is harder to find stuff with blame.

But OK, let's merge it now and decide on the warning/error/etc on the other PR (I don't think we will lose sight of this and this comes back to bite us later).

blueyed added a commit to blueyed/pytest that referenced this pull request Jan 28, 2020
This is a sane method to create a set of files, allowing for absolute
paths.

Ref: pytest-dev#6578
Ref: pytest-dev#6579
@blueyed blueyed merged commit 8e1d59a into pytest-dev:master Jan 28, 2020
@blueyed blueyed deleted the pytester-makefile-joins-abspath branch January 28, 2020 23:58
blueyed added a commit to blueyed/pytest that referenced this pull request Jan 30, 2020
This is a sane method to create a set of files, allowing for absolute
paths.

Ref: pytest-dev#6578
Ref: pytest-dev#6579
blueyed added a commit to blueyed/pytest that referenced this pull request Jan 30, 2020
This is a sane method to create a set of files, allowing for absolute
paths.

Ref: pytest-dev#6578
Ref: pytest-dev#6579
blueyed added a commit to blueyed/pytest that referenced this pull request Mar 13, 2020
This is a sane method to create a set of files, allowing for absolute
paths.

Ref: pytest-dev#6578
Ref: pytest-dev#6579
blueyed added a commit to blueyed/pytest that referenced this pull request Mar 17, 2020
This is a simple, straight-forward method to create a set of files with
different extensions, and handling absolute paths (inside of the
tmpdir).

Ref: pytest-dev#6578
Ref: pytest-dev#6579
blueyed added a commit to blueyed/pytest that referenced this pull request Mar 18, 2020
This is a simple, straight-forward method to create a set of files with
different extensions, and handling absolute paths (inside of the
tmpdir).

Ref: pytest-dev#6578
Ref: pytest-dev#6579
blueyed added a commit to blueyed/pytest that referenced this pull request Mar 18, 2020
This is a simple, straight-forward method to create a set of files with
different extensions, and handling absolute paths (inside of the
tmpdir).

Ref: pytest-dev#6578
Ref: pytest-dev#6579
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants