summaryrefslogtreecommitdiff
path: root/tests/cachekey/update.py
diff options
context:
space:
mode:
Diffstat (limited to 'tests/cachekey/update.py')
-rwxr-xr-xtests/cachekey/update.py76
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()