From: Scott Worley Date: Fri, 8 Dec 2023 03:37:20 +0000 (-0800) Subject: Appease new stricter minidom typechecks X-Git-Tag: v3.0.13~1 X-Git-Url: http://git.scottworley.com/pinch/commitdiff_plain/7408d43db1bf63f41e705e5ea3fbed1275be01b8 Appease new stricter minidom typechecks --- diff --git a/Changelog b/Changelog index 4dce10e..94a5db5 100644 --- a/Changelog +++ b/Changelog @@ -1,5 +1,6 @@ ## [Unreleased] - Fixed nested-git issues in pre-commit hook +- Adapt to new, stricter minidom type checks - Cleaned up changelog diff --git a/pinch.py b/pinch.py index 33fd9bf..bda7633 100644 --- a/pinch.py +++ b/pinch.py @@ -266,15 +266,29 @@ def parse_channel(v: Verification, channel_html: str) \ d = xml.dom.minidom.parseString(channel_html) v.ok() - v.status('Extracting release name:') - title_name = d.getElementsByTagName( - 'title')[0].firstChild.nodeValue.split()[2] - h1_name = d.getElementsByTagName('h1')[0].firstChild.nodeValue.split()[2] - v.status(title_name) - v.result(title_name == h1_name) - - v.status('Extracting git commit:') + v.status('Finding release name (1)') + title = d.getElementsByTagName('title')[0].firstChild + v.result(isinstance(title, xml.dom.minidom.CharacterData)) + assert isinstance(title, xml.dom.minidom.CharacterData) + release_name = title.nodeValue.split()[2] + v.status('Finding release name (2)') + h1 = d.getElementsByTagName('h1')[0].firstChild + v.result(isinstance(h1, xml.dom.minidom.CharacterData)) + assert isinstance(h1, xml.dom.minidom.CharacterData) + v.status('Verifying release name:') + v.status(release_name) + v.result(release_name == h1.nodeValue.split()[2]) + + v.status('Finding git commit') git_commit_node = d.getElementsByTagName('tt')[0] + v.result( + isinstance( + git_commit_node.firstChild, + xml.dom.minidom.CharacterData)) + assert isinstance( + git_commit_node.firstChild, + xml.dom.minidom.CharacterData) + v.status('Extracting git commit:') git_revision = git_commit_node.firstChild.nodeValue v.status(git_revision) v.ok() @@ -290,7 +304,7 @@ def parse_channel(v: Verification, channel_html: str) \ digest = Digest16(row.childNodes[2].firstChild.firstChild.nodeValue) table[name] = ChannelTableEntry(url=url, digest=digest, size=size) v.ok() - return table, GitPin(release_name=title_name, git_revision=git_revision) + return table, GitPin(release_name=release_name, git_revision=git_revision) def digest_string(s: bytes) -> Digest16: