From a1257c538be63f1c8119e4e2f9116dccfd91d8b7 Mon Sep 17 00:00:00 2001
From: jvoisin <julien.voisin@dustri.org>
Date: Mon, 30 Jul 2018 22:36:36 +0200
Subject: [PATCH] Add some tests about pathological files

---
 tests/test_corrupted_files.py | 35 +++++++++++++++++++++++++++++++++++
 1 file changed, 35 insertions(+)

diff --git a/tests/test_corrupted_files.py b/tests/test_corrupted_files.py
index 20b1efa..928ca1f 100644
--- a/tests/test_corrupted_files.py
+++ b/tests/test_corrupted_files.py
@@ -7,6 +7,41 @@ import os
 from libmat2 import pdf, images, audio, office, parser_factory, torrent, harmless
 
 
+class TestInexistentFiles(unittest.TestCase):
+    def test_ro(self):
+        parser, mimetype = parser_factory.get_parser('/etc/passwd')
+        self.assertEqual(mimetype, None)
+        self.assertEqual(parser, None)
+
+    def test_notaccessible(self):
+        parser, mimetype = parser_factory.get_parser('/etc/shadow')
+        self.assertEqual(mimetype, None)
+        self.assertEqual(parser, None)
+
+    def test_folder(self):
+        parser, mimetype = parser_factory.get_parser('./tests/')
+        self.assertEqual(mimetype, None)
+        self.assertEqual(parser, None)
+
+    def test_inexistingfile(self):
+        parser, mimetype = parser_factory.get_parser('./tests/NONEXISTING_FILE')
+        self.assertEqual(mimetype, None)
+        self.assertEqual(parser, None)
+
+    def test_chardevice(self):
+        parser, mimetype = parser_factory.get_parser('/dev/zero')
+        self.assertEqual(mimetype, None)
+        self.assertEqual(parser, None)
+
+    def test_brokensymlink(self):
+        shutil.copy('./tests/test_libmat2.py', './tests/clean.py')
+        os.symlink('./tests/clean.py', './tests/SYMLINK')
+        os.remove('./tests/clean.py')
+        parser, mimetype = parser_factory.get_parser('./tests/SYMLINK')
+        self.assertEqual(mimetype, None)
+        self.assertEqual(parser, None)
+        os.unlink('./tests/SYMLINK')
+
 class TestUnsupportedFiles(unittest.TestCase):
     def test_pdf(self):
         shutil.copy('./tests/test_libmat2.py', './tests/clean.py')
-- 
GitLab