From a0f5591e0bc945675d1bc041cde7e094474f4265 Mon Sep 17 00:00:00 2001 From: xross Date: Thu, 21 Jul 2022 13:10:47 +0100 Subject: [PATCH] Auto-format via black --- tests/xua_unit_tests/conftest.py | 72 +++++++++++------- .../xua_unit_tests/generate_unity_runners.py | 76 +++++++++++-------- 2 files changed, 88 insertions(+), 60 deletions(-) diff --git a/tests/xua_unit_tests/conftest.py b/tests/xua_unit_tests/conftest.py index e2e1a54a..aa9612b0 100644 --- a/tests/xua_unit_tests/conftest.py +++ b/tests/xua_unit_tests/conftest.py @@ -6,16 +6,17 @@ import os.path import pytest import subprocess -target = os.environ.get('TARGET', 'all_possible') +target = os.environ.get("TARGET", "all_possible") print("target = ", target) + def pytest_collect_file(parent, path): - if(path.ext == ".xe"): - if(target == 'all_possible'): + if path.ext == ".xe": + if target == "all_possible": return UnityTestSource.from_parent(parent, fspath=path) - if(target == 'XCOREAI' and ('xcoreai' in path.basename)): + if target == "XCOREAI" and ("xcoreai" in path.basename): return UnityTestSource.from_parent(parent, fspath=path) - if(target == 'XCORE200' and ('xcore200' in path.basename)): + if target == "XCORE200" and ("xcore200" in path.basename): return UnityTestSource.from_parent(parent, fspath=path) @@ -31,7 +32,7 @@ class UnityTestSource(pytest.File): # |-- src/ <- Unity test functions # `-- wscript <- Build system file used to generate/build runners xe_name = ((os.path.basename(self.name)).split("."))[0] + ".xe" - test_bin_path = os.path.join('bin', xe_name) + test_bin_path = os.path.join("bin", xe_name) yield UnityTestExecutable.from_parent(self, name=self.name) @@ -46,12 +47,16 @@ class UnityTestExecutable(pytest.Item): simulator_fail = False test_output = None try: - if('xcore200' in self.name): + if "xcore200" in self.name: print("run axe for executable ", self.name) - test_output = subprocess.check_output(['axe', self.name], text=True) + test_output = subprocess.check_output(["axe", self.name], text=True) else: print("run xrun for executable ", self.name) - test_output = subprocess.check_output(['xrun', '--io', '--id', '0', self.name], text=True, stderr=subprocess.STDOUT) + test_output = subprocess.check_output( + ["xrun", "--io", "--id", "0", self.name], + text=True, + stderr=subprocess.STDOUT, + ) except subprocess.CalledProcessError as e: # Unity exits non-zero if an assertion fails simulator_fail = True @@ -59,10 +64,10 @@ class UnityTestExecutable(pytest.Item): # Parse the Unity output unity_pass = False - test_output = test_output.split('\n') + test_output = test_output.split("\n") for line in test_output: - if 'test' in line: - test_report = line.split(':') + if "test" in line: + test_report = line.split(":") # Unity output is as follows: # :::PASS # :::FAIL: @@ -71,34 +76,43 @@ class UnityTestExecutable(pytest.Item): test_case = test_report[2] result = test_report[3] failure_reason = None - print(('\n {}()'.format(test_case)), end=' ') - if result == 'PASS': + print(("\n {}()".format(test_case)), end=" ") + if result == "PASS": unity_pass = True continue - if result == 'FAIL': + if result == "FAIL": failure_reason = test_report[4] - print('') # Insert line break after test_case print - raise UnityTestException(self, {'test_source': test_source, - 'line_number': line_number, - 'test_case': test_case, - 'failure_reason': - failure_reason}) + print("") # Insert line break after test_case print + raise UnityTestException( + self, + { + "test_source": test_source, + "line_number": line_number, + "test_case": test_case, + "failure_reason": failure_reason, + }, + ) if simulator_fail: raise Exception(self, "Simulation failed.") if not unity_pass: raise Exception(self, "Unity test output not found.") - print('') # Insert line break after final test_case which passed + print("") # Insert line break after final test_case which passed def repr_failure(self, excinfo): if isinstance(excinfo.value, UnityTestException): - return '\n'.join([str(self.parent).strip('<>'), - '{}:{}:{}()'.format( - excinfo.value[1]['test_source'], - excinfo.value[1]['line_number'], - excinfo.value[1]['test_case']), - 'Failure reason:', - excinfo.value[1]['failure_reason']]) + return "\n".join( + [ + str(self.parent).strip("<>"), + "{}:{}:{}()".format( + excinfo.value[1]["test_source"], + excinfo.value[1]["line_number"], + excinfo.value[1]["test_case"], + ), + "Failure reason:", + excinfo.value[1]["failure_reason"], + ] + ) else: return str(excinfo.value) diff --git a/tests/xua_unit_tests/generate_unity_runners.py b/tests/xua_unit_tests/generate_unity_runners.py index f2fe0f04..9b3ccf0d 100644 --- a/tests/xua_unit_tests/generate_unity_runners.py +++ b/tests/xua_unit_tests/generate_unity_runners.py @@ -5,36 +5,39 @@ import os.path import subprocess import sys -UNITY_TEST_DIR = 'src' -UNITY_TEST_PREFIX = 'test_' -UNITY_RUNNER_DIR = 'runners' -UNITY_RUNNER_SUFFIX = '_Runner' -project_root = os.path.join('..', '..', '..') +UNITY_TEST_DIR = "src" +UNITY_TEST_PREFIX = "test_" +UNITY_RUNNER_DIR = "runners" +UNITY_RUNNER_SUFFIX = "_Runner" +project_root = os.path.join("..", "..", "..") + def get_ruby(): """ Check ruby is avaliable and return the command to invoke it. """ - interpreter_name = 'ruby' + interpreter_name = "ruby" try: - dev_null = open(os.devnull, 'w') + dev_null = open(os.devnull, "w") # Call the version command to check the interpreter can be run - subprocess.check_call([interpreter_name, '--version'], - stdout=dev_null, - close_fds=True) + subprocess.check_call( + [interpreter_name, "--version"], stdout=dev_null, close_fds=True + ) except OSError as e: print("Failed to run Ruby interpreter: {}".format(e), file=sys.stderr) exit(1) # TODO: Check this is the correct way to kill xwaf on error return interpreter_name + def get_unity_runner_generator(project_root_path): """ Check the Unity generate_test_runner script is avaliable, and return the path to it. """ unity_runner_generator = os.path.join( - project_root_path, 'Unity', 'auto', 'generate_test_runner.rb') + project_root_path, "Unity", "auto", "generate_test_runner.rb" + ) if not os.path.exists(unity_runner_generator): print("Unity repo not found in workspace", file=sys.stderr) exit(1) # TODO: Check this is the correct way to kill xwaf on error @@ -52,32 +55,41 @@ def get_file_type(filename): """ Return the extension from the filename. """ - return filename.rsplit('.')[-1:][0] + return filename.rsplit(".")[-1:][0] -def generate_unity_runner(project_root_path, unity_test_path, unity_runner_dir, - unity_runner_suffix): +def generate_unity_runner( + project_root_path, unity_test_path, unity_runner_dir, unity_runner_suffix +): """ Invoke the Unity runner generation script for the given test file, and return the path to the generated file. The output directory will be created if it does not already exist. """ - runner_path = os.path.join(os.path.join(unity_runner_dir, get_test_name(unity_test_path))) + runner_path = os.path.join( + os.path.join(unity_runner_dir, get_test_name(unity_test_path)) + ) if not os.path.exists(runner_path): os.makedirs(runner_path) unity_runner_path = os.path.join( - runner_path, get_test_name(unity_test_path) + unity_runner_suffix - + '.' + 'c') + runner_path, get_test_name(unity_test_path) + unity_runner_suffix + "." + "c" + ) try: - subprocess.check_call([get_ruby(), - get_unity_runner_generator(project_root_path), - unity_test_path, - unity_runner_path]) + subprocess.check_call( + [ + get_ruby(), + get_unity_runner_generator(project_root_path), + unity_test_path, + unity_runner_path, + ] + ) except OSError as e: - print("Ruby generator failed for {}\n\t{}".format(unity_test_path, e), - file=sys.stderr) + print( + "Ruby generator failed for {}\n\t{}".format(unity_test_path, e), + file=sys.stderr, + ) exit(1) # TODO: Check this is the correct way to kill xwaf on error @@ -86,7 +98,7 @@ def find_unity_test_paths(unity_test_dir, unity_test_prefix): Return a list of all file paths with the unity_test_prefix found in the unity_test_dir. """ - return glob.glob(os.path.join(unity_test_dir, unity_test_prefix+'*')) + return glob.glob(os.path.join(unity_test_dir, unity_test_prefix + "*")) def find_unity_tests(unity_test_dir, unity_test_prefix): @@ -95,25 +107,27 @@ def find_unity_tests(unity_test_dir, unity_test_prefix): unity_test_prefix found in the unity_test_dir. """ unity_test_paths = find_unity_test_paths(unity_test_dir, unity_test_prefix) - print('unity_test_paths = ', unity_test_paths) - return {get_test_name(path): get_file_type(path) - for path in unity_test_paths} + print("unity_test_paths = ", unity_test_paths) + return {get_test_name(path): get_file_type(path) for path in unity_test_paths} + def find_unity_test_paths(unity_test_dir, unity_test_prefix): """ Return a list of all file paths with the unity_test_prefix found in the unity_test_dir. """ - return glob.glob(os.path.join(unity_test_dir, unity_test_prefix+'*')) + return glob.glob(os.path.join(unity_test_dir, unity_test_prefix + "*")) def generate_runners(): UNITY_TESTS = find_unity_tests(UNITY_TEST_DIR, UNITY_TEST_PREFIX) - print('UNITY_TESTS = ',UNITY_TESTS) + print("UNITY_TESTS = ", UNITY_TESTS) unity_test_paths = find_unity_test_paths(UNITY_TEST_DIR, UNITY_TEST_PREFIX) - print('unity_test_paths = ',unity_test_paths) + print("unity_test_paths = ", unity_test_paths) for unity_test_path in unity_test_paths: - generate_unity_runner(project_root, unity_test_path, UNITY_RUNNER_DIR, UNITY_RUNNER_SUFFIX) + generate_unity_runner( + project_root, unity_test_path, UNITY_RUNNER_DIR, UNITY_RUNNER_SUFFIX + ) if __name__ == "__main__":