Use STDIN project in test_projects to ensure it runs quickly (#2575)

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.
This commit is contained in:
Nipunn Koorapati 2021-10-30 11:54:43 -07:00 committed by GitHub
parent 6b38b52187
commit 92eeacc2e3
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -9,6 +9,7 @@
from os import getpid
from pathlib import Path
from platform import system
from pytest import LogCaptureFixture
from subprocess import CalledProcessError
from tempfile import TemporaryDirectory, gettempdir
from typing import Any, Callable, Iterator, List, Tuple, TypeVar
@ -267,18 +268,23 @@ def test_help_output(self) -> None:
result = runner.invoke(cli.main, ["--help"])
self.assertEqual(result.exit_code, 0)
def test_projects(self) -> None:
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
def test_projects(caplog: LogCaptureFixture) -> 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()
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__":