From: Nipunn Koorapati Date: Sat, 30 Oct 2021 18:54:43 +0000 (-0700) Subject: Use STDIN project in test_projects to ensure it runs quickly (#2575) X-Git-Url: https://git.madduck.net/etc/vim.git/commitdiff_plain/92eeacc2e3ce917d6364ec06d891436f11536a1c?ds=sidebyside;hp=6b38b52187a7a7b9fedcf257c5ba45cc16f2e8a2 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. --- 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__":