diff --git a/CHANGELOG.md b/CHANGELOG.md index e2c767d..e568e64 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,7 +1,6 @@ # 0.6.1 * Consolidate some code related to opening documents using the Documents feature. - * Ensure time log dialog gets closed when Pomodoro Timer finishes and user logs time. * More code coverage # 0.6.0 diff --git a/bouquin/pomodoro_timer.py b/bouquin/pomodoro_timer.py index 445120c..aa83566 100644 --- a/bouquin/pomodoro_timer.py +++ b/bouquin/pomodoro_timer.py @@ -139,12 +139,7 @@ class PomodoroManager: # Open time log dialog dlg = TimeLogDialog( - self._db, - date_iso, - self._parent, - True, - themes=self._parent.themes, - close_after_add=True, + self._db, date_iso, self._parent, True, themes=self._parent.themes ) # Pre-fill the hours diff --git a/tests/test_main_window.py b/tests/test_main_window.py index 6869cf9..bfe0972 100644 --- a/tests/test_main_window.py +++ b/tests/test_main_window.py @@ -1861,76 +1861,44 @@ def test_main_window_update_tag_views_no_tags_widget( assert True -def test_main_window_without_tags(qtbot, app, tmp_db_cfg): - """Test main window when tags feature is disabled.""" +def test_main_window_with_tags_disabled(qtbot, app, tmp_path): + """Test MainWindow with tags disabled in config - covers line 319""" + db_path = tmp_path / "notebook.db" s = get_settings() - s.setValue("db/default_db", str(tmp_db_cfg.path)) - s.setValue("db/key", tmp_db_cfg.key) + s.setValue("db/default_db", str(db_path)) + s.setValue("db/key", "test-key") s.setValue("ui/idle_minutes", 0) s.setValue("ui/theme", "light") - s.setValue("ui/move_todos", True) - s.setValue("ui/tags", False) # Disabled + s.setValue("ui/tags", False) # Disable tags s.setValue("ui/time_log", True) - s.setValue("ui/reminders", True) - s.setValue("ui/locale", "en") - s.setValue("ui/font_size", 11) themes = ThemeManager(app, ThemeConfig(theme=Theme.LIGHT)) - window = MainWindow(themes=themes) - qtbot.addWidget(window) - window.show() + w = MainWindow(themes=themes) + qtbot.addWidget(w) + w.show() - # Verify tags widget is hidden - assert window.tags.isHidden() + # Tags widget should be hidden + assert w.tags.isHidden() -def test_main_window_without_time_log(qtbot, app, tmp_db_cfg): - """Test main window when time_log feature is disabled.""" +def test_main_window_with_time_log_disabled(qtbot, app, tmp_path): + """Test MainWindow with time_log disabled in config - covers line 321""" + db_path = tmp_path / "notebook.db" s = get_settings() - s.setValue("db/default_db", str(tmp_db_cfg.path)) - s.setValue("db/key", tmp_db_cfg.key) + s.setValue("db/default_db", str(db_path)) + s.setValue("db/key", "test-key") s.setValue("ui/idle_minutes", 0) s.setValue("ui/theme", "light") - s.setValue("ui/move_todos", True) s.setValue("ui/tags", True) - s.setValue("ui/time_log", False) # Disabled - s.setValue("ui/reminders", True) - s.setValue("ui/locale", "en") - s.setValue("ui/font_size", 11) + s.setValue("ui/time_log", False) # Disable time log themes = ThemeManager(app, ThemeConfig(theme=Theme.LIGHT)) - window = MainWindow(themes=themes) - qtbot.addWidget(window) - window.show() + w = MainWindow(themes=themes) + qtbot.addWidget(w) + w.show() - # Verify time_log widget is hidden - assert window.time_log.isHidden() - assert not window.toolBar.actTimer.isVisible() - - -def test_main_window_without_documents(qtbot, app, tmp_db_cfg): - """Test main window when documents feature is disabled.""" - s = get_settings() - s.setValue("db/default_db", str(tmp_db_cfg.path)) - s.setValue("db/key", tmp_db_cfg.key) - s.setValue("ui/idle_minutes", 0) - s.setValue("ui/theme", "light") - s.setValue("ui/move_todos", True) - s.setValue("ui/tags", True) - s.setValue("ui/time_log", True) - s.setValue("ui/reminders", True) - s.setValue("ui/documents", False) # Disabled - s.setValue("ui/locale", "en") - s.setValue("ui/font_size", 11) - - themes = ThemeManager(app, ThemeConfig(theme=Theme.LIGHT)) - window = MainWindow(themes=themes) - qtbot.addWidget(window) - window.show() - - # Verify documents widget is hidden - assert window.todays_documents.isHidden() - assert not window.toolBar.actDocuments.isVisible() + # Time log widget should be hidden + assert w.time_log.isHidden() def test_export_csv_format(qtbot, app, tmp_path, monkeypatch): @@ -2193,6 +2161,53 @@ def test_main_window_without_reminders(qtbot, app, tmp_db_cfg): assert not window.toolBar.actAlarm.isVisible() +def test_main_window_without_time_log(qtbot, app, tmp_db_cfg): + """Test main window when time_log feature is disabled.""" + s = get_settings() + s.setValue("db/default_db", str(tmp_db_cfg.path)) + s.setValue("db/key", tmp_db_cfg.key) + s.setValue("ui/idle_minutes", 0) + s.setValue("ui/theme", "light") + s.setValue("ui/move_todos", True) + s.setValue("ui/tags", True) + s.setValue("ui/time_log", False) # Disabled + s.setValue("ui/reminders", True) + s.setValue("ui/locale", "en") + s.setValue("ui/font_size", 11) + + themes = ThemeManager(app, ThemeConfig(theme=Theme.LIGHT)) + window = MainWindow(themes=themes) + qtbot.addWidget(window) + window.show() + + # Verify time_log widget is hidden + assert window.time_log.isHidden() + assert not window.toolBar.actTimer.isVisible() + + +def test_main_window_without_tags(qtbot, app, tmp_db_cfg): + """Test main window when tags feature is disabled.""" + s = get_settings() + s.setValue("db/default_db", str(tmp_db_cfg.path)) + s.setValue("db/key", tmp_db_cfg.key) + s.setValue("ui/idle_minutes", 0) + s.setValue("ui/theme", "light") + s.setValue("ui/move_todos", True) + s.setValue("ui/tags", False) # Disabled + s.setValue("ui/time_log", True) + s.setValue("ui/reminders", True) + s.setValue("ui/locale", "en") + s.setValue("ui/font_size", 11) + + themes = ThemeManager(app, ThemeConfig(theme=Theme.LIGHT)) + window = MainWindow(themes=themes) + qtbot.addWidget(window) + window.show() + + # Verify tags widget is hidden + assert window.tags.isHidden() + + def test_close_current_tab(qtbot, app, tmp_db_cfg, fresh_db): """Test closing the current tab via _close_current_tab.""" s = get_settings()