* Make reminders be its own dataset rather than tied to current string. * Add support for repeated reminders * Make reminders be a feature that can be turned on and off * Add syntax highlighting for code blocks (right-click to set it) * Add a Pomodoro-style timer for measuring time spent on a task (stopping the timer offers to log it to Time Log) * Add ability to create markdown tables. Right-click to edit the table in a friendlier table dialog
71 lines
1.7 KiB
Python
71 lines
1.7 KiB
Python
from bouquin.settings import (
|
|
get_settings,
|
|
load_db_config,
|
|
save_db_config,
|
|
)
|
|
from bouquin.db import DBConfig
|
|
|
|
|
|
def _clear_db_settings():
|
|
s = get_settings()
|
|
for k in [
|
|
"db/default_db",
|
|
"db/path", # legacy key
|
|
"db/key",
|
|
"ui/idle_minutes",
|
|
"ui/theme",
|
|
"ui/move_todos",
|
|
"ui/tags",
|
|
"ui/time_log",
|
|
"ui/reminders",
|
|
"ui/locale",
|
|
"ui/font_size",
|
|
]:
|
|
s.remove(k)
|
|
|
|
|
|
def test_load_and_save_db_config_roundtrip(app, tmp_path):
|
|
_clear_db_settings()
|
|
|
|
cfg = DBConfig(
|
|
path=tmp_path / "notes.db",
|
|
key="abc123",
|
|
idle_minutes=7,
|
|
theme="dark",
|
|
move_todos=True,
|
|
tags=True,
|
|
time_log=True,
|
|
reminders=True,
|
|
locale="en",
|
|
font_size=11,
|
|
)
|
|
save_db_config(cfg)
|
|
|
|
loaded = load_db_config()
|
|
assert loaded.path == cfg.path
|
|
assert loaded.key == cfg.key
|
|
assert loaded.idle_minutes == cfg.idle_minutes
|
|
assert loaded.theme == cfg.theme
|
|
assert loaded.move_todos == cfg.move_todos
|
|
assert loaded.tags == cfg.tags
|
|
assert loaded.time_log == cfg.time_log
|
|
assert loaded.reminders == cfg.reminders
|
|
assert loaded.locale == cfg.locale
|
|
assert loaded.font_size == cfg.font_size
|
|
|
|
|
|
def test_load_db_config_migrates_legacy_db_path(app, tmp_path):
|
|
_clear_db_settings()
|
|
s = get_settings()
|
|
|
|
legacy_path = tmp_path / "legacy.db"
|
|
s.setValue("db/path", str(legacy_path))
|
|
|
|
cfg = load_db_config()
|
|
|
|
# Uses the legacy value…
|
|
assert cfg.path == legacy_path
|
|
|
|
# …but also migrates to the new key and clears the old one.
|
|
assert s.value("db/default_db", "", type=str) == str(legacy_path)
|
|
assert s.value("db/path", "", type=str) == ""
|