[IMP] tests: check resource file referenced

X-original-commit: 3f1f02200b
Part-of: odoo/documentation#12082
Signed-off-by: Antoine Vandevenne (anv) <anv@odoo.com>
Signed-off-by: Samuel Lieber (sali) <sali@odoo.com>
This commit is contained in:
samueljlieber 2025-02-12 18:27:25 +00:00
parent ace11b6980
commit 9b8723e544
2 changed files with 29 additions and 5 deletions

View File

@ -57,6 +57,27 @@ def check_resource_file_name(file_path):
'resource-file-name'
)
def check_resource_file_referenced(file, options=None):
""" Check that resource files are referenced in at least one RST file. """
resource_file = Path(file)
resource_folder = resource_file.parent
rst_file = resource_folder.with_suffix('.rst')
if rst_file.exists():
if resource_file.name not in rst_file.read_text():
log_error(
file,
0,
f"the resource file is not referenced in {rst_file}",
"resource-file-referenced",
)
else:
log_error(
rst_file,
0,
f"resource folder name '{resource_folder.name}' does not match an rst file name.",
'resource-folder-match',
)
@sphinxlint.checker('')
def check_file_extensions(file, lines, options=None):
""" Check that there is no file without extension. """

View File

@ -18,15 +18,14 @@ CUSTOM_RST_DIRECTIVES = [
]
ADDITIONAL_CHECKERS = [
checkers.resource_files.check_image_size,
checkers.resource_files.check_resource_file_name,
checkers.resource_files.check_resource_file_referenced
]
def run_additional_checks(argv=None):
_enabled_checkers, args = sphinxlint.parse_args(argv)
for path in chain.from_iterable(sphinxlint.walk(path, args.ignore) for path in args.paths):
if not path.endswith('.rst'):
if path.startswith('content') and not path.endswith('.rst'):
for checker in ADDITIONAL_CHECKERS:
checker(path)
@ -88,6 +87,10 @@ if __name__ == '__main__':
if os.getenv('REVIEW') == '1': # Enable checkers for `make review`.
setattr(sphinxlint.check_line_too_long, 'enabled', True)
setattr(checkers.rst_style.check_early_line_breaks, 'enabled', True)
ADDITIONAL_CHECKERS.extend([checkers.resource_files.check_image_color_depth])
run_additional_checks()
ADDITIONAL_CHECKERS.extend([
checkers.resource_files.check_image_size,
checkers.resource_files.check_image_color_depth,
checkers.resource_files.check_resource_file_name,
])
run_additional_checks()
sys.exit(sphinxlint.main())