lyx_mirror/development/autotests/simplehtml_validity.py

40 lines
1.0 KiB
Python

# Stricter version of the export tests: validate the XHTML code produced by
# LyX' lyxhtml output as HTML5. It also validates the CSS and MathML parts.
# Validation errors usually are mistakes in the generator.
#
# Call:
# python simplehtml_validity.py PATH_TO_HTML5_SOURCE
#
# Written with Python 3.8.8.
# Requirements:
# - Python package: html5validator: at least v0.4.2
# - Java runtime engine (JRE): at least v8 (depending on html5validator)
# Run:
# pip install html5validator>=0.4.2
import sys
import os
import html5validator
if len(sys.argv) != 2:
print('Expecting one argument, the path to the LyX-created XHTML file')
sys.exit(-1)
if not os.path.exists(sys.argv[1]):
print('The given path does not point to an existing file')
sys.exit(-1)
xhtml_file_name = sys.argv[1]
xhtml_list = [xhtml_file_name]
validator = html5validator.Validator(format='text')
error_count = validator.validate(xhtml_list)
if error_count == 0:
sys.exit(0)
else:
print('> Found a validation error!')
sys.exit(-2)