diff options
Diffstat (limited to 'tests/cachekey/update.py')
-rwxr-xr-x | tests/cachekey/update.py | 76 |
1 files changed, 0 insertions, 76 deletions
diff --git a/tests/cachekey/update.py b/tests/cachekey/update.py deleted file mode 100755 index 49af39fe1..000000000 --- a/tests/cachekey/update.py +++ /dev/null @@ -1,76 +0,0 @@ -#!/usr/bin/env python3 -# -# Automatically create or update the .expected files in the -# cache key test directory. -# -# Simply run without any arguments, from anywhere, e.g.: -# -# PYTHONPATH=. ./tests/cachekey/update.py -# -# After this, add any files which were newly created and commit -# the result in order to adjust the cache key test to changed -# keys. -# -import os -import tempfile -from unittest import mock -from buildstream.testing.runcli import Cli - -# This weird try / except is needed, because this will be imported differently -# when pytest runner imports them vs when you run the updater directly from -# this directory. -try: - from cachekey import element_filename, parse_output_keys, load_expected_keys -except ImportError: - from .cachekey import element_filename, parse_output_keys, load_expected_keys - -# Project directory -PROJECT_DIR = os.path.join(os.path.dirname(os.path.realpath(__file__)), "project",) - - -def write_expected_key(element_name, actual_key): - expected_file = element_filename(PROJECT_DIR, element_name, "expected") - with open(expected_file, "w") as f: - f.write(actual_key) - - -def update_keys(): - - with tempfile.TemporaryDirectory(dir=PROJECT_DIR) as tmpdir: - directory = os.path.join(tmpdir, "cache") - os.makedirs(directory) - cli = Cli(directory, verbose=True) - - # Run bst show - result = cli.run( - project=PROJECT_DIR, - silent=True, - args=["--no-colors", "show", "--format", "%{name}::%{full-key}", "target.bst"], - ) - - # Load the actual keys, and the expected ones if they exist - if not result.output: - print("No results from parsing {}:target.bst".format(PROJECT_DIR)) - return - actual_keys = parse_output_keys(result.output) - expected_keys = load_expected_keys(PROJECT_DIR, actual_keys, raise_error=False) - - for element_name in actual_keys: - expected = element_filename(PROJECT_DIR, element_name, "expected") - - if actual_keys[element_name] != expected_keys[element_name]: - if not expected_keys[element_name]: - print("Creating new expected file: {}".format(expected)) - else: - print("Updating expected file: {}".format(expected)) - - write_expected_key(element_name, actual_keys[element_name]) - - -if __name__ == "__main__": - # patch the environment BST_TEST_SUITE value to something if it's not - # present. This avoids an exception thrown at the cli level - bst = "BST_TEST_SUITE" - mock_bst = os.environ.get(bst, "True") - with mock.patch.dict(os.environ, {**os.environ, bst: mock_bst}): - update_keys() |