aurweb/aurweb/testing/html.py
Kevin Morris 27fbda5e7b
feat(FastAPI): add get_(errors|successes) testing HTML helpers
These functions will allow us to more easily check errors or success
messages when testing routes.

Signed-off-by: Kevin Morris <kevr@0cost.org>
2021-10-09 22:04:48 -07:00

25 lines
604 B
Python

from io import StringIO
from typing import List
from lxml import etree
parser = etree.HTMLParser()
def parse_root(html: str) -> etree.Element:
""" Parse an lxml.etree.ElementTree root from html content.
:param html: HTML markup
:return: etree.Element
"""
return etree.parse(StringIO(html), parser)
def get_errors(content: str) -> List[etree._Element]:
root = parse_root(content)
return root.xpath('//ul[@class="errorlist"]/li')
def get_successes(content: str) -> List[etree._Element]:
root = parse_root(content)
return root.xpath('//ul[@class="success"]/li')