Compare commits

...

2 commits

Author SHA1 Message Date
bffa615c13
More code coverage / remove duplicate tests
All checks were successful
CI / test (push) Successful in 5m56s
Lint / test (push) Successful in 33s
Trivy / test (push) Successful in 22s
2025-12-02 14:58:57 +11:00
605444b149
Ensure time log dialog gets closed when Pomodoro Timer finishes and user logs time. 2025-12-02 14:58:45 +11:00
3 changed files with 61 additions and 70 deletions

View file

@ -1,6 +1,7 @@
# 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

View file

@ -139,7 +139,12 @@ class PomodoroManager:
# Open time log dialog
dlg = TimeLogDialog(
self._db, date_iso, self._parent, True, themes=self._parent.themes
self._db,
date_iso,
self._parent,
True,
themes=self._parent.themes,
close_after_add=True,
)
# Pre-fill the hours

View file

@ -1861,44 +1861,76 @@ def test_main_window_update_tag_views_no_tags_widget(
assert True
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"
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(db_path))
s.setValue("db/key", "test-key")
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/tags", False) # Disable tags
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))
w = MainWindow(themes=themes)
qtbot.addWidget(w)
w.show()
window = MainWindow(themes=themes)
qtbot.addWidget(window)
window.show()
# Tags widget should be hidden
assert w.tags.isHidden()
# Verify tags widget is hidden
assert window.tags.isHidden()
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"
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(db_path))
s.setValue("db/key", "test-key")
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) # Disable time log
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))
w = MainWindow(themes=themes)
qtbot.addWidget(w)
w.show()
window = MainWindow(themes=themes)
qtbot.addWidget(window)
window.show()
# Time log widget should be hidden
assert w.time_log.isHidden()
# 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()
def test_export_csv_format(qtbot, app, tmp_path, monkeypatch):
@ -2161,53 +2193,6 @@ 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()