70 lines
1.9 KiB
Python
70 lines
1.9 KiB
Python
"""Tests for session manifest mutations (rename, group, archive, delete)."""
|
|
import pytest
|
|
|
|
from tht.config import DatabaseConfig
|
|
from tht.session.store import (
|
|
SessionError,
|
|
create_session,
|
|
delete_session,
|
|
load_session,
|
|
set_archived,
|
|
set_group,
|
|
set_name,
|
|
)
|
|
|
|
|
|
def _db():
|
|
return DatabaseConfig(
|
|
database="testdb", user="u", password="p", # noqa: S106
|
|
**{"schema": "public"},
|
|
)
|
|
|
|
|
|
def test_manifest_defaults(tmp_path):
|
|
m = create_session("domanda", _db(), tmp_path)
|
|
assert m.archived is False
|
|
assert m.group is None
|
|
assert m.name is None
|
|
|
|
|
|
def test_set_name(tmp_path):
|
|
m = create_session("domanda", _db(), tmp_path)
|
|
set_name(m.id, "Pazienti 2024", tmp_path)
|
|
assert load_session(m.id, tmp_path).name == "Pazienti 2024"
|
|
|
|
|
|
def test_set_name_empty_clears(tmp_path):
|
|
m = create_session("domanda", _db(), tmp_path)
|
|
set_name(m.id, "x", tmp_path)
|
|
set_name(m.id, "", tmp_path)
|
|
assert load_session(m.id, tmp_path).name is None
|
|
|
|
|
|
def test_set_group_and_clear(tmp_path):
|
|
m = create_session("domanda", _db(), tmp_path)
|
|
set_group(m.id, "Aritmologia", tmp_path)
|
|
assert load_session(m.id, tmp_path).group == "Aritmologia"
|
|
set_group(m.id, "", tmp_path)
|
|
assert load_session(m.id, tmp_path).group is None
|
|
|
|
|
|
def test_set_archived(tmp_path):
|
|
m = create_session("domanda", _db(), tmp_path)
|
|
set_archived(m.id, True, tmp_path)
|
|
assert load_session(m.id, tmp_path).archived is True
|
|
set_archived(m.id, False, tmp_path)
|
|
assert load_session(m.id, tmp_path).archived is False
|
|
|
|
|
|
def test_delete_session(tmp_path):
|
|
m = create_session("domanda", _db(), tmp_path)
|
|
delete_session(m.id, tmp_path)
|
|
assert not (tmp_path / m.id).exists()
|
|
with pytest.raises(SessionError):
|
|
load_session(m.id, tmp_path)
|
|
|
|
|
|
def test_delete_missing_raises(tmp_path):
|
|
with pytest.raises(SessionError):
|
|
delete_session("nope", tmp_path)
|