Пример #1
0
    def create_fake_config(self):
        """Create a fake configuration instance."""
        from pomito.plugins import PLUGINS

        PLUGINS['dummyUI'] = Mock(spec=UIPlugin)
        PLUGINS['dummyTask'] = MagicMock(spec=TaskPlugin)

        return Configuration(self.config_file, self.config_data)
Пример #2
0
def test_default_settings_config_file_not_exist():
    config = Configuration("dummy_file")

    config.load()

    assert config.session_duration == 25 * 60
    assert config.short_break_duration == 5 * 60
    assert config.long_break_duration == 15 * 60
    assert config.long_break_frequency == 4
Пример #3
0
def test_load_reads_config_data_if_available():
    config = Configuration(None, config_data)

    config.load()

    assert config.session_duration == 10 * 60
    assert config.short_break_duration == 2 * 60
    assert config.long_break_duration == 5 * 60
    assert config.long_break_frequency == 2
Пример #4
0
def test_load_sets_default_ui_plugin_without_ui_plugin_config(config, fs):
    data = copy.deepcopy(config_data)
    del (data["plugins"]["ui"])
    _create_config(config_file, data)

    c = Configuration(config_file)
    c.load()

    assert c.ui_plugin == "qtapp"
Пример #5
0
def test_load_prefers_env_config_file_over_specified(config, fs):
    os.environ["POMITO_CONFIG"] = config_file
    try:
        c = Configuration("/tmp/non_existent.ini")

        c.load()

        assert c.session_duration == 10 * 60
        assert c.get_setting("section1") == [("k1", "v1")]
    finally:
        del os.environ["POMITO_CONFIG"]
Пример #6
0
def test_default_settings_config_file_no_content(fs):
    config_file = "/tmp/empty_file.ini"
    fs.CreateFile(config_file)
    config = Configuration(config_file)

    config.load()

    assert config.session_duration == 25 * 60
    assert config.short_break_duration == 5 * 60
    assert config.long_break_duration == 15 * 60
    assert config.long_break_frequency == 4
    assert config.ui_plugin == "qtapp"
    assert config.task_plugin == "nulltask"
Пример #7
0
def config(fs, mocker):
    # Create a fake config file
    os_module = fake_filesystem.FakeOsModule(fs)
    fileopen = fake_filesystem.FakeFileOpen(fs)

    # Patch filesystem calls with fake implementations
    mocker.patch("os.path", os_module.path)
    mocker.patch("builtins.open", fileopen)

    fs.CreateFile(config_file)
    _create_config(config_file, config_data)

    return Configuration(config_file)
Пример #8
0
def test_load_reads_fractional_config_duration():
    fraction_data = {
        "pomito": {
            "session_duration": 0.12,
            "short_break_duration": 0.21,
            "long_break_duration": 0.53,
            "long_break_frequency": 2
        }
    }
    config = Configuration(None, fraction_data)

    config.load()

    assert config.session_duration == 7
    assert config.short_break_duration == 12
    assert config.long_break_duration == 31
    assert config.long_break_frequency == 2
Пример #9
0
    def __init__(self, config=None, database=None, message_dispatcher=None):
        """Create a Pomito object.

        Arguments:
            config   Configuration  Path to the configuration file
            database peewee.SqliteDatabase database to use for tasks etc.
            message_dispatcher MessageDispatcher message dispatcher instance
        """
        from pomito import pomodoro

        self._config = config
        self._database = database
        self._message_dispatcher = message_dispatcher
        self._threads = {}
        self._hooks = []

        if self._message_dispatcher is None:
            self._message_dispatcher = MessageDispatcher()
        if self._config is None:
            self._config_file = os.path.join(CONFIG_DIR, "config.ini")
            self._config = Configuration(self._config_file)
        self._config.load()

        # Pomodoro service instance. Order of initializations are important
        self.pomodoro_service = pomodoro.Pomodoro(self)

        # Default plugins
        pomito.plugins.initialize(self.pomodoro_service)
        self.ui_plugin = pomito.plugins.get_plugin(self._config.ui_plugin)
        self.task_plugin = pomito.plugins.get_plugin(self._config.task_plugin)

        # Add the plugins to threads list
        self._threads['task_plugin'] = threading.Thread(
            target=self.task_plugin)

        # Default hooks
        from pomito.hooks import activity
        self._hooks.append(activity.ActivityHook(self.pomodoro_service))
        return