]> git.scottworley.com Git - pinch/blobdiff - pinch.py
Un-deprecate: This continues being useful
[pinch] / pinch.py
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: