+import contextlib
from dataclasses import replace
import pathlib
import re
from _pytest.monkeypatch import MonkeyPatch
from tests.util import DATA_DIR
+with contextlib.suppress(ModuleNotFoundError):
+ import IPython
pytestmark = pytest.mark.jupyter
pytest.importorskip("IPython", reason="IPython is an optional dependency")
pytest.importorskip("tokenize_rt", reason="tokenize-rt is an optional dependency")
JUPYTER_MODE = Mode(is_ipynb=True)
+EMPTY_CONFIG = DATA_DIR / "empty_pyproject.toml"
+
runner = CliRunner()
format_cell(src, fast=True, mode=JUPYTER_MODE)
+@pytest.mark.skipif(
+ IPython.version_info < (8, 3),
+ reason="Change in how TransformerManager transforms this input",
+)
def test_set_input() -> None:
src = "a = b??"
- with pytest.raises(NothingChanged):
- format_cell(src, fast=True, mode=JUPYTER_MODE)
+ expected = "??b"
+ result = format_cell(src, fast=True, mode=JUPYTER_MODE)
+ assert result == expected
def test_input_already_contains_transformed_magic() -> None:
[
str(DATA_DIR / "notebook_trailing_newline.ipynb"),
"--diff",
+ f"--config={EMPTY_CONFIG}",
],
)
- expected = "@@ -1,3 +1,3 @@\n %%time\n \n-print('foo')\n" '+print("foo")\n'
+ expected = "@@ -1,3 +1,3 @@\n %%time\n \n-print('foo')\n+print(\"foo\")\n"
assert expected in result.output
[
str(DATA_DIR / "notebook_without_changes.ipynb"),
"--diff",
+ f"--config={EMPTY_CONFIG}",
],
)
expected = "1 file would be left unchanged."
monkeypatch.setattr(
"black.jupyter_dependencies_are_installed", lambda verbose, quiet: False
)
- result = runner.invoke(main, [str(tmp_path / "notebook.ipynb")])
+ result = runner.invoke(
+ main, [str(tmp_path / "notebook.ipynb"), f"--config={EMPTY_CONFIG}"]
+ )
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(tmp_path / "notebook.ipynb")])
+ result = runner.invoke(
+ main, [str(tmp_path / "notebook.ipynb"), f"--config={EMPTY_CONFIG}"]
+ )
assert "reformatted" in result.output
monkeypatch.setattr(
"black.files.jupyter_dependencies_are_installed", lambda verbose, quiet: False
)
- result = runner.invoke(main, [str(tmp_path)])
+ result = runner.invoke(main, [str(tmp_path), f"--config={EMPTY_CONFIG}"])
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(tmp_path)])
+ result = runner.invoke(main, [str(tmp_path), f"--config={EMPTY_CONFIG}"])
assert "reformatted" in result.output
str(tmp_nb),
"--diff",
"--ipynb",
+ f"--config={EMPTY_CONFIG}",
],
)
- expected = "@@ -1,3 +1,3 @@\n %%time\n \n-print('foo')\n" '+print("foo")\n'
+ expected = "@@ -1,3 +1,3 @@\n %%time\n \n-print('foo')\n+print(\"foo\")\n"
assert expected in result.output
"--pyi",
"--ipynb",
"--diff",
+ f"--config={EMPTY_CONFIG}",
],
)
assert isinstance(result.exception, SystemExit)