Skip to content

Commit

Permalink
refactor test_main_format_cells(), run pytest-cov in CI
Browse files Browse the repository at this point in the history
  • Loading branch information
janosh committed Feb 21, 2022
1 parent 7a4be64 commit f305c82
Show file tree
Hide file tree
Showing 4 changed files with 21 additions and 19 deletions.
2 changes: 1 addition & 1 deletion .github/workflows/test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -24,4 +24,4 @@ jobs:
run: pip install .[test]

- name: Run tests
run: pytest
run: pytest --cov format_ipy_cells
4 changes: 2 additions & 2 deletions format_ipy_cells/main.py
Original file line number Diff line number Diff line change
Expand Up @@ -59,9 +59,9 @@ def main(argv: Sequence[str] = []) -> int:
"""
parser = ArgumentParser()

fic_version = md.version(pkg_name := "format-ipy-cells")
pkg_version = md.version(pkg_name := "format-ipy-cells")
parser.add_argument(
"-v", "--version", action="version", version=f"{pkg_name} v{fic_version}"
"-v", "--version", action="version", version=f"{pkg_name} v{pkg_version}"
)

parser.add_argument("filenames", nargs="*", help="Filenames to format")
Expand Down
2 changes: 1 addition & 1 deletion setup.cfg
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ console_scripts =

[options.extras_require]
# Used during pip install .[test]
test = pytest
test = pytest; pytest-cov

[tool:pytest]
testpaths = tests
Expand Down
32 changes: 17 additions & 15 deletions tests/test_main.py
Original file line number Diff line number Diff line change
@@ -1,31 +1,33 @@
import filecmp
from importlib.metadata import version
from shutil import copy2

import pytest

from format_ipy_cells.main import main


def test_main_format_cells(capsys, tmpdir):
clean_nb = "tests/fixtures/clean_nb.py"

with open("tests/fixtures/raw_nb.py") as file:
raw_txt = file.read()
raw_file = copy2("tests/fixtures/raw_nb.py", tmpdir)
# test we leave clean file as is and don't write logs about it
clean_file = copy2(clean_nb, tmpdir)

with open("tests/fixtures/clean_nb.py") as file:
clean_txt = file.read()

# empty file to test we don't modify files needlessly
file1 = tmpdir.join("file1.py").ensure()

file2 = tmpdir.join("file2.py")
file2.write(raw_txt)

ret = main((str(file1), str(file2)))
ret = main((raw_file, clean_file))

assert ret == 1
assert file2.read() == clean_txt
assert filecmp.cmp(raw_file, clean_nb), "Formatted file has unexpected content"
assert filecmp.cmp(clean_file, clean_nb), "clean file should not have changed"

out, err = capsys.readouterr()
assert out == f"Rewriting {raw_file}\n"
assert err == ""

out, _ = capsys.readouterr()
assert out == f"Rewriting {file2}\n"
ret = main([clean_file])
assert ret == 0, "expected exit code 0 when no files were changed"
out, err = capsys.readouterr()
assert out == err == ""


def test_main_print_version(capsys):
Expand Down

0 comments on commit f305c82

Please sign in to comment.