From 914b2de6f5a6434da910b401faadea4a81446f91 Mon Sep 17 00:00:00 2001
From: jvoisin <julien.voisin@dustri.org>
Date: Fri, 8 Feb 2019 22:56:07 +0100
Subject: [PATCH] Bump coverage

---
 libmat2/html.py               |  4 +++-
 tests/data/dirty.html         |  1 +
 tests/test_corrupted_files.py | 17 +++++++++++++++++
 3 files changed, 21 insertions(+), 1 deletion(-)

diff --git a/libmat2/html.py b/libmat2/html.py
index 31fb625..d0e9a2b 100644
--- a/libmat2/html.py
+++ b/libmat2/html.py
@@ -36,7 +36,9 @@ class _HTMLParser(parser.HTMLParser):
         self.__validation_queue.append(tag)
 
     def handle_endtag(self, tag: str):
-        if tag != self.__validation_queue.pop():
+        if not self.__validation_queue:
+            raise ValueError
+        elif tag != self.__validation_queue.pop():
             raise ValueError
         # There is no `get_endtag_text()` method :/
         self.__textrepr += '</' + tag + '>\n'
diff --git a/tests/data/dirty.html b/tests/data/dirty.html
index 563888f..1aa1723 100644
--- a/tests/data/dirty.html
+++ b/tests/data/dirty.html
@@ -8,6 +8,7 @@
 		<h1>Hello</h1>
 		I am a web page.
 		Please <b>love</b> me.
+		Here, have a pretty picture: <img src='dirty.jpg' alt='a pretty picture'/>
 	</p>
 </body>
 </html>
diff --git a/tests/test_corrupted_files.py b/tests/test_corrupted_files.py
index 2073d8c..8728cb2 100644
--- a/tests/test_corrupted_files.py
+++ b/tests/test_corrupted_files.py
@@ -252,3 +252,20 @@ class TestCorruptedFiles(unittest.TestCase):
         os.remove('./tests/data/clean.html')
         os.remove('./tests/data/clean.cleaned.html')
 
+        with open('./tests/data/clean.html', 'w') as f:
+            f.write('</close>')
+        with self.assertRaises(ValueError):
+            html.HTMLParser('./tests/data/clean.html')
+        os.remove('./tests/data/clean.html')
+
+        with open('./tests/data/clean.html', 'w') as f:
+            f.write('<notclosed>')
+        p = html.HTMLParser('./tests/data/clean.html')
+        with self.assertRaises(ValueError):
+            p.get_meta()
+        p = html.HTMLParser('./tests/data/clean.html')
+        with self.assertRaises(ValueError):
+            p.remove_all()
+        os.remove('./tests/data/clean.html')
+
+
-- 
GitLab