From e290d1260eb7199907d41d0c8c2f4f9af6a05b62 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9dric=20Bonhomme?= Date: Sun, 13 Nov 2022 23:28:32 +0100 Subject: [PATCH] chg: [flake] Addressed some flake and mypy issues. --- stegano/__init__.py | 2 ++ stegano/tools.py | 6 +++--- tests/test_exifHeader.py | 21 +++++++++------------ tests/test_red.py | 6 +++--- tests/test_steganalysis.py | 4 ---- tests/test_tools.py | 2 -- 6 files changed, 17 insertions(+), 24 deletions(-) diff --git a/stegano/__init__.py b/stegano/__init__.py index 4bca0e9..2cd4b90 100755 --- a/stegano/__init__.py +++ b/stegano/__init__.py @@ -6,3 +6,5 @@ from . import exifHeader from . import lsb from . import steganalysis + +__all__ = ["red", "exifHeader", "lsb", "steganalysis"] diff --git a/stegano/tools.py b/stegano/tools.py index 78fb9f3..7899cc4 100755 --- a/stegano/tools.py +++ b/stegano/tools.py @@ -183,8 +183,8 @@ class Revealer: self.encoded_image = open_image(encoded_image) self._encoding_length = ENCODINGS[encoding] self._buff, self._count = 0, 0 - self._bitab = [] - self._limit = None + self._bitab: List[str] = [] + self._limit: Union[None, int] = None self.secret_message = "" def decode_pixel(self, coordinate: tuple): @@ -209,7 +209,7 @@ class Revealer: raise IndexError("Impossible to detect message.") if len(self._bitab) - len(str(self._limit)) - 1 == self._limit: - self.secret_message = "".join(self._bitab)[len(str(self._limit)) + 1 :] + self.secret_message = "".join(self._bitab)[len(str(self._limit)) + 1:] self.encoded_image.close() return True diff --git a/tests/test_exifHeader.py b/tests/test_exifHeader.py index 196d168..5880f93 100644 --- a/tests/test_exifHeader.py +++ b/tests/test_exifHeader.py @@ -35,10 +35,9 @@ from stegano import exifHeader class TestEXIFHeader(unittest.TestCase): def test_hide_empty_message(self): """Test hiding the empty string.""" - secret = exifHeader.hide( + exifHeader.hide( "./tests/sample-files/20160505T130442.jpg", "./image.jpg", secret_message="" ) - # secret.save(""./image.png"") clear_message = exifHeader.reveal("./image.jpg") @@ -48,7 +47,7 @@ class TestEXIFHeader(unittest.TestCase): messages_to_hide = ["a", "foo", "Hello World!", ":Python:"] for message in messages_to_hide: - secret = exifHeader.hide( + exifHeader.hide( "./tests/sample-files/20160505T130442.jpg", "./image.jpg", secret_message=message, @@ -56,13 +55,12 @@ class TestEXIFHeader(unittest.TestCase): clear_message = exifHeader.reveal("./image.jpg") - self.assertEqual(message, message) + self.assertEqual(message, clear_message.decode()) def test_with_image_without_exif_data(self): - secret = exifHeader.hide( + exifHeader.hide( "./tests/sample-files/Lenna.jpg", "./image.jpg", secret_message="" ) - # secret.save(""./image.png"") clear_message = exifHeader.reveal("./image.jpg") @@ -72,7 +70,7 @@ class TestEXIFHeader(unittest.TestCase): text_file_to_hide = "./tests/sample-files/lorem_ipsum.txt" with open(text_file_to_hide, "rb") as f: message = f.read() - secret = exifHeader.hide( + exifHeader.hide( "./tests/sample-files/20160505T130442.jpg", img_enc="./image.jpg", secret_file=text_file_to_hide, @@ -82,13 +80,12 @@ class TestEXIFHeader(unittest.TestCase): self.assertEqual(message, clear_message) def test_with_png_image(self): - secret = exifHeader.hide( + exifHeader.hide( "./tests/sample-files/Lenna.png", "./image.png", secret_message="Secret" ) - # secret.save(""./image.png"") with self.assertRaises(ValueError): - clear_message = exifHeader.reveal("./image.png") + exifHeader.reveal("./image.png") def test_with_bytes(self): outputBytes = io.BytesIO() @@ -102,11 +99,11 @@ class TestEXIFHeader(unittest.TestCase): def tearDown(self): try: os.unlink("./image.jpg") - except: + except Exception: pass try: os.unlink("./image.png") - except: + except Exception: pass diff --git a/tests/test_red.py b/tests/test_red.py index 4d9e372..3171fa4 100644 --- a/tests/test_red.py +++ b/tests/test_red.py @@ -36,7 +36,7 @@ class TestRed(unittest.TestCase): Test hiding the empty string. """ with self.assertRaises(AssertionError): - secret = red.hide("./tests/sample-files/Lenna.png", "") + red.hide("./tests/sample-files/Lenna.png", "") def test_hide_and_reveal(self): messages_to_hide = ["a", "foo", "Hello World!", ":Python:"] @@ -47,7 +47,7 @@ class TestRed(unittest.TestCase): clear_message = red.reveal("./image.png") - self.assertEqual(message, message) + self.assertEqual(message, clear_message) def test_with_too_long_message(self): with open("./tests/sample-files/lorem_ipsum.txt") as f: @@ -58,7 +58,7 @@ class TestRed(unittest.TestCase): def tearDown(self): try: os.unlink("./image.png") - except: + except Exception: pass diff --git a/tests/test_steganalysis.py b/tests/test_steganalysis.py index 87743b6..4d2875c 100644 --- a/tests/test_steganalysis.py +++ b/tests/test_steganalysis.py @@ -25,11 +25,7 @@ __date__ = "$Date: 2019/06/06 $" __revision__ = "$Date: 2019/06/06 $" __license__ = "GPLv3" -import io -import os -import base64 import unittest -from unittest.mock import patch from stegano import lsb from stegano.steganalysis import parity, statistics diff --git a/tests/test_tools.py b/tests/test_tools.py index de40d1a..4899246 100644 --- a/tests/test_tools.py +++ b/tests/test_tools.py @@ -25,9 +25,7 @@ __date__ = "$Date: 2017/02/22 $" __revision__ = "$Date: 2017/02/22 $" __license__ = "GPLv3" -import os import unittest -import io from stegano import tools