Skip to content
Snippets Groups Projects
Commit f49aa5ca authored by Julien (jvoisin) Voisin's avatar Julien (jvoisin) Voisin
Browse files

Achieve 100% coverage!

parent 52a2c800
No related branches found
No related tags found
No related merge requests found
......@@ -22,8 +22,7 @@ def _parse_xml(full_path: str):
def parse_map(f): # etree support for ns is a bit rough
ns_map = dict()
for event, (k, v) in ET.iterparse(f, ("start-ns", )):
if event == "start-ns":
ns_map[k] = v
ns_map[k] = v
return ns_map
ns = parse_map(full_path)
......@@ -166,7 +165,7 @@ class MSOfficeParser(ArchiveBasedAbstractParser):
elements = list()
for element in tree.iterfind('.//w:ins', ns):
for position, item in enumerate(tree.iter()):
for position, item in enumerate(tree.iter()): #pragma: no cover
if item == element:
for children in element.iterfind('./*'):
elements.append((element, position, children))
......
......@@ -69,9 +69,11 @@ class _BencodeHandler(object):
@staticmethod
def __decode_string(s: bytes) -> Tuple[bytes, bytes]:
colon = s.index(b':')
str_len = int(s[:colon])
if s[0] == '0' and colon != 1:
# FIXME Python3 is broken here, the call to `ord` shouldn't be needed,
# but apparently it is. This is utterly idiotic.
if (s[0] == ord('0') or s[0] == '0') and colon != 1:
raise ValueError
str_len = int(s[:colon])
s = s[1:]
return s[colon:colon+str_len], s[colon+str_len:]
......
......@@ -80,7 +80,7 @@ class TestCorruptedFiles(unittest.TestCase):
torrent.TorrentParser('./tests/data/clean.torrent')
with open("./tests/data/clean.torrent", "w") as f:
f.write("d01:AAAAAAAAA")
f.write("01:AAAAAAAAA")
with self.assertRaises(ValueError):
torrent.TorrentParser('./tests/data/clean.torrent')
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment