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)
Ejemplo n.º 2
0
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', ''))
Ejemplo n.º 4
0
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())