diff options
author | Florian Bruhin <me@the-compiler.org> | 2020-12-04 19:01:13 +0100 |
---|---|---|
committer | Florian Bruhin <me@the-compiler.org> | 2020-12-04 19:01:13 +0100 |
commit | 79e74efcf6c1e753ace4d4129d828f818dda5317 (patch) | |
tree | a790be34f4b421a5600e3255c4f5a709429bc47f /scripts/dev/recompile_requirements.py | |
parent | 77d5a08b917793e975b198206b44ffae021721e6 (diff) | |
download | qutebrowser-79e74efcf6c1e753ace4d4129d828f818dda5317.tar.gz qutebrowser-79e74efcf6c1e753ace4d4129d828f818dda5317.zip |
scripts: Skip unnecessary testing in recompile_requirements
Diffstat (limited to 'scripts/dev/recompile_requirements.py')
-rw-r--r-- | scripts/dev/recompile_requirements.py | 18 |
1 files changed, 14 insertions, 4 deletions
diff --git a/scripts/dev/recompile_requirements.py b/scripts/dev/recompile_requirements.py index 87740c5bb..a27465b4d 100644 --- a/scripts/dev/recompile_requirements.py +++ b/scripts/dev/recompile_requirements.py @@ -291,6 +291,8 @@ def init_venv(host_python, venv_dir, requirements, pre=False): def parse_args(): """Parse commandline arguments via argparse.""" parser = argparse.ArgumentParser() + parser.add_argument('--force-test', help="Force running environment tests", + action='store_true') parser.add_argument('names', nargs='*') return parser.parse_args() @@ -481,7 +483,6 @@ def build_requirements(name): def test_tox(): """Test requirements via tox.""" - utils.print_title('Testing via tox') host_python = get_host_python('tox') req_path = os.path.join(REQ_DIR, 'requirements-tox.txt') @@ -506,11 +507,15 @@ def test_tox(): check=True) -def test_requirements(name, outfile): +def test_requirements(name, outfile, *, force=False): """Test a resulting requirements file.""" print() utils.print_subtitle("Testing") + if name not in _get_changed_files() and not force: + print(f"Skipping test as there were no changes for {name}.") + return + host_python = get_host_python(name) with tempfile.TemporaryDirectory() as tmpdir: init_venv(host_python, tmpdir, outfile) @@ -528,11 +533,16 @@ def main(): for name in names: utils.print_title(name) outfile = build_requirements(name) - test_requirements(name, outfile) + test_requirements(name, outfile, force=args.force_test) - if not args.names: + utils.print_title('Testing via tox') + if args.names and not args.force_test: # If we selected a subset, let's not go through the trouble of testing # via tox. + print("Skipping: Selected a subset only") + elif not _get_changed_files() and not args.force_test: + print("Skipping: No changes") + else: test_tox() print_changed_files() |