import tempfile from unittest.mock import patch from ..base import BaseTest from ...modules import misc class Test(BaseTest): def test_logo(self): self.assertIsNone(misc.logo()) def test_logo_small(self): self.assertIsNone(misc.logo_small()) def test_create_directory_if_missing(self): # When the folder exists with tempfile.TemporaryDirectory() as dir_: self.assertFalse(misc.create_directory_if_missing( dir_)) def test_create_directory_if_missing_2(self): # When the folder is missing with tempfile.TemporaryDirectory() as dir_: self.assertTrue(misc.create_directory_if_missing( dir_ + '/some/dir')) def test_create_directory_if_missing_3(self): # Test invalid path with tempfile.TemporaryDirectory() as dir_: self.assertRaises( SystemExit, misc.create_directory_if_missing, '\0') def test_assess_integrity(self): with tempfile.NamedTemporaryFile() as file_: self.assertRaises(SystemExit, misc.assess_integrity, file_.name, 'non_existent') def test_erase_vault(self): # Create fake files file_a = tempfile.NamedTemporaryFile() file_b = tempfile.NamedTemporaryFile() # Write in the files file_a.write(b'Hello world!') file_a.close() file_b.write(b'Hello world!') file_b.close() with patch('src.modules.misc.confirm', return_value=True): self.assertRaises(SystemExit, misc.erase_vault, file_a.name, file_b.name) with patch('src.modules.misc.confirm', return_value=False): self.assertRaises(SystemExit, misc.erase_vault, file_a.name, file_b.name) def test_erase_vault_2(self): # Test with non existent files # Create fake files file_a = tempfile.NamedTemporaryFile() file_b = tempfile.NamedTemporaryFile() with patch('src.modules.misc.confirm', return_value=True): self.assertRaises(SystemExit, misc.erase_vault, file_a.name + '/non/existent', file_b.name + '/non/existent') with patch('src.modules.misc.confirm', return_value=False): self.assertRaises(SystemExit, misc.erase_vault, file_a.name + '/non/existent', file_b.name + '/non/existent') def test_confirm(self): with patch('builtins.input', return_value='y'): self.assertTrue(misc.confirm()) self.assertTrue(misc.confirm(resp=True)) def test_confirm_2(self): with patch('builtins.input', return_value='n'): self.assertFalse(misc.confirm()) self.assertFalse(misc.confirm(resp=True)) def test_confirm_3(self): # Test empty return with patch('builtins.input', return_value=''): self.assertTrue(misc.confirm(resp=True)) def test_is_unicode_supported(self): self.assertIsInstance(misc.is_unicode_supported(), bool) def test_lock_prefix(self): if misc.is_unicode_supported(): self.assertEqual(misc.lock_prefix(), u'\U0001F511 ') else: self.assertEqual(misc.lock_prefix(), '') def test_clear_screen(self): self.assertTrue(misc.clear_screen())