def METHOD_NAME(test_name):
    """Parse the given HTML file."""
    file_path = (pathlib.Path(__file__).parent.resolve()
                 / 'data' / 'hints' / 'html' / test_name)
    with file_path.open('r', encoding='utf-8') as html:
        soup = bs4.BeautifulSoup(html, 'html.parser')
    comment = str(soup.find(string=lambda text: isinstance(text, bs4.Comment)))
    if comment is None:
        raise InvalidFile(test_name, "no comment found")
    data = utils.yaml_load(comment)
    if not isinstance(data, dict):
        raise InvalidFile(test_name, "expected yaml dict but got {}".format(
            type(data).__name__))
    allowed_keys = {'target', 'qtwebengine_todo'}
    if not set(data.keys()).issubset(allowed_keys):
        raise InvalidFile(test_name, "expected keys {} but found {}".format(
            ', '.join(allowed_keys),
            ', '.join(set(data.keys()))))
    if 'target' not in data:
        raise InvalidFile(test_name, "'target' key not found")
    qtwebengine_todo = data.get('qtwebengine_todo', None)
    return ParsedFile(target=data['target'], qtwebengine_todo=qtwebengine_todo)