import tempfile from pathlib import Path from unittest.mock import patch import os import uuid from .base import BaseTest from .. import vault from ..modules import misc from ..modules.carry import global_scope from ..lib.Config import Config from ..views import menu, setup class Test(BaseTest): def test_get_vault_path(self): self.assertEqual(vault.get_vault_path('/some/path'), '/some/path') def test_get_vault_path_2(self): self.assertEqual(vault.get_vault_path(), os.path.expanduser('~') + '/.vault/.secure.db') def test_get_config_path(self): self.assertEqual(vault.get_config_path('/some/path'), '/some/path') def test_get_config_path_2(self): self.assertEqual(vault.get_config_path(), os.path.expanduser('~') + '/.vault/.config') def test_check_directory(self): self.assertIsInstance(vault.check_directory( os.path.expanduser('~') + '/.vault/.secure.db', os.path.expanduser('~') + '/.vault/.config'), bool) def test_check_directory_2(self): # Set temporary files file_config = tempfile.NamedTemporaryFile() file_vault = tempfile.NamedTemporaryFile() self.assertIsNone(vault.check_directory( file_vault.name, file_config.name)) def test_config_update(self): self.assertTrue(vault.config_update(clipboard_TTL='5')) def test_config_update_2(self): self.assertTrue(vault.config_update(auto_lock_TTL='5')) def test_config_update_3(self): self.assertTrue(vault.config_update(hide_secret_TTL='5')) @patch.object(menu, 'menu') def test_initialize(self, patched): # Test unlock patched.return_value = None # Try to unlock with the master key previously chosen with patch('getpass.getpass', return_value=self.secret_key): vault.initialize( global_scope['db_file'], self.conf_path.name + '/config') @patch.object(vault, 'erase_vault') def test_initialize_2(self, patched): # Test erase patched.return_value = 'patched' # Set temporary files file_vault = tempfile.NamedTemporaryFile(delete=False) Path(file_vault.name).touch() self.assertRaises(SystemExit, vault.initialize, file_vault.name, self.conf_path.name + '/config', erase=True) def test_initialize_3(self): # Test re-keyi # Set temporary files file_vault = tempfile.NamedTemporaryFile(delete=False) Path(file_vault.name).touch() self.assertRaises(SystemExit, vault.initialize, file_vault.name, self.conf_path.name + '/config', rekey_vault=True) @patch.object(vault, 'import_') def test_initialize_4(self, patched): # Test import patched.return_value = 'patched' # Set temporary files file_vault = tempfile.NamedTemporaryFile(delete=False) Path(file_vault.name).touch() self.assertRaises(SystemExit, vault.initialize, file_vault.name, self.conf_path.name + '/config', import_items=True) @patch.object(vault, 'export_') def test_initialize_5(self, patched): # Test export patched.return_value = 'patched' # Set temporary files file_vault = tempfile.NamedTemporaryFile(delete=False) Path(file_vault.name).touch() self.assertRaises(SystemExit, vault.initialize, file_vault.name, self.conf_path.name + '/config', export=True) @patch.object(vault.setup, 'initialize') @patch.object(vault, 'unlock') def test_initialize_6(self, patched, patched2): # Test export patched.return_value = 'patched' patched2.return_value = 'patched' # Set temporary files dir_ = tempfile.TemporaryDirectory() self.assertIsNone(vault.initialize(dir_.name + '/some/new/file', self.conf_path.name + '/config'))