#!/usr/bin/env python # -*- coding: utf-8 -*- # Stegano - Stegano is a pure Python steganography module. # Copyright (C) 2010-2022 Cédric Bonhomme - https://www.cedricbonhomme.org # # For more information : https://git.sr.ht/~cedric/stegano # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see __author__ = "Cedric Bonhomme" __version__ = "$Revision: 0.1 $" __date__ = "$Date: 2017/02/22 $" __revision__ = "$Date: 2017/02/22 $" __license__ = "GPLv3" import os import unittest import io from stegano import tools class TestTools(unittest.TestCase): def test_a2bits(self): bits = tools.a2bits("Hello World!") self.assertEqual( bits, "010010000110010101101100011011000110111100100000010101110110111101110010011011000110010000100001", ) def test_a2bits_list_UTF8(self): list_of_bits = tools.a2bits_list("Hello World!") self.assertEqual( list_of_bits, [ "01001000", "01100101", "01101100", "01101100", "01101111", "00100000", "01010111", "01101111", "01110010", "01101100", "01100100", "00100001", ], ) def test_a2bits_list_UTF32LE(self): list_of_bits = tools.a2bits_list("Hello World!", "UTF-32LE") self.assertEqual( list_of_bits, [ "00000000000000000000000001001000", "00000000000000000000000001100101", "00000000000000000000000001101100", "00000000000000000000000001101100", "00000000000000000000000001101111", "00000000000000000000000000100000", "00000000000000000000000001010111", "00000000000000000000000001101111", "00000000000000000000000001110010", "00000000000000000000000001101100", "00000000000000000000000001100100", "00000000000000000000000000100001", ], ) def test_n_at_a_time(self): result = tools.n_at_a_time([1, 2, 3, 4, 5], 2, "X") self.assertEqual(list(result), [(1, 2), (3, 4), (5, "X")]) def test_binary2base64(self): with open("./tests/expected-results/binary2base64", "r") as f: expected_value = f.read() value = tools.binary2base64("tests/sample-files/free-software-song.ogg") self.assertEqual(expected_value, value)