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

Support pytest 7 #2705

Merged
merged 2 commits into from
Dec 25, 2021
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 8 additions & 3 deletions tests/optional.py
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,12 @@
from typing import FrozenSet, List, Set, TYPE_CHECKING

import pytest
from _pytest.store import StoreKey
Copy link
Contributor

Choose a reason for hiding this comment

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

Additionally it would be good to replace uses of _store with stash. The former still works but will probably be removed at some point.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

config._store with config.stash?

Copy link
Contributor

Choose a reason for hiding this comment

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

Yes


try:
from pytest import StashKey
except ImportError:
# pytest < 7
from _pytest.store import StoreKey as StashKey

log = logging.getLogger(__name__)

Expand All @@ -33,8 +38,8 @@
from _pytest.nodes import Node


ALL_POSSIBLE_OPTIONAL_MARKERS = StoreKey[FrozenSet[str]]()
ENABLED_OPTIONAL_MARKERS = StoreKey[FrozenSet[str]]()
ALL_POSSIBLE_OPTIONAL_MARKERS = StashKey[FrozenSet[str]]()
ENABLED_OPTIONAL_MARKERS = StashKey[FrozenSet[str]]()


def pytest_addoption(parser: "Parser") -> None:
Expand Down
22 changes: 11 additions & 11 deletions tests/test_ipynb.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
import pathlib
import re

from click.testing import CliRunner
Expand All @@ -12,7 +13,6 @@
import pytest
from black import Mode
from _pytest.monkeypatch import MonkeyPatch
from py.path import local
from tests.util import DATA_DIR

pytestmark = pytest.mark.jupyter
Expand Down Expand Up @@ -371,52 +371,52 @@ def test_ipynb_diff_with_no_change() -> None:


def test_cache_isnt_written_if_no_jupyter_deps_single(
monkeypatch: MonkeyPatch, tmpdir: local
monkeypatch: MonkeyPatch, tmp_path: pathlib.Path
) -> None:
# Check that the cache isn't written to if Jupyter dependencies aren't installed.
jupyter_dependencies_are_installed.cache_clear()
nb = DATA_DIR / "notebook_trailing_newline.ipynb"
tmp_nb = tmpdir / "notebook.ipynb"
tmp_nb = tmp_path / "notebook.ipynb"
with open(nb) as src, open(tmp_nb, "w") as dst:
dst.write(src.read())
monkeypatch.setattr(
"black.jupyter_dependencies_are_installed", lambda verbose, quiet: False
)
result = runner.invoke(main, [str(tmpdir / "notebook.ipynb")])
result = runner.invoke(main, [str(tmp_path / "notebook.ipynb")])
assert "No Python files are present to be formatted. Nothing to do" in result.output
jupyter_dependencies_are_installed.cache_clear()
monkeypatch.setattr(
"black.jupyter_dependencies_are_installed", lambda verbose, quiet: True
)
result = runner.invoke(main, [str(tmpdir / "notebook.ipynb")])
result = runner.invoke(main, [str(tmp_path / "notebook.ipynb")])
assert "reformatted" in result.output


def test_cache_isnt_written_if_no_jupyter_deps_dir(
monkeypatch: MonkeyPatch, tmpdir: local
monkeypatch: MonkeyPatch, tmp_path: pathlib.Path
) -> None:
# Check that the cache isn't written to if Jupyter dependencies aren't installed.
jupyter_dependencies_are_installed.cache_clear()
nb = DATA_DIR / "notebook_trailing_newline.ipynb"
tmp_nb = tmpdir / "notebook.ipynb"
tmp_nb = tmp_path / "notebook.ipynb"
with open(nb) as src, open(tmp_nb, "w") as dst:
dst.write(src.read())
monkeypatch.setattr(
"black.files.jupyter_dependencies_are_installed", lambda verbose, quiet: False
)
result = runner.invoke(main, [str(tmpdir)])
result = runner.invoke(main, [str(tmp_path)])
assert "No Python files are present to be formatted. Nothing to do" in result.output
jupyter_dependencies_are_installed.cache_clear()
monkeypatch.setattr(
"black.files.jupyter_dependencies_are_installed", lambda verbose, quiet: True
)
result = runner.invoke(main, [str(tmpdir)])
result = runner.invoke(main, [str(tmp_path)])
assert "reformatted" in result.output


def test_ipynb_flag(tmpdir: local) -> None:
def test_ipynb_flag(tmp_path: pathlib.Path) -> None:
nb = DATA_DIR / "notebook_trailing_newline.ipynb"
tmp_nb = tmpdir / "notebook.a_file_extension_which_is_definitely_not_ipynb"
tmp_nb = tmp_path / "notebook.a_file_extension_which_is_definitely_not_ipynb"
with open(nb) as src, open(tmp_nb, "w") as dst:
dst.write(src.read())
result = runner.invoke(
Expand Down
8 changes: 4 additions & 4 deletions tests/test_no_ipynb.py
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
import pytest
import os
import pathlib

from tests.util import THIS_DIR
from black import main, jupyter_dependencies_are_installed
from click.testing import CliRunner
from _pytest.tmpdir import tmpdir

pytestmark = pytest.mark.no_jupyter

Expand All @@ -22,14 +22,14 @@ def test_ipynb_diff_with_no_change_single() -> None:
assert expected_output in result.output


def test_ipynb_diff_with_no_change_dir(tmpdir: tmpdir) -> None:
def test_ipynb_diff_with_no_change_dir(tmp_path: pathlib.Path) -> None:
jupyter_dependencies_are_installed.cache_clear()
runner = CliRunner()
nb = os.path.join("tests", "data", "notebook_trailing_newline.ipynb")
tmp_nb = tmpdir / "notebook.ipynb"
tmp_nb = tmp_path / "notebook.ipynb"
with open(nb) as src, open(tmp_nb, "w") as dst:
dst.write(src.read())
result = runner.invoke(main, [str(tmpdir)])
result = runner.invoke(main, [str(tmp_path)])
expected_output = (
"Skipping .ipynb files as Jupyter dependencies are not installed.\n"
"You can fix this by running ``pip install black[jupyter]``\n"
Expand Down