Skip to content

Commit

Permalink
Use STDIN project in test_projects to ensure it runs quickly
Browse files Browse the repository at this point in the history
Existing test was actually running a full black-primer
run which could be slow. This goes from 8 seconds to
0.4 seconds on my machine.

Needed to move to top level scope to leverage the caplog
feature of pytest in order to test that the command line
was parsing the bogus arguments and dumping to stderr.
  • Loading branch information
nipunn1313 committed Oct 29, 2021
1 parent 5434407 commit d3a527a
Showing 1 changed file with 16 additions and 11 deletions.
27 changes: 16 additions & 11 deletions tests/test_primer.py
Expand Up @@ -267,18 +267,23 @@ def test_help_output(self) -> None:
result = runner.invoke(cli.main, ["--help"])
self.assertEqual(result.exit_code, 0)

def test_projects(self) -> None:

def test_projects(caplog) -> None:
with event_loop():
runner = CliRunner()
result = runner.invoke(cli.main, ["--projects=STDIN,asdf"])
assert result.exit_code == 0
assert "1 / 1 succeeded" in result.output
assert "Projects not found: {'asdf'}" in caplog.text

caplog.clear()

with event_loop():
runner = CliRunner()
with event_loop():
result = runner.invoke(cli.main, ["--projects=tox,asdf"])
self.assertEqual(result.exit_code, 0)
assert "1 / 1 succeeded" in result.output

with event_loop():
runner = CliRunner()
result = runner.invoke(cli.main, ["--projects=tox,attrs"])
self.assertEqual(result.exit_code, 0)
assert "2 / 2 succeeded" in result.output
result = runner.invoke(cli.main, ["--projects=fdsa,STDIN"])
assert result.exit_code == 0
assert "1 / 1 succeeded" in result.output
assert "Projects not found: {'fdsa'}" in caplog.text


if __name__ == "__main__":
Expand Down

0 comments on commit d3a527a

Please sign in to comment.