Run artifact

evidence/commands/27-test.stdout.log

============================= test session starts ==============================
platform linux -- Python 3.12.13, pytest-9.1.1, pluggy-1.6.0 -- /mnt/c/Users/barlo/projects/drydock/uat/ReadingList/runs/20260815.171255/build/ReadingList/.venv/bin/python
cachedir: .pytest_cache
rootdir: /mnt/c/Users/barlo/projects/drydock/uat/ReadingList/runs/20260815.171255/build/ReadingList
configfile: pytest.ini
collecting ... collected 44 items

tests/test_architecture.py::test_factory_creates_runnable_application PASSED [  2%]
tests/test_architecture.py::test_factory_isolates_application_instances PASSED [  4%]
tests/test_architecture.py::test_testing_factory_uses_isolated_database_by_default PASSED [  6%]
tests/test_architecture.py::test_app_module_exposes_factory_without_starting_server PASSED [  9%]
tests/test_launcher.py::test_test_launcher_has_valid_posix_syntax PASSED [ 11%]
tests/test_launcher.py::test_test_launcher_runs_pytest_from_project_root PASSED [ 13%]
tests/test_ordered_list.py::test_root_is_successful_for_an_empty_store PASSED [ 15%]
tests/test_ordered_list.py::test_empty_store_has_an_understandable_empty_state PASSED [ 18%]
tests/test_ordered_list.py::test_root_renders_books_in_insertion_order PASSED [ 20%]
tests/test_persistence.py::test_add_reads_back_submitted_book PASSED     [ 22%]
tests/test_persistence.py::test_initialize_migrates_existing_rows_to_unread PASSED [ 25%]
tests/test_persistence.py::test_mark_read_persists_and_is_idempotent PASSED [ 27%]
tests/test_persistence.py::test_mark_read_reports_missing_book PASSED    [ 29%]
tests/test_persistence.py::test_list_ordered_preserves_addition_order PASSED [ 31%]
tests/test_persistence.py::test_remove_existing_book_removes_it PASSED   [ 34%]
tests/test_persistence.py::test_new_database_lists_no_books PASSED       [ 36%]
tests/test_persistence.py::test_add_rejects_empty_fields[-Author] PASSED [ 38%]
tests/test_persistence.py::test_add_rejects_empty_fields[Title-] PASSED  [ 40%]
tests/test_persistence.py::test_remove_missing_book_reports_false PASSED [ 43%]
tests/test_persistence.py::test_initialization_is_idempotent_and_keeps_rows PASSED [ 45%]
tests/test_persistence.py::test_database_rejects_null_book_fields PASSED [ 47%]
tests/test_routes.py::test_root_renders_empty_list PASSED                [ 50%]
tests/test_routes.py::test_reading_list_has_labeled_book_form_and_empty_state PASSED [ 52%]
tests/test_routes.py::test_added_book_is_rendered_with_named_removal_control PASSED [ 54%]
tests/test_routes.py::test_added_book_is_rendered_as_unread_with_mark_read_control PASSED [ 56%]
tests/test_routes.py::test_mark_read_route_persists_and_renders_read_state PASSED [ 59%]
tests/test_routes.py::test_mark_read_route_with_unknown_id_keeps_all_books PASSED [ 61%]
tests/test_routes.py::test_book_creation_redirects_to_the_list PASSED    [ 63%]
tests/test_routes.py::test_book_creation_preserves_existing_insertion_order PASSED [ 65%]
tests/test_routes.py::test_invalid_submission_keeps_reader_on_page_with_error PASSED [ 68%]
tests/test_routes.py::test_invalid_submission_with_missing_author_returns_client_error PASSED [ 70%]
tests/test_routes.py::test_submission_with_both_required_fields_missing_returns_client_error PASSED [ 72%]
tests/test_routes.py::test_invalid_submission_is_not_persisted[Rejected Title-] PASSED [ 75%]
tests/test_routes.py::test_invalid_submission_is_not_persisted[-Rejected Author] PASSED [ 77%]
tests/test_routes.py::test_invalid_submission_is_not_persisted[-] PASSED [ 79%]
tests/test_routes.py::test_valid_submission_remains_supported_after_validation PASSED [ 81%]
tests/test_routes.py::test_removal_control_removes_only_target_book PASSED [ 84%]
tests/test_routes.py::test_removal_route_preserves_relative_order_of_remaining_books PASSED [ 86%]
tests/test_routes.py::test_removal_route_with_unknown_id_keeps_all_books PASSED [ 88%]
tests/test_routes.py::test_health_reports_ok PASSED                      [ 90%]
tests/test_screen.py::test_screen_loads_at_root PASSED                   [ 93%]
tests/test_screen.py::test_screen_accepts_book_submission PASSED         [ 95%]
tests/test_screen.py::test_screen_removes_book_using_its_identity PASSED [ 97%]
tests/test_screen.py::test_screen_supports_an_empty_list PASSED          [100%]

============================== 44 passed in 1.08s ==============================