Spaces:
Build error
Build error
| # SPDX-FileCopyrightText: 2026 Team Centurions | |
| # SPDX-License-Identifier: AGPL-3.0-or-later | |
| import tempfile | |
| from pathlib import Path | |
| import pytest | |
| from pageparse.schema import Record, SourceParseResult | |
| from pageparse.store import Store | |
| def store(): | |
| with tempfile.NamedTemporaryFile(suffix=".db", delete=False) as f: | |
| db_path = f.name | |
| s = Store(db_path) | |
| s.init_db() | |
| yield s | |
| s.close() | |
| Path(db_path).unlink(missing_ok=True) | |
| def test_save_and_list(store: Store): | |
| result = SourceParseResult( | |
| source_file="test.jpg", | |
| records=[Record(content="Buy milk", priority="high")], | |
| ) | |
| source_id = store.save(result, "Buy milk") | |
| assert source_id is not None | |
| sources = store.list_sources() | |
| assert len(sources) == 1 | |
| assert sources[0]["filename"] == "test.jpg" | |
| def test_get_records(store: Store): | |
| result = SourceParseResult( | |
| source_file="test.jpg", | |
| records=[Record(content="Task A", priority="high")], | |
| ) | |
| store.save(result, "Task A") | |
| records = store.get_records(priority="high") | |
| assert len(records) == 1 | |
| assert records[0]["content"] == "Task A" | |
| def test_update_record(store: Store): | |
| result = SourceParseResult( | |
| source_file="test.jpg", | |
| records=[Record(content="Task B", priority="medium")], | |
| ) | |
| store.save(result, "Task B") | |
| records = store.get_records() | |
| record_id = records[0]["id"] | |
| assert store.update_record(record_id, {"status": "done"}) | |
| updated = store.get_records() | |
| assert updated[0]["status"] == "done" | |
| def test_update_record_empty_updates(store: Store): | |
| result = SourceParseResult( | |
| source_file="test.jpg", | |
| records=[Record(content="Task C")], | |
| ) | |
| store.save(result, "Task C") | |
| records = store.get_records() | |
| record_id = records[0]["id"] | |
| assert not store.update_record(record_id, {}) | |
| def test_delete_record(store: Store): | |
| result = SourceParseResult( | |
| source_file="test.jpg", | |
| records=[Record(content="Task D")], | |
| ) | |
| store.save(result, "Task D") | |
| records = store.get_records() | |
| record_id = records[0]["id"] | |
| assert store.delete_record(record_id) | |
| remaining = store.get_records() | |
| assert len(remaining) == 0 | |