]> git.scottworley.com Git - pinch/commitdiff
Appease new stricter minidom typechecks
authorScott Worley <scottworley@scottworley.com>
Fri, 8 Dec 2023 03:37:20 +0000 (19:37 -0800)
committerScott Worley <scottworley@scottworley.com>
Fri, 8 Dec 2023 03:40:01 +0000 (19:40 -0800)
Changelog
pinch.py

index 4dce10e72cb3b371e647cd7207159bbbfca1d3f6..94a5db5ad1d30131fbf50e28e9f6703eacfa92eb 100644 (file)
--- 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
 
 
index 33fd9bfc802d2ee5aa1ab66f365ab5ee921939a6..bda7633e398d12e99f018d07d27fe18d1a8f8294 100644 (file)
--- 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: