From 74055a9f31b371b32d52e70fc92d9b5baec53d8f Mon Sep 17 00:00:00 2001 From: Abdessamad Derraz <3028866+Abdess@users.noreply.github.com> Date: Fri, 6 Nov 2026 03:27:36 +0100 Subject: [PATCH] fix: name a missing data directory registry --- scripts/check_buildbot_system.py | 6 +++++- scripts/refresh_data_dirs.py | 4 ++-- tests/test_system_selection.py | 6 ++++++ 3 files changed, 13 insertions(+), 3 deletions(-) diff --git a/scripts/check_buildbot_system.py b/scripts/check_buildbot_system.py index 9035aeda0..d25acadf3 100644 --- a/scripts/check_buildbot_system.py +++ b/scripts/check_buildbot_system.py @@ -15,13 +15,14 @@ from __future__ import annotations import argparse import json import logging +import os import subprocess import sys import urllib.error import urllib.parse import urllib.request from pathlib import Path -from common import yaml_load +from common import InputMissing, yaml_load log = logging.getLogger(__name__) @@ -194,6 +195,9 @@ def main() -> None: help="the data directory registry to check (default: %(default)s)", ) args = parser.parse_args() + # Read after the buildbot answered, a mistyped path ended on a trace. + if not os.path.isfile(args.registry): + raise InputMissing(f"Registry not found: {args.registry}") report = check(args.registry) diff --git a/scripts/refresh_data_dirs.py b/scripts/refresh_data_dirs.py index 64568a753..25d820f08 100644 --- a/scripts/refresh_data_dirs.py +++ b/scripts/refresh_data_dirs.py @@ -27,7 +27,7 @@ import zipfile from collections.abc import Iterator from pathlib import Path from artifacts import file_lock as _file_lock, set_plain_mode -from common import github_token, platform_arg, require_platform, suggest_names, yaml_load +from common import InputMissing, github_token, platform_arg, require_platform, suggest_names, yaml_load try: import yaml @@ -53,7 +53,7 @@ def load_registry(registry_path: str = DEFAULT_REGISTRY) -> dict[str, dict]: raise ImportError("PyYAML required: pip install pyyaml") path = Path(registry_path) if not path.exists(): - raise FileNotFoundError(f"Registry not found: {registry_path}") + raise InputMissing(f"Registry not found: {registry_path}") with open(path) as f: data = yaml_load(f) or {} return data.get("data_directories", {}) diff --git a/tests/test_system_selection.py b/tests/test_system_selection.py index 4811bcf25..48ad9eefa 100644 --- a/tests/test_system_selection.py +++ b/tests/test_system_selection.py @@ -397,6 +397,12 @@ class AMissingInputFileIsNamed(unittest.TestCase): "ERROR: --from-md5-file nosuch.txt: No such file or directory", ) + def test_a_missing_data_directory_registry_is_named(self): + for argv in (["scripts/refresh_data_dirs.py", "--registry", "nosuch.yml", "--dry-run"], + ["scripts/check_buildbot_system.py", "--registry", "nosuch.yml"]): + with self.subTest(script=argv[0]): + self._refused(argv, "ERROR: Registry not found: nosuch.yml") + class StrictVerifyFailsOnACriticalMiss(unittest.TestCase): """verify exited 0 with a required file missing on an md5 platform, so