From 92eeacc2e3ce917d6364ec06d891436f11536a1c Mon Sep 17 00:00:00 2001 From: Nipunn Koorapati Date: Sat, 30 Oct 2021 11:54:43 -0700 Subject: [PATCH] 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. --- tests/test_primer.py | 28 +++++++++++++++++----------- 1 file changed, 17 insertions(+), 11 deletions(-) diff --git a/tests/test_primer.py b/tests/test_primer.py index 2aac2d0..9bb4015 100644 --- a/tests/test_primer.py +++ b/tests/test_primer.py @@ -9,6 +9,7 @@ from io import StringIO 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 @@ class PrimerCLITests(unittest.TestCase): result = runner.invoke(cli.main, ["--help"]) self.assertEqual(result.exit_code, 0) - def test_projects(self) -> None: + +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() - 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__": -- 2.39.5