diff --git a/test_requirements.in b/test_requirements.in index 58bff134..1c6e8235 100644 --- a/test_requirements.in +++ b/test_requirements.in @@ -7,3 +7,4 @@ ruff>=0.1.7 ruff-lsp>=0.0.45 # Python 3.8 only supports up to 3.5.0 pre-commit<3.6 +pytest-rerunfailures>=14.0 \ No newline at end of file diff --git a/test_requirements.txt b/test_requirements.txt index 40cdd4d1..6d5a0f49 100644 --- a/test_requirements.txt +++ b/test_requirements.txt @@ -35,6 +35,7 @@ nodeenv==1.8.0 packaging==23.1 # via # pytest + # pytest-rerunfailures # ruff-lsp platformdirs==3.5.1 # via virtualenv @@ -49,11 +50,14 @@ pytest==7.3.1 # -r test_requirements.in # pytest-cov # pytest-randomly + # pytest-rerunfailures # pytest-xdist pytest-cov==4.1.0 # via -r test_requirements.in pytest-randomly==3.12.0 # via -r test_requirements.in +pytest-rerunfailures==14.0 + # via -r test_requirements.in pytest-xdist==3.3.1 # via -r test_requirements.in pyyaml==6.0.1 diff --git a/tests/test-files/test-security-scan.yaml b/tests/test-files/scan/test-security-scan.yaml similarity index 100% rename from tests/test-files/test-security-scan.yaml rename to tests/test-files/scan/test-security-scan.yaml diff --git a/tests/test_buildrunner_files.py b/tests/test_buildrunner_files.py index 0957312b..77e83b93 100644 --- a/tests/test_buildrunner_files.py +++ b/tests/test_buildrunner_files.py @@ -19,7 +19,6 @@ "test-general-buildx.yaml", "test-general.yaml", "test-push-artifact-buildx.yaml", - "test-security-scan.yaml", ] @@ -186,14 +185,11 @@ def test_buildrunner_arm_dir(test_dir: str, file_name, args, exit_code): _test_buildrunner_file(test_dir, file_name, args, exit_code) -@pytest.mark.serial -@pytest.mark.skipif( - "arm64" not in platform.uname().machine, - reason="This test should only be run on arm64 architecture", -) +@pytest.mark.flaky(reruns=2, reruns_delay=1) @pytest.mark.parametrize( "test_dir, file_name, args, exit_code", - _get_test_runs(test_dir=f"{TEST_DIR}/test-files/arm-arch", serial_tests=True), + _get_test_runs(test_dir=f"{TEST_DIR}/test-files/scan", serial_tests=False), ) -def test_serial_buildrunner_arm_dir(test_dir: str, file_name, args, exit_code): +def test_buildrunner_scan_dir(test_dir: str, file_name, args, exit_code): + # The scan tests can be flaky, with errors like "TOOMANYREQUESTS: retry-after: 804.543µs, allowed: 44000/minute" _test_buildrunner_file(test_dir, file_name, args, exit_code)