class DoctorAction: def __init__(self, logger, config): self.setting_repository = SettingRepository(logger=logger, config=config) self.file_service = FileService(logger=logger, config=config) def fix(self): self.setting_repository.clear_setting_table() self.__print_output('- Clear data base') setting_files = self.file_service.list_all() for setting_file in setting_files: alias = setting_file[:-4] setting = Setting(alias=alias, file=setting_file) self.__print_output('- Insert in data base {}'.format(setting)) self.setting_repository.create(setting) self.setting_repository.create( Setting(alias='default', file='', selected=1)) self.__print_output('- Insert default setting') self.file_service.deactivate_setting() def diagnostic(self): pass # noinspection PyMethodMayBeStatic def __print_output(self, message): print(message)
class UseAction(object): def __init__(self, logger, config): self.setting_repository = SettingRepository(logger=logger, config=config) self.file_service = FileService(logger=logger, config=config) def execute(self, alias): old_setting = self.setting_repository.find_selected() new_setting = self.setting_repository.find_one_by(alias) if new_setting is None: self._print_output('Setting not found!!!') return if old_setting is not None: old_setting.deselect() self.setting_repository.update(old_setting) self.file_service.deactivate_setting() new_setting.select() self.setting_repository.update(new_setting) self.file_service.activate_setting(new_setting) self._print_output('The {} setting is selected'.format( new_setting.alias)) # noinspection PyMethodMayBeStatic def _print_output(self, message): print(message)
def __initialize(args): repository = SettingRepository(logger=args.log, config=args.config) file_manager = FileService(logger=args.log, config=args.config) if not file_manager.directory_exist(): print('... Creating directory ...') file_manager.create_directory() print('... Creating database ...') repository.create_settings_table() if repository.find_one_by('default') is None: print('... Adding default settings ...') repository.create(Setting('default', ''))
class DeleteAction(object): def __init__(self, logger, config): self.setting_repository = SettingRepository(logger=logger, config=config) self.file_service = FileService(logger=logger, config=config) def execute(self, alias): setting = self.setting_repository.find_one_by(alias) if setting is None: self._print_output('Setting not found!!!') return self.setting_repository.delete(setting) self.file_service.remove_setting(setting) self._print_output('The {} setting was deleted'.format(setting.alias)) # noinspection PyMethodMayBeStatic def _print_output(self, message): print(message)
class AddAction(object): def __init__(self, logger, config): self.setting_repository = SettingRepository(logger=logger, config=config) self.file_service = FileService(logger=logger, config=config) def execute(self, alias, file_path): if self.setting_repository.find_one_by(alias): self._print_output('Setting already added') return setting = self.file_service.create_setting(alias, file_path) self.setting_repository.create(setting) self._print_output('The {} setting was created'.format(setting.alias)) # noinspection PyMethodMayBeStatic def _print_output(self, message): print(message)
def __init__(self, logger, config): self.setting_repository = SettingRepository(logger=logger, config=config) self.file_service = FileService(logger=logger, config=config)
class FileServiceTest(unittest.TestCase): def setUp(self): self.service = FileService(Log(False), Config()) @patch('os.listdir') def test_list_all__when_execute__should_return_xml_only(self, listdir): listdir.return_value = ['se1.xml', 'se2.xml', 'msa.db', 'se3.xml'] all_settings = self.service.list_all() self.assertEqual(all_settings, ['se1.xml', 'se2.xml', 'se3.xml']) @patch('os.remove') def test_remove_setting__when_setting_have_file__should_be_removed( self, remove): setting = Setting('alias', 'file') self.service.remove_setting(setting) remove.assert_called() @patch('os.remove') def test_remove_setting__when_setting_have_not_file__should_be_removed( self, remove): setting = Setting('alias', '') self.service.remove_setting(setting) remove.assert_not_called() @patch('os.path.exists') def test_directory_exist__when_os_path_exists__should_return_true( self, exists): exists.return_value = True result = self.service.directory_exist() self.assertTrue(result) @patch('os.path.exists') def test_directory_exist__when_os_path_not_exists__should_return_false( self, exists): exists.return_value = False result = self.service.directory_exist() self.assertFalse(result) @patch('os.mkdir') def test_create_directory__when_executed__should_call_mkdir(self, mkdir): self.service.create_directory() mkdir.assert_called() @patch('os.path.exists') @patch('os.remove') def test_deactivate_setting__when_setting_not_exists__should_not_call_remove( self, mock_remove, mock_exists): mock_exists.return_value = False self.service.deactivate_setting() mock_remove.assert_not_called() @patch('os.path.exists') @patch('os.remove') def test_deactivate_setting__when_setting_exists__should_call_remove( self, mock_remove, mock_exists): mock_exists.return_value = True self.service.deactivate_setting() mock_remove.assert_called()
def setUp(self): self.service = FileService(Log(False), Config())