From: Scott Worley Date: Sun, 14 Dec 2025 10:12:20 +0000 (-0800) Subject: Assert correct HTML document structure X-Git-Tag: v3.3.2~1 X-Git-Url: http://git.scottworley.com/pinch/commitdiff_plain/ba536d80cbc447f80afe10d06e6545e6c31c592f Assert correct HTML document structure 25.11's typeshed has better dom type info. --- diff --git a/pinch.py b/pinch.py index 989e08f..c101dc3 100644 --- a/pinch.py +++ b/pinch.py @@ -293,14 +293,25 @@ def parse_channel(v: Verification, channel_html: str) \ v.status(git_revision) v.ok() v.status('Verifying git commit label') + assert git_commit_node.previousSibling is not None v.result(git_commit_node.previousSibling.nodeValue == 'Git commit ') v.status('Parsing table') table: Dict[str, ChannelTableEntry] = {} for row in d.getElementsByTagName('tr')[1:]: + assert isinstance( + row.childNodes[0].firstChild, xml.dom.minidom.Element) + assert isinstance( + row.childNodes[0].firstChild.firstChild, xml.dom.minidom.Text) name = row.childNodes[0].firstChild.firstChild.nodeValue + assert name is not None url = row.childNodes[0].firstChild.getAttribute('href') + assert row.childNodes[1].firstChild is not None + assert row.childNodes[1].firstChild.nodeValue is not None size = int(row.childNodes[1].firstChild.nodeValue) + assert row.childNodes[2].firstChild is not None + assert row.childNodes[2].firstChild.firstChild is not None + assert row.childNodes[2].firstChild.firstChild.nodeValue is not None digest = Digest16(row.childNodes[2].firstChild.firstChild.nodeValue) table[name] = ChannelTableEntry(url=url, digest=digest, size=size) v.ok()