# openproj CI durations after the template cache, measured not estimated
#
# Run:     https://github.com/jcanton/openproj/actions/runs/32633361097
# Job:     check, ubuntu-latest, 2026-08-23T10:17:44Z -> 2026-08-23T10:29:52Z (728s)
# Commit:  d979881 on branch ci-speed (PR #72) — the same tree as the run in
#          ci-durations.txt plus the template-compilation cache in render.py and
#          the one regex in test_render.py.
# Command: uv run pytest -q --durations=0 --durations-min=0.05
# Result:  1687 passed, 5 warnings in 711.04s (0:11:51), against 1392.75s before.
#
# The runner, from the probe step in the same job:
#   nproc            2
#   free -m          Mem: 7942 total, 6821 available; Swap: 3071
#   df -h /dev/shm   tmpfs 3.9G
#   google-chrome    151.0.7922.137
# So `ubuntu-latest` on this PRIVATE repository is the 2-core / 8 GB box, not the
# 4-core / 16 GB one public repositories get. `-n auto` here means `-n 2`.
#
# Per-step wall clock from the jobs API (seconds):
#   Set up job 1, checkout 1, setup-uv 3, setup-node 0, uv sync 1, probe 2,
#   ruff 0, pytest 713, post steps 1. Nine seconds is still not pytest.
#
# The table below is verbatim from the run log, timestamps stripped. 732 rows
# summing to 675.79s of the 711.04s pytest reported.
#
# Phase split of those 732 rows: setup 59.26s, call 600.60s, teardown 15.93s.
# Setup was 519.23s before; 460s of it was compiling templates.

============================== slowest durations ===============================
17.98s call     tests/test_render.py::test_the_box_each_view_fills_stops_where_the_window_does[graph]
15.84s call     tests/test_search.py::test_the_box_and_the_server_find_the_same_records
12.98s call     tests/test_render.py::test_the_current_nav_item_is_drawn_and_not_merely_resolved
12.53s call     tests/test_card.py::test_the_three_views_draw_the_same_card
10.98s call     tests/test_render.py::test_the_box_each_view_fills_stops_where_the_window_does[table]
9.75s call     tests/test_deck.py::test_every_deck_this_suite_can_reach_prints_one_slide_to_a_page
9.05s call     tests/test_table.py::test_the_frozen_edge_is_a_pixel_a_browser_draws
8.22s call     tests/test_editor.py::test_the_editor_a_person_chose_is_carried_back_into_the_address
8.19s call     tests/test_render.py::test_the_box_each_view_fills_stops_where_the_window_does[timeline]
6.38s call     tests/test_render.py::test_the_heading_costs_the_view_no_row[graph]
5.13s setup    tests/test_injection.py::test_no_marker_string_reaches_a_served_page_as_anything_but_text
5.08s teardown tests/test_coedit.py::test_one_member_who_stops_reading_freezes_nobody
5.06s teardown tests/test_coedit.py::test_a_room_emptied_by_an_eviction_is_still_committed
5.02s teardown tests/test_coedit.py::test_what_is_held_for_a_member_who_never_reads_is_bounded
4.88s call     tests/test_editor.py::test_a_link_to_the_split_view_opens_in_the_split_view
4.57s call     tests/test_hill.py::test_the_ball_is_painted_where_the_geometry_says
4.52s call     tests/test_graph_layout.py::test_two_boxes_that_wait_on_each_other_are_ranked_by_the_majority
4.32s call     tests/test_editor.py::test_the_keymap_a_person_chose_is_the_one_the_next_session_opens_in
4.30s call     tests/test_graph_layout.py::test_an_edge_that_crosses_a_card_is_drawn_under_it
4.26s call     tests/test_editor.py::test_the_split_dragged_to_the_end_on_a_wide_screen_is_the_one_that_comes_back[1400]
4.25s call     tests/test_coedit.py::test_two_editors_in_one_room_over_a_body_with_crlf_in_it_settle_on_one_document
4.21s call     tests/test_graph_layout.py::test_the_two_key_rows_are_one_length_and_sit_on_the_drawing
4.18s setup    tests/test_graph_layout.py::test_the_arrows_read_the_way_the_layout_was_asked_for
4.17s call     tests/test_graph_layout.py::test_the_grouping_holds_on_a_plan_larger_than_the_real_one
4.16s call     tests/test_coedit.py::test_a_commit_never_deletes_what_was_typed_during_it
4.16s call     tests/test_editor.py::test_the_split_dragged_to_the_end_on_a_wide_screen_is_the_one_that_comes_back[3440]
4.14s setup    tests/test_graph_layout.py::test_no_card_is_drawn_inside_a_group_it_does_not_belong_to
4.14s call     tests/test_graph_layout.py::test_a_card_stays_where_it_was_dragged
4.14s call     tests/test_coedit.py::test_one_member_who_stops_reading_freezes_nobody
4.12s call     tests/test_render.py::test_the_heading_costs_the_view_no_row[table]
4.08s setup    tests/test_graph_layout.py::test_no_box_lies_across_another
4.07s call     tests/test_coedit.py::test_a_room_emptied_by_an_eviction_is_still_committed
4.06s setup    tests/test_graph_layout.py::test_a_records_children_are_drawn_near_it
4.05s setup    tests/test_injection.py::test_no_marker_string_reaches_a_static_page_as_anything_but_text
4.03s call     tests/test_coedit.py::test_a_socket_re_reads_the_session_it_was_opened_with
4.00s call     tests/test_card.py::test_a_box_answers_for_its_label_and_not_for_its_acres
3.93s call     tests/test_graph_layout.py::test_a_card_wears_both_its_marks_in_front_of_its_name
3.90s call     tests/test_facets.py::test_an_open_menu_is_not_painted_over[graph]
3.87s call     tests/test_edges.py::test_an_edge_drawn_by_mistake_is_simply_undrawn
3.87s call     tests/test_render.py::test_a_reader_who_asked_for_less_motion_gets_none_of_the_motion_there_is
3.86s call     tests/test_editor.py::test_the_editor_switch_takes_a_focus_ring_that_is_actually_painted
3.82s call     tests/test_editor.py::test_a_view_link_is_sessionless_and_a_both_link_opens_a_session
3.71s setup    tests/test_graph_layout.py::test_the_corpus_is_worth_measuring
3.71s call     tests/test_editor.py::test_the_pane_splitter_takes_a_focus_ring_that_is_actually_painted
3.70s call     tests/test_themes.py::test_the_drawing_gets_colours_it_can_actually_read
3.58s call     tests/test_render.py::test_a_sentence_about_the_view_never_costs_the_view_a_row[graph]
3.58s call     tests/test_edges.py::test_an_existing_dependency_can_be_taken_off_the_diagram
3.56s call     tests/test_cascade.py::test_every_control_on_every_page_is_drawn_the_same[graph]
3.52s call     tests/test_search.py::test_the_language_is_evaluated_the_same_in_the_browser
3.36s call     tests/test_render.py::test_the_heading_costs_the_view_no_row[timeline]
3.19s call     tests/test_edges.py::test_reset_and_leaving_the_mode_both_put_a_marked_edge_back
3.13s call     tests/test_render.py::test_a_window_that_changes_under_an_open_page_is_measured_again
3.06s call     tests/test_edges.py::test_an_edge_edit_is_refused_where_it_would_delete_a_hand_written_line
2.85s call     tests/test_editor.py::test_every_line_number_sits_on_the_line_it_numbers
2.72s call     tests/test_coedit.py::test_what_is_held_for_a_member_who_never_reads_is_bounded
2.67s call     tests/test_injection.py::test_no_marker_string_reaches_a_served_page_as_anything_but_text
2.65s call     tests/test_delete.py::test_the_delete_under_a_record_is_the_delete_of_that_record
2.59s call     tests/test_coedit.py::test_an_edit_in_the_second_surface_reaches_the_room_as_the_character_it_was[\U0001f600\U0001f601 ok\n-\U0001f601 ok\n]
2.54s call     tests/test_coedit.py::test_backspacing_a_whole_glyph_in_the_second_surface_leaves_both_copies_agreeing[one \U0001f469\u200d\U0001f469\u200d\U0001f467\n]
2.53s call     tests/test_injection.py::test_the_json_a_page_ships_reads_back_and_can_end_nothing
2.51s call     tests/test_table.py::test_the_draft_rows_marks_are_drawn
2.47s call     tests/test_hill.py::test_cancelling_an_edit_rolls_the_ball_back
2.44s call     tests/test_delete.py::test_a_refusal_is_shown_where_the_question_was_asked
2.43s call     tests/test_coedit.py::test_a_tab_that_is_only_watching_the_second_surface_is_credited_zero_characters
2.43s call     tests/test_seats.py::test_a_seat_band_lands_on_the_right_line_at_a_width_that_wraps
2.41s call     tests/test_coedit.py::test_undo_never_takes_back_something_somebody_else_typed
2.41s call     tests/test_coedit.py::test_an_edit_in_the_second_surface_reaches_the_room_as_the_character_it_was[a fine result\n-a fine \U0001f389 result\n]
2.40s call     tests/test_coedit.py::test_an_edit_in_the_second_surface_reaches_the_room_as_the_character_it_was[\U0001f916 written by an agent\n-\U0001f916 written by somebody\n]
2.39s call     tests/test_seats.py::test_the_second_surface_says_it_cannot_draw_where_anybody_is
2.38s call     tests/test_hill.py::test_the_hill_takes_a_keyboard
2.37s call     tests/test_coedit.py::test_backspacing_a_whole_glyph_in_the_second_surface_leaves_both_copies_agreeing[one \U0001f600\n]
2.37s call     tests/test_editor.py::test_the_second_surface_holds_one_line_ending_whatever_is_pasted_into_it
2.36s call     tests/test_editor.py::test_the_editor_switch_says_which_editor_it_is_and_that_it_reloads[-True]
2.36s call     tests/test_editor.py::test_cancelling_an_edit_nobody_made_says_nothing
2.36s call     tests/test_hill.py::test_pressing_a_stop_moves_the_ball_and_the_form
2.35s call     tests/test_hill.py::test_dragging_the_ball_lands_on_a_stop
2.34s call     tests/test_editor.py::test_the_view_a_person_chose_is_the_one_the_next_session_opens_in
2.34s call     tests/test_hill.py::test_the_ball_follows_the_field_when_something_else_sets_it
2.34s call     tests/test_coedit.py::test_opening_the_second_surface_changes_no_byte_of_the_document
2.33s call     tests/test_editor.py::test_cancel_puts_the_fields_back
2.33s call     tests/test_editor.py::test_the_history_buttons_reach_the_second_editors_own_stack
2.32s call     tests/test_table.py::test_the_create_button_is_reachable_from_anywhere_in_the_form
2.32s call     tests/test_delete.py::test_delete_leaves_while_an_edit_is_open
2.32s call     tests/test_hill.py::test_a_cancelled_drag_puts_the_ball_back
2.32s call     tests/test_themes.py::test_every_scheme_is_readable_where_the_page_paints_it
2.31s call     tests/test_coedit.py::test_a_substitution_over_a_whole_document_is_announced_before_it_is_sent
2.31s call     tests/test_cascade.py::test_every_control_on_every_page_is_drawn_the_same[detail]
2.30s call     tests/test_editor.py::test_the_second_editors_caret_is_reported_when_it_moves_and_not_when_it_types
2.29s call     tests/test_editor.py::test_every_button_on_the_toolbar_can_be_reached_at_a_window_that_is_not_wide[1000-note]
2.27s call     tests/test_facets.py::test_the_way_out_appears_only_when_there_is_one
2.27s call     tests/test_editor.py::test_the_width_handle_finds_the_pane_in_every_view
2.27s call     tests/test_facets.py::test_one_value_is_named_and_unticking_it_puts_the_field_back
2.25s call     tests/test_coedit.py::test_backspacing_a_whole_glyph_in_the_second_surface_leaves_both_copies_agreeing[one \U0001f1e9\U0001f1ea\n]
2.24s call     tests/test_editor.py::test_the_toolbar_and_the_keymap_do_not_cancel_each_other
2.24s call     tests/test_editor.py::test_the_new_marks_write_blocks_and_a_pasted_url_becomes_the_link_it_is[1000]
2.24s call     tests/test_render.py::test_a_sentence_about_the_view_never_costs_the_view_a_row[table]
2.23s call     tests/test_facets.py::test_the_server_answers_the_same_two_values
2.23s call     tests/test_editor.py::test_the_two_panes_scroll_to_the_same_line
2.23s call     tests/test_coedit.py::test_an_edit_in_the_second_surface_reaches_the_room_as_the_character_it_was[\U0001f1e9\U0001f1ea\n-\U0001f1e9\U0001f1eb\n]
2.22s call     tests/test_card.py::test_the_card_can_be_reached_and_stays_while_the_pointer_is_in_it
2.21s call     tests/test_delete.py::test_it_takes_two_presses_and_the_first_one_writes_nothing
2.19s call     tests/test_facets.py::test_opening_one_field_closes_the_last
2.19s call     tests/test_editor.py::test_every_button_on_the_toolbar_can_be_reached_at_a_window_that_is_not_wide[1000-detail]
2.19s call     tests/test_editor.py::test_the_new_marks_write_blocks_and_a_pasted_url_becomes_the_link_it_is[1200]
2.19s call     tests/test_editor.py::test_the_theme_toggle_and_the_way_in_come_into_the_surface_with_you
2.19s call     tests/test_editor.py::test_no_editor_asks_for_a_script_after_the_page_has_loaded
2.18s call     tests/test_themes.py::test_the_picker_puts_the_scheme_on_the_page_and_takes_it_off_again
2.18s call     tests/test_editor.py::test_the_length_says_the_ceiling_before_a_save_is_refused
2.16s call     tests/test_editor.py::test_the_split_a_reader_chose_is_there_the_next_time[wide-False]
2.16s call     tests/test_delete.py::test_the_commit_bar_is_not_on_screen_when_there_is_nothing_to_commit
2.16s call     tests/test_coedit.py::test_an_edit_in_the_second_surface_reaches_the_room_as_the_character_it_was[\U0001f44d done\n-\U0001f44e done\n]
2.15s call     tests/test_editor.py::test_the_split_a_reader_chose_is_there_the_next_time[None-False]
2.15s call     tests/test_table.py::test_a_revealed_cell_can_be_put_back
2.15s call     tests/test_facets.py::test_a_facet_reads_as_a_menu_and_not_as_a_box_to_type_in
2.14s call     tests/test_card.py::test_the_card_arrives_in_one_piece
2.14s call     tests/test_editor.py::test_the_three_views_are_one_of_three_and_each_pane_scrolls_on_its_own
2.14s call     tests/test_cascade.py::test_every_control_on_every_page_is_drawn_the_same[create]
2.13s call     tests/test_themes.py::test_a_scheme_reaches_the_boxes_people_type_into
2.13s call     tests/test_coedit.py::test_undo_in_a_room_gives_back_your_own_last_thing_on_the_textarea
2.11s call     tests/test_coedit.py::test_an_edit_across_an_emoji_reaches_the_room_through_the_adapter[\U0001f916 written by an agent\n-\U0001f916 written by somebody\n]
2.11s call     tests/test_facets.py::test_an_open_menu_is_not_painted_over[table]
2.10s call     tests/test_cascade.py::test_every_control_on_every_page_is_drawn_the_same[table]
2.10s call     tests/test_facets.py::test_the_closed_control_says_what_is_set
2.10s call     tests/test_facets.py::test_clearing_puts_every_field_back
2.09s call     tests/test_facets.py::test_two_values_of_one_field_mean_either
2.09s call     tests/test_editor.py::test_cancel_with_a_divergent_draft_lands_on_the_stored_commit
2.09s call     tests/test_table.py::test_a_column_too_narrow_for_its_word_keeps_its_mark
2.09s call     tests/test_coedit.py::test_the_history_buttons_answer_the_keyboard_and_say_when_a_stack_is_empty
2.09s call     tests/test_coedit.py::test_an_edit_across_an_emoji_reaches_the_room_through_the_adapter[\U0001f44d done\n-\U0001f44e done\n]
2.08s call     tests/test_seats.py::test_the_next_session_is_one_seat_not_two
2.07s call     tests/test_editor.py::test_every_button_on_the_toolbar_can_be_reached_at_a_window_that_is_not_wide[500-note]
2.06s call     tests/test_editor.py::test_a_connection_that_drops_leaves_no_placeholder_and_no_sentence_that_is_still_true
2.06s call     tests/test_editor.py::test_every_button_on_the_toolbar_can_be_reached_at_a_window_that_is_not_wide[500-detail]
2.06s call     tests/test_card.py::test_a_card_at_the_edge_of_the_window_stays_inside_it
2.06s call     tests/test_editor.py::test_there_is_no_handle_where_there_is_nothing_to_divide[1400]
2.06s call     tests/test_editor.py::test_a_throttled_draft_is_still_written_before_the_tab_can_be_closed
2.06s call     tests/test_editor.py::test_a_draft_at_load_forces_a_session_and_the_room_refusal_still_fires
2.05s call     tests/test_table.py::test_an_expanded_column_is_a_way_of_reading_and_not_a_setting
2.04s call     tests/test_editor.py::test_ending_a_session_leaves_the_surface_by_every_door
2.04s call     tests/test_editor.py::test_the_editor_switch_says_which_editor_it_is_and_that_it_reloads[?editor=plain-False]
2.04s call     tests/test_card.py::test_a_nine_hundred_word_document_does_not_cover_the_table
2.03s call     tests/test_seats.py::test_nobody_is_drawn_a_band_for_themselves
2.03s call     tests/test_table.py::test_a_dragged_table_still_fits_the_window_it_is_looked_at_in
2.03s call     tests/test_editor.py::test_there_is_no_handle_where_there_is_nothing_to_divide[936]
2.03s call     tests/test_facets.py::test_a_link_opens_with_its_boxes_ticked
2.03s call     tests/test_seats.py::test_the_room_draws_a_band_where_somebody_else_is
2.03s call     tests/test_editor.py::test_the_separator_hands_back_every_key_that_carries_a_modifier
2.03s call     tests/test_editor.py::test_a_preview_that_has_been_overtaken_is_called_off
2.03s call     tests/test_coedit.py::test_the_timer_survives_a_failure_the_tuple_does_not_name
2.03s call     tests/test_coedit.py::test_a_write_that_fails_is_a_refusal_and_not_an_escape
2.03s call     tests/test_coedit.py::test_a_refused_room_tries_again_on_the_next_window
2.02s call     tests/test_table.py::test_the_header_fits_at_the_width_the_fit_may_squeeze_it_to
2.02s call     tests/test_editor.py::test_a_drag_the_browser_takes_away_lets_go_of_the_join
2.02s call     tests/test_editor.py::test_the_box_and_the_column_beside_it_are_one_face
2.01s call     tests/test_editor.py::test_tab_indents_the_lines_the_selection_touches
2.01s call     tests/test_card.py::test_one_card_holds_one_document
2.00s call     tests/test_editor.py::test_the_split_a_reader_chose_is_there_the_next_time[2.5-True]
2.00s call     tests/test_editor.py::test_the_preview_keeps_up_and_stays_where_the_reader_left_it
2.00s call     tests/test_editor.py::test_the_split_a_reader_chose_is_there_the_next_time[1-False]
2.00s call     tests/test_table.py::test_the_column_control_opens_the_column_and_closes_it
2.00s call     tests/test_facets.py::test_escape_closes_the_menu_and_hands_the_keyboard_back
1.99s call     tests/test_coedit.py::test_somebody_elses_keystroke_is_reflected_and_never_sent_back
1.99s call     tests/test_table.py::test_the_badge_is_never_the_part_of_a_clamped_cell_that_gets_cut
1.98s call     tests/test_coedit.py::test_an_edit_across_an_emoji_reaches_the_room_through_the_adapter[a fine result\n-a fine \U0001f389 result\n]
1.98s call     tests/test_payload.py::test_a_size_somebody_hand_edited_does_not_empty_the_table[.nan]
1.98s call     tests/test_editor.py::test_the_full_page_surface_is_a_writing_surface_at_a_window_that_is_not_wide[new]
1.97s call     tests/test_editor.py::test_the_editor_preference_is_one_key_and_survives_a_browser_that_refuses_storage
1.97s call     tests/test_editor.py::test_a_stored_legacy_view_mode_opens_the_next_session_in_edit
1.96s call     tests/test_seats.py::test_somebody_elses_keystroke_leaves_the_numbers_counting_the_document_there_is_now
1.95s call     tests/test_card.py::test_the_document_is_drawn_under_the_fields
1.94s call     tests/test_status_gate.py::test_giving_up_on_the_question_changes_nothing
1.94s call     tests/test_seats.py::test_this_tab_says_where_it_is_sitting
1.94s call     tests/test_editor.py::test_the_history_buttons_use_the_browsers_own_stack_when_there_is_no_room
1.94s call     tests/test_seats.py::test_two_people_get_two_colours_and_two_places
1.94s call     tests/test_editor.py::test_the_join_between_the_panes_moves_for_the_keyboard_too
1.93s call     tests/test_status_gate.py::test_a_row_that_has_what_the_status_wants_is_not_asked
1.93s call     tests/test_editor.py::test_the_status_bar_says_where_the_caret_is_how_long_it_is_and_what_tab_types
1.93s call     tests/test_editor.py::test_the_facts_column_does_not_move_when_the_join_between_the_panes_does
1.93s call     tests/test_editor.py::test_escape_still_arms_the_tab_hatch_where_the_box_is_on_the_page
1.92s call     tests/test_editor.py::test_the_full_page_surface_is_a_writing_surface_at_a_window_that_is_not_wide[detail]
1.92s call     tests/test_card.py::test_a_pointer_passing_over_a_row_does_not_open_a_card
1.91s call     tests/test_payload.py::test_a_size_somebody_hand_edited_does_not_empty_the_table[.inf]
1.91s call     tests/test_injection.py::test_no_marker_string_reaches_a_static_page_as_anything_but_text
1.91s call     tests/test_editor.py::test_cancel_leaves_the_surface_it_was_pressed_in
1.90s call     tests/test_editor.py::test_choosing_a_template_leaves_the_numbers_and_the_length_telling_the_truth
1.87s call     tests/test_table.py::test_a_drop_on_a_dead_connection_takes_its_own_sentence_back_down
1.87s call     tests/test_editor.py::test_a_preview_that_fails_says_so_and_never_writes_the_word_undefined
1.87s call     tests/test_coedit.py::test_an_edit_across_an_emoji_reaches_the_room_through_the_adapter[\U0001f600\U0001f601 ok\n-\U0001f601 ok\n]
1.86s call     tests/test_status_gate.py::test_a_status_that_needs_a_date_asks_for_it
1.86s call     tests/test_editor.py::test_there_is_no_handle_where_there_is_nothing_to_divide[700]
1.84s call     tests/test_seats.py::test_a_reader_holds_no_seat
1.84s call     tests/test_editor.py::test_the_split_a_reader_chose_is_there_the_next_time[400-False]
1.83s call     tests/test_payload.py::test_a_size_somebody_hand_edited_does_not_empty_the_table[-.inf]
1.82s call     tests/test_deck.py::test_the_plan_a_slide_falls_back_to_is_cut_to_the_sheet_and_says_so
1.81s call     tests/test_editor.py::test_there_is_no_handle_where_there_is_nothing_to_divide[934]
1.79s call     tests/test_coedit.py::test_an_edit_across_an_emoji_reaches_the_room_through_the_adapter[\U0001f1e9\U0001f1ea\n-\U0001f1e9\U0001f1eb\n]
1.77s call     tests/test_coedit.py::test_a_carriage_return_in_a_room_is_a_thing_the_box_cannot_hold
1.76s call     tests/test_table.py::test_the_header_and_the_frozen_pair_hold_when_the_rows_are_tall
1.73s call     tests/test_table.py::test_a_row_that_names_no_reviewer_shows_the_ones_under_it
1.72s call     tests/test_facets.py::test_an_open_menu_is_not_painted_over[timeline]
1.71s call     tests/test_facets.py::test_the_people_page_honours_both_values_too
1.68s call     tests/test_render.py::test_a_sentence_about_the_view_never_costs_the_view_a_row[timeline]
1.63s call     tests/test_search.py::test_a_word_only_in_a_shaping_document_is_not_a_match
1.59s call     tests/test_records.py::test_the_landing_box_and_the_server_find_the_same_records
1.58s call     tests/test_coedit.py::test_a_real_browser_opens_the_socket_under_this_policy_and_draws_the_room
1.56s call     tests/test_cascade.py::test_every_control_on_every_page_is_drawn_the_same[timeline]
1.56s call     tests/test_coedit.py::test_a_restored_draft_survives_the_welcome_and_is_offered_to_the_room
1.50s call     tests/test_search.py::test_both_halves_refuse_the_same_queries_with_the_same_sentence
1.46s call     tests/test_search.py::test_nothing_malformed_is_quietly_accepted
1.44s call     tests/test_coedit.py::test_a_draft_against_a_room_that_has_moved_is_reported_and_not_thrown_away
1.09s call     tests/test_search.py::test_every_searchable_field_is_reachable_from_the_box
0.84s call     tests/test_table.py::test_a_column_goes_only_when_the_one_before_it_was_not_enough
0.80s call     tests/test_web.py::test_one_save_does_not_stop_the_rest_of_the_process
0.40s call     tests/test_coedit.py::test_a_member_who_is_behind_but_still_reading_is_not_given_up_on
0.39s call     tests/test_cli.py::test_the_demo_signs_you_in_as_somebody_the_plan_names
0.38s call     tests/test_schedule.py::test_property_adding_an_item_that_shares_no_worker_and_no_ancestor_never_moves_that_items_span
0.35s setup    tests/test_injection.py::test_no_served_page_lets_a_field_become_markup
0.34s call     tests/test_schedule.py::test_property_a_worker_never_holds_two_overlapping_spans
0.33s call     tests/test_table.py::test_a_clamped_cell_says_what_it_is_hiding_before_it_says_how_to_edit_it
0.33s call     tests/test_schedule.py::test_property_no_dependent_ever_starts_before_its_blocker_has_finished
0.31s call     tests/test_table.py::test_the_default_fit_never_needs_a_horizontal_scrollbar
0.30s call     tests/test_coedit.py::test_a_member_who_never_reads_is_given_up_on
0.30s call     tests/test_cascade.py::test_the_row_a_pages_own_controls_stand_in_is_a_row_on_every_page
0.28s call     tests/test_cli.py::test_demo_builds_a_repository_the_server_can_actually_serve
0.27s call     tests/test_card.py::test_a_refused_document_costs_the_document_and_nothing_else
0.26s call     tests/test_web.py::test_an_icon_is_one_of_the_ones_the_picker_offers
0.26s call     tests/test_gitdoor.py::test_a_file_nobody_could_parse_costs_that_file_and_nothing_else[a record filed one directory deeper than records live]
0.26s call     tests/test_editor.py::test_a_restored_draft_is_saved_against_the_commit_it_was_drafted_against
0.26s call     tests/test_table.py::test_no_window_leaves_the_table_scrolling_sideways_by_choice[1366]
0.26s call     tests/test_table.py::test_no_window_leaves_the_table_scrolling_sideways_by_choice[1353]
0.26s call     tests/test_table.py::test_no_window_leaves_the_table_scrolling_sideways_by_choice[1393]
0.25s call     tests/test_table.py::test_no_window_leaves_the_table_scrolling_sideways_by_choice[2560]
0.25s call     tests/test_table.py::test_no_window_leaves_the_table_scrolling_sideways_by_choice[1280]
0.25s call     tests/test_table.py::test_no_window_leaves_the_table_scrolling_sideways_by_choice[1050]
0.25s call     tests/test_table.py::test_no_window_leaves_the_table_scrolling_sideways_by_choice[1091]
0.25s call     tests/test_table.py::test_no_window_leaves_the_table_scrolling_sideways_by_choice[1920]
0.25s call     tests/test_table.py::test_no_window_leaves_the_table_scrolling_sideways_by_choice[1600]
0.25s call     tests/test_table.py::test_no_window_leaves_the_table_scrolling_sideways_by_choice[900]
0.25s call     tests/test_table.py::test_no_window_leaves_the_table_scrolling_sideways_by_choice[1100]
0.25s call     tests/test_table.py::test_no_window_leaves_the_table_scrolling_sideways_by_choice[1440]
0.25s call     tests/test_table.py::test_no_window_leaves_the_table_scrolling_sideways_by_choice[1101]
0.25s call     tests/test_table.py::test_no_window_leaves_the_table_scrolling_sideways_by_choice[1500]
0.24s call     tests/test_table.py::test_no_window_leaves_the_table_scrolling_sideways_by_choice[1354]
0.24s setup    tests/test_render.py::test_a_node_takes_its_ink_from_the_fill_it_sits_on
0.23s setup    tests/test_render.py::test_a_status_shape_is_bounded_against_the_page_it_sits_on
0.22s call     tests/test_cascade.py::test_the_nav_marks_where_you_are_even_on_a_link_you_have_already_used
0.22s call     tests/test_writes.py::test_every_page_that_writes_reads_a_conflict_the_same_way[graph]
0.21s setup    tests/test_deck.py::test_every_deck_this_suite_can_reach_prints_one_slide_to_a_page
0.20s call     tests/test_records.py::test_a_search_that_matches_nothing_says_so_in_the_views_own_words
0.20s call     tests/test_table.py::test_a_problem_still_comes_first_and_a_long_list_is_capped
0.19s call     tests/test_cascade.py::test_a_link_that_is_a_control_is_drawn_as_one_on_every_page
0.19s setup    tests/test_writes.py::test_a_save_addresses_the_row_it_was_pressed_on
0.18s call     tests/test_render.py::test_a_reader_who_may_not_write_is_sent_no_editor_library
0.18s call     tests/test_cascade.py::test_every_kind_chip_is_the_same_shape[task]
0.18s call     tests/test_cascade.py::test_every_kind_chip_is_the_same_shape[project]
0.18s call     tests/test_cascade.py::test_every_kind_chip_is_the_same_shape[pitch]
0.17s call     tests/test_coedit.py::test_a_restart_loses_nothing_that_was_committed
0.17s call     tests/test_injection.py::test_no_page_is_assembled_by_substitution
0.17s setup    tests/test_table.py::test_a_new_pitch_starts_from_the_teams_own_shaping_template
0.17s call     tests/test_injection.py::test_no_served_page_lets_a_field_become_markup
0.17s setup    tests/test_table.py::test_the_table_ends_in_a_row_that_makes_one
0.17s call     tests/test_render.py::test_the_static_export_carries_the_drawings_and_offers_no_picker
0.17s call     tests/test_web.py::test_an_entity_the_server_could_not_read_back_is_never_committed[tags-value8]
0.16s call     tests/test_notes.py::test_promoting_twice_is_two_records_and_the_note_names_both
0.16s setup    tests/test_render.py::test_every_explanation_reaches_the_reader
0.16s call     tests/test_gitdoor.py::test_a_file_nobody_could_parse_costs_that_file_and_nothing_else[a size that is a word]
0.16s call     tests/test_web.py::test_a_served_page_navigates_by_route_and_not_by_filename
0.16s setup    tests/test_render.py::test_the_nav_says_which_page_you_are_on
0.16s call     tests/test_cli.py::test_the_demo_leaves_the_corpus_it_was_built_from_exactly_as_it_found_it
0.16s setup    tests/test_injection.py::test_the_table_cell_editor_does_not_let_a_stored_value_become_markup
0.16s call     tests/test_gitdoor.py::test_a_file_nobody_could_parse_costs_that_file_and_nothing_else[an assigned_on that is a phrase]
0.16s setup    tests/test_injection.py::test_the_combobox_popup_does_not_let_a_suggestion_become_markup[one entity 0]
0.16s setup    tests/test_injection.py::test_the_combobox_popup_does_not_let_a_suggestion_become_markup[table]
0.16s setup    tests/test_injection.py::test_the_table_draws_its_rows_without_letting_a_field_become_markup
0.16s setup    tests/test_injection.py::test_the_combobox_popup_does_not_let_a_suggestion_become_markup[cycle 41]
0.16s setup    tests/test_injection.py::test_adding_somebody_whose_name_holds_a_quote_does_not_break_the_button
0.16s call     tests/test_gitdoor.py::test_a_file_nobody_could_parse_costs_that_file_and_nothing_else[a cycle number that is a word]
0.16s call     tests/test_table.py::test_the_create_form_offers_the_three_kinds_and_nothing_else
0.16s call     tests/test_gitdoor.py::test_a_file_nobody_could_parse_costs_that_file_and_nothing_else[a frontmatter that is a list rather than a map]
0.16s call     tests/test_gitdoor.py::test_a_file_nobody_could_parse_costs_that_file_and_nothing_else[a task file with no frontmatter at all]
0.16s call     tests/test_gitdoor.py::test_a_file_nobody_could_parse_costs_that_file_and_nothing_else[a pitch whose reviewers are a map]
0.15s call     tests/test_gitdoor.py::test_a_file_nobody_could_parse_costs_that_file_and_nothing_else[a file with no kind, whose id names no kind either]
0.15s call     tests/test_gitdoor.py::test_a_file_nobody_could_parse_costs_that_file_and_nothing_else[a project file that is empty]
0.15s setup    tests/test_injection.py::test_the_combobox_popup_does_not_let_a_suggestion_become_markup[new task]
0.15s call     tests/test_gitdoor.py::test_a_file_nobody_could_parse_costs_that_file_and_nothing_else[a holiday that is not a date]
0.15s call     tests/test_search.py::test_a_half_typed_query_says_what_is_wrong_with_it
0.15s call     tests/test_gitdoor.py::test_a_file_nobody_could_parse_costs_that_file_and_nothing_else[a cycle record with no start date]
0.15s call     tests/test_gitdoor.py::test_a_file_nobody_could_parse_costs_that_file_and_nothing_else[a task file whose YAML never closes its flow sequence]
0.15s setup    tests/test_web.py::test_a_request_that_is_not_an_object_is_refused_rather_than_raised[[]-POST-/api/preview]
0.15s setup    tests/test_injection.py::test_the_hover_card_does_not_let_a_field_become_markup
0.15s call     tests/test_gitdoor.py::test_a_file_nobody_could_parse_costs_that_file_and_nothing_else[a config file whose YAML never closes]
0.15s setup    tests/test_injection.py::test_adding_somebody_to_a_cycle_does_not_let_the_name_become_markup
0.15s call     tests/test_gitdoor.py::test_a_file_nobody_could_parse_costs_that_file_and_nothing_else[a cycle record whose YAML never closes]
0.15s call     tests/test_search.py::test_a_query_that_reads_leaves_nothing_said
0.15s call     tests/test_gitdoor.py::test_a_file_nobody_could_parse_costs_that_file_and_nothing_else[a task whose frontmatter is only a comment]
0.15s call     tests/test_gitdoor.py::test_a_file_nobody_could_parse_costs_that_file_and_nothing_else[a schema_version that is a word]
0.15s call     tests/test_card.py::test_the_card_says_the_things_a_row_does_not
0.14s setup    tests/test_coedit.py::test_a_real_browser_opens_the_socket_under_this_policy_and_draws_the_room
0.14s call     tests/test_cascade.py::test_every_commit_bar_sticks_to_the_same_edge_and_one_rule_decides_it
0.14s call     tests/test_web.py::test_a_status_nobody_defined_is_refused_at_both_doors
0.14s call     tests/test_card.py::test_the_document_is_fetched_on_hover_and_not_shipped_with_the_rows
0.14s call     tests/test_headers.py::test_the_static_export_carries_it_because_it_has_no_server
0.14s teardown tests/test_coedit.py::test_a_real_browser_opens_the_socket_under_this_policy_and_draws_the_room
0.14s call     tests/test_card.py::test_a_document_that_arrives_late_is_not_drawn_on_the_wrong_card
0.14s call     tests/test_editor.py::test_a_static_page_opens_no_event_stream
0.14s call     tests/test_coedit.py::test_the_page_stops_saving_when_the_room_says_there_was_nothing_to_save
0.14s call     tests/test_gitdoor.py::test_a_file_name_nobody_should_have_used_is_still_only_text
0.13s setup    tests/test_render.py::test_pull_requests_are_offered_newest_first
0.13s teardown tests/test_coedit.py::test_a_draft_against_a_room_that_has_moved_is_reported_and_not_thrown_away
0.13s call     tests/test_table.py::test_what_the_server_refuses_a_row_with_is_shown_beside_it
0.13s call     tests/test_cli.py::test_render_writes_the_three_pages
0.13s call     tests/test_table.py::test_the_table_draws_its_rows_in_a_browser_that_refuses_storage
0.13s call     tests/test_table.py::test_a_reparent_leaves_no_derived_column_stale
0.13s setup    tests/test_render.py::test_a_pr_reference_completes_in_two_halves
0.13s setup    tests/test_render.py::test_load_is_charged_where_the_assignees_are
0.13s teardown tests/test_web.py::test_a_delete_tells_the_open_pages_which_record_went
0.13s setup    tests/test_render.py::test_pr_references_become_links_that_resolve
0.13s setup    tests/test_render.py::test_a_new_cycle_still_has_a_roster_to_set_availability_against
0.13s setup    tests/test_render.py::test_the_hatching_says_in_words_what_it_says_in_texture
0.13s setup    tests/test_render.py::test_a_size_is_split_evenly_between_the_people_on_it
0.13s setup    tests/test_render.py::test_one_capacity_formula_answers_both_cycle_pages
0.13s setup    tests/test_render.py::test_the_parent_reads_as_a_title_and_edits_as_an_id
0.13s setup    tests/test_render.py::test_weeks_bet_into_another_cycle_are_counted_beside_this_one
0.13s setup    tests/test_render.py::test_the_detail_page_links_dependencies_both_ways
0.13s setup    tests/test_render.py::test_a_person_over_their_availability_says_so_in_the_group_row
0.13s setup    tests/test_render.py::test_the_line_that_says_a_bet_does_not_fit_is_drawn_as_a_problem
0.13s setup    tests/test_render.py::test_a_person_is_weighed_in_weeks_and_not_in_things
0.13s setup    tests/test_render.py::test_a_recorded_cycle_is_its_roster_and_nobody_else
0.13s call     tests/test_table.py::test_the_kind_is_chosen_first_and_the_row_follows_from_it
0.13s setup    tests/test_render.py::test_the_people_page_says_when_its_filters_match_nothing
0.13s setup    tests/test_render.py::test_an_empty_field_is_a_dash_and_not_a_word
0.13s setup    tests/test_render.py::test_a_cycle_card_carries_the_meter_the_cycle_page_draws
0.13s setup    tests/test_render.py::test_a_cycle_bet_into_by_somebody_off_the_roster_is_not_counted_short
0.13s setup    tests/test_render.py::test_the_cycles_index_lists_every_cycle_the_plan_names
0.13s call     tests/test_notes.py::test_the_static_export_carries_every_note
0.13s setup    tests/test_render.py::test_a_node_says_its_status_without_using_colour
0.13s call     tests/test_gitdoor.py::test_a_plan_everybody_can_read_says_nothing_about_unreadable_files
0.13s call     tests/test_editor.py::test_cancelling_a_restored_draft_keeps_the_commit_it_was_written_against
0.13s setup    tests/test_render.py::test_a_rendered_file_dresses_its_cells_the_way_the_server_does
0.13s setup    tests/test_cascade.py::test_the_handle_between_the_panes_is_a_control_in_one_view_and_nowhere_else
0.13s teardown tests/test_web.py::test_a_write_is_broadcast_to_everybody_watching
0.13s setup    tests/test_cascade.py::test_the_full_page_class_does_not_beat_the_editing_class
0.13s setup    tests/test_render.py::test_a_bar_carries_what_it_is_holding
0.13s call     tests/test_table.py::test_the_static_export_offers_no_editing_at_all
0.13s setup    tests/test_render.py::test_the_page_is_allowed_to_talk_to_its_own_server
0.13s setup    tests/test_render.py::test_render_static_writes_every_page_and_says_which
0.13s call     tests/test_coedit.py::test_an_edit_across_an_emoji_reaches_the_room_as_the_character_it_was[\U0001f44d done\n-\U0001f44e done\n]
0.13s teardown tests/test_coedit.py::test_a_restored_draft_survives_the_welcome_and_is_offered_to_the_room
0.13s setup    tests/test_render.py::test_a_reader_who_asked_for_less_motion_gets_none_of_the_motion_there_is
0.12s call     tests/test_table.py::test_a_rendered_file_offers_no_row_to_type_into
0.12s setup    tests/test_render.py::test_a_first_heading_that_is_not_the_title_is_left_alone
0.12s call     tests/test_card.py::test_a_rendered_file_draws_a_card_with_no_server_to_ask
0.12s setup    tests/test_render.py::test_hiding_a_node_never_leaves_an_edge_pointing_at_nothing
0.12s setup    tests/test_render.py::test_drawing_a_dependency_does_not_write_one
0.12s setup    tests/test_render.py::test_a_heading_that_repeats_the_nav_is_announced_and_not_drawn
0.12s call     tests/test_coedit.py::test_an_edit_across_an_emoji_reaches_the_room_as_the_character_it_was[\U0001f916 written by an agent\n-\U0001f916 written by somebody\n]
0.12s setup    tests/test_render.py::test_no_colour_is_defined_only_in_the_dark_block
0.12s setup    tests/test_render.py::test_filter_state_lives_in_query_parameters
0.12s setup    tests/test_render.py::test_a_remembered_width_of_nothing_is_thrown_away
0.12s setup    tests/test_render.py::test_every_page_carries_a_skip_link_and_a_live_region
0.12s setup    tests/test_render.py::test_every_status_owns_a_mark_that_is_not_a_colour
0.12s setup    tests/test_render.py::test_the_motion_floor_is_the_shell_s_and_not_one_page_s
0.12s setup    tests/test_render.py::test_the_graph_commits_in_the_same_place_every_other_page_does
0.12s call     tests/test_coedit.py::test_an_edit_across_an_emoji_reaches_the_room_as_the_character_it_was[\U0001f1e9\U0001f1ea\n-\U0001f1e9\U0001f1eb\n]
0.12s setup    tests/test_render.py::test_the_theme_is_chosen_before_the_first_paint
0.12s setup    tests/test_render.py::test_the_people_page_lists_everyone_the_plan_names
0.12s setup    tests/test_render.py::test_the_page_draws_both_rules
0.12s setup    tests/test_render.py::test_a_hatch_is_drawn_in_the_ink_of_the_bar_it_covers
0.12s setup    tests/test_render.py::test_a_bar_says_its_status_without_using_colour
0.12s setup    tests/test_render.py::test_a_group_name_is_readable_inside_its_own_box
0.12s setup    tests/test_render.py::test_the_timeline_names_every_colour_it_draws
0.12s setup    tests/test_render.py::test_edges_turn_at_right_angles_and_are_drawn_beneath_the_boxes
0.12s setup    tests/test_render.py::test_a_batch_of_edges_is_saved_against_the_commit_before_it
0.12s setup    tests/test_render.py::test_a_chip_pair_is_readable_in_both_themes
0.12s setup    tests/test_render.py::test_the_font_licence_travels_with_the_font
0.12s setup    tests/test_render.py::test_the_people_page_is_one_table_with_one_header
0.12s setup    tests/test_render.py::test_no_page_uses_one_id_for_more_than_one_element
0.12s call     tests/test_coedit.py::test_an_edit_across_an_emoji_reaches_the_room_as_the_character_it_was[\U0001f600\U0001f601 ok\n-\U0001f601 ok\n]
0.12s setup    tests/test_render.py::test_every_page_carries_its_own_icon
0.12s setup    tests/test_render.py::test_a_status_carries_a_chip_palette_as_well_as_a_fill
0.12s setup    tests/test_editor.py::test_there_is_no_handle_where_there_is_nothing_to_divide[934]
0.12s setup    tests/test_render.py::test_a_boundary_and_an_absent_value_are_both_visible
0.12s setup    tests/test_render.py::test_the_timeline_filters_with_the_same_bar_the_table_does
0.12s setup    tests/test_render.py::test_no_page_reaches_the_network
0.12s setup    tests/test_render.py::test_every_view_links_to_the_detail_page
0.12s setup    tests/test_render.py::test_the_timeline_lists_beside_the_chart_what_the_chart_draws
0.12s setup    tests/test_render.py::test_the_graph_says_which_of_the_three_emptinesses_it_is
0.12s setup    tests/test_render.py::test_a_persons_rows_lead_with_what_they_own
0.12s setup    tests/test_render.py::test_every_page_echoes_the_iso_value_of_a_date_box
0.12s setup    tests/test_render.py::test_the_detail_page_names_each_document_it_holds
0.12s setup    tests/test_render.py::test_the_export_draws_no_sign_in
0.12s setup    tests/test_render.py::test_the_shaping_doc_does_not_repeat_the_heading_it_is_under
0.12s setup    tests/test_render.py::test_the_graph_repaints_rather_than_reloads_on_a_theme_change
0.12s setup    tests/test_render.py::test_every_page_can_draw_a_problem_and_a_focus_ring
0.12s setup    tests/test_render.py::test_the_page_names_its_fonts_once
0.12s setup    tests/test_render.py::test_a_rendered_plan_offers_no_dead_control
0.12s setup    tests/test_render.py::test_every_library_is_inlined_exactly_once_and_no_marker_survives
0.12s setup    tests/test_render.py::test_the_detail_page_opens_as_an_index_not_a_wall_of_text
0.12s setup    tests/test_render.py::test_every_status_fill_carries_ink_that_reads_on_it
0.12s setup    tests/test_render.py::test_the_app_moves_in_two_places
0.12s setup    tests/test_render.py::test_the_typeface_travels_with_the_page
0.12s setup    tests/test_render.py::test_a_bar_that_overruns_its_cycle_is_one_of_the_bars_on_the_corpus
0.12s setup    tests/test_render.py::test_the_libraries_are_inlined_rather_than_linked
0.12s setup    tests/test_render.py::test_the_detail_page_renders_the_shaping_doc_as_markdown
0.12s setup    tests/test_render.py::test_a_people_row_wears_the_chips_the_table_wears
0.12s setup    tests/test_render.py::test_the_five_fills_are_separated_by_lightness_and_not_only_by_hue
0.12s setup    tests/test_render.py::test_the_people_page_draws_the_control_bar_the_plan_draws
0.12s setup    tests/test_render.py::test_the_three_theme_blocks_agree_about_every_colour
0.12s setup    tests/test_render.py::test_the_cycle_band_is_one_token_and_it_can_be_seen
0.12s setup    tests/test_render.py::test_the_graph_filters_the_plan_the_way_the_table_does
0.12s setup    tests/test_render.py::test_a_span_less_entity_is_listed_but_not_drawn
0.12s setup    tests/test_render.py::test_a_ready_pitch_missing_a_no_gos_section_is_told_so_on_its_own_page
0.12s setup    tests/test_render.py::test_the_detail_page_wears_the_same_chips_every_other_view_wears
0.12s setup    tests/test_render.py::test_a_pitch_draws_its_tasks_as_the_progress_it_has_made
0.12s setup    tests/test_render.py::test_the_icon_needs_no_escaping_to_sit_in_an_attribute
0.12s setup    tests/test_render.py::test_the_detail_column_is_centred_and_the_facts_sit_beside_the_document
0.12s setup    tests/test_render.py::test_the_furniture_every_page_shares_is_written_once
0.12s setup    tests/test_render.py::test_a_person_row_says_which_hat_they_are_wearing
0.12s setup    tests/test_render.py::test_no_page_asks_the_network_for_a_font
0.12s setup    tests/test_render.py::test_the_timeline_hatches_what_it_is_guessing
0.12s setup    tests/test_render.py::test_the_table_carries_every_entity_and_its_derived_dates
0.12s setup    tests/test_render.py::test_the_ink_on_a_shape_stays_a_per_status_token
0.12s setup    tests/test_render.py::test_a_status_colour_is_a_token_and_not_baked_into_a_bar
0.12s setup    tests/test_render.py::test_the_graph_carries_one_hint_and_no_mode_paragraph
0.12s setup    tests/test_render.py::test_opening_a_node_takes_two_clicks
0.12s setup    tests/test_render.py::test_the_legend_draws_a_cycle_boundary_the_way_the_plot_does
0.12s call     tests/test_coedit.py::test_an_edit_across_an_emoji_reaches_the_room_as_the_character_it_was[a fine result\n-a fine \U0001f389 result\n]
0.12s setup    tests/test_render.py::test_the_table_shows_a_persistent_blocker_count
0.12s setup    tests/test_render.py::test_one_quantity_is_called_appetite_wherever_it_is_read
0.12s setup    tests/test_render.py::test_every_person_links_to_the_table_filtered_by_them
0.12s setup    tests/test_render.py::test_a_detail_page_exists_for_every_entity
0.12s setup    tests/test_render.py::test_a_cycle_with_no_record_is_weeks_bet_against_no_roster
0.12s setup    tests/test_render.py::test_a_pitch_says_what_its_tasks_add_up_to_beside_what_it_was_bet_at
0.12s setup    tests/test_render.py::test_every_person_row_links_to_the_entity
0.12s setup    tests/test_render.py::test_the_dash_that_means_no_value_is_readable
0.12s setup    tests/test_render.py::test_the_timeline_draws_cycle_boundaries_and_today
0.12s setup    tests/test_render.py::test_one_persons_rows_do_not_run_into_the_next
0.12s setup    tests/test_render.py::test_every_page_carries_the_toggle
0.12s setup    tests/test_render.py::test_every_filter_offers_a_way_back_to_everything
0.12s setup    tests/test_render.py::test_the_graph_names_every_colour_it_draws_with
0.12s setup    tests/test_render.py::test_a_dependency_arrow_can_be_seen_on_the_canvas_it_is_drawn_on
0.12s setup    tests/test_render.py::test_the_people_page_is_alphabetical_and_filterable
0.12s setup    tests/test_render.py::test_the_graph_is_a_compound_dag_coloured_by_status
0.12s setup    tests/test_render.py::test_a_cycle_gets_a_band_of_its_own_above_the_months
0.12s setup    tests/test_render.py::test_the_detail_page_shows_the_derived_dates_and_the_explanation
0.12s setup    tests/test_render.py::test_every_page_names_itself_and_holds_exactly_one_main
0.12s call     tests/test_exclusion.py::test_an_unplanned_record_is_on_its_own_page_and_the_landing_and_nowhere_else
0.12s call     tests/test_table.py::test_the_count_says_how_many_rows_there_are_to_be_shown_of
0.12s call     tests/test_coedit.py::test_a_draft_in_the_box_is_offered_to_a_room_that_has_not_moved
0.12s call     tests/test_table.py::test_a_half_filled_row_is_not_remembered_anywhere
0.12s call     tests/test_coedit.py::test_saving_in_a_room_leaves_the_read_view_showing_what_was_saved
0.12s setup    tests/test_coedit.py::test_one_member_who_stops_reading_freezes_nobody
0.12s call     tests/test_table.py::test_a_row_with_no_title_is_never_sent
0.12s call     tests/test_coedit.py::test_what_the_room_said_about_a_save_survives_the_reload
0.11s call     tests/test_table.py::test_a_row_created_inline_goes_through_the_one_create_route
0.11s call     tests/test_schedule.py::test_step7_one_item_per_worker_at_a_time_but_unowned_work_is_unlimited
0.11s call     tests/test_coedit.py::test_the_parsed_editing_surface_answers_the_body_the_server_rendered
0.11s call     tests/test_table.py::test_the_created_row_is_re_read_rather_than_invented
0.11s setup    tests/test_injection.py::test_no_static_page_lets_a_field_become_markup
0.11s call     tests/test_writes.py::test_every_page_that_writes_reads_a_conflict_the_same_way[detail]
0.11s setup    tests/test_cascade.py::test_every_control_on_every_page_is_drawn_the_same[timeline]
0.11s setup    tests/test_editor.py::test_a_write_from_the_cycle_page_is_not_reported_back_as_somebody_else_s
0.11s setup    tests/test_cascade.py::test_the_record_pages_bar_still_beats_the_field_rule_it_once_lost_to
0.11s call     tests/test_coedit.py::test_the_page_degrades_to_todays_editor_when_the_socket_never_opens
0.11s call     tests/test_table.py::test_a_drop_is_one_patch_of_one_field_through_the_save_path
0.11s setup    tests/test_cascade.py::test_a_hidden_control_stays_hidden_on_the_one_stylesheet
0.11s call     tests/test_render.py::test_every_icon_is_a_row_in_the_picker_with_its_name_beside_it
0.11s teardown tests/test_coedit.py::test_a_commit_never_deletes_what_was_typed_during_it
0.11s call     tests/test_table.py::test_a_redraw_in_the_middle_of_a_move_leaves_the_last_row_saying_what_it_says
0.11s setup    tests/test_cascade.py::test_the_box_on_a_record_page_is_monospace_and_fits_its_pane
0.11s setup    tests/test_cascade.py::test_every_control_on_every_page_is_drawn_the_same[create]
0.11s call     tests/test_table.py::test_the_row_says_which_columns_it_cannot_be_typed_into_and_why
0.11s setup    tests/test_cascade.py::test_every_control_on_every_page_is_drawn_the_same[graph]
0.11s call     tests/test_web.py::test_the_parse_cache_survives_readers_arriving_at_once
0.11s setup    tests/test_cascade.py::test_the_handle_between_the_panes_is_one_control_on_the_one_stylesheet
0.11s call     tests/test_writes.py::test_the_tables_conflict_banner_goes_when_the_next_save_lands
0.11s call     tests/test_notes.py::test_a_note_promotes_into_a_record_that_validates
0.11s call     tests/test_table.py::test_a_row_can_be_taken_out_of_what_holds_it
0.10s setup    tests/test_cascade.py::test_every_control_on_every_page_is_drawn_the_same[detail]
0.10s call     tests/test_table.py::test_a_row_can_be_moved_without_a_mouse
0.10s setup    tests/test_cascade.py::test_no_stylesheet_has_an_unclosed_comment
0.10s setup    tests/test_cascade.py::test_every_control_on_every_page_is_drawn_the_same[table]
0.10s call     tests/test_exclusion.py::test_a_row_filed_under_an_unplanned_record_refuses_the_move_and_says_where
0.10s call     tests/test_table.py::test_every_other_column_sorts_flat
0.10s call     tests/test_render.py::test_an_icon_nothing_draws_costs_the_drawing_and_nothing_else
0.10s call     tests/test_writes.py::test_a_conflict_creating_an_entity_is_not_printed_as_refused
0.10s call     tests/test_render.py::test_a_persons_icon_is_drawn_in_the_page_and_not_fetched
0.10s call     tests/test_web.py::test_every_route_says_which_nav_item_it_is
0.10s call     tests/test_writes.py::test_every_page_that_writes_reads_a_conflict_the_same_way[new]
0.10s call     tests/test_table.py::test_a_filtered_table_keeps_the_tree_and_counts_only_the_answers
0.10s call     tests/test_table.py::test_the_indent_never_takes_the_drop_target_with_it
0.10s call     tests/test_table.py::test_a_row_kept_for_context_is_still_a_record
0.10s call     tests/test_table.py::test_the_connector_that_ends_a_branch_is_the_last_row_drawn
0.10s call     tests/test_cascade.py::test_a_conflict_report_is_a_report_on_the_table_as_well_as_the_detail_page
0.10s call     tests/test_facets.py::test_no_two_scripts_on_a_page_declare_the_same_name[graph]
0.10s call     tests/test_table.py::test_escape_leaves_the_row_where_it_was
0.10s setup    tests/test_writes.py::test_a_server_fault_gives_the_cycle_page_back
0.10s call     tests/test_render.py::test_a_rendered_block_carries_the_source_line_it_came_from
0.10s call     tests/test_hill.py::test_the_hill_can_say_the_word_without_printing_it
0.10s call     tests/test_validate.py::test_check_over_the_seed_corpus_prints_exactly_the_validated_problems
0.09s call     tests/test_table.py::test_the_id_sort_draws_the_plan_depth_first
0.09s call     tests/test_table.py::test_the_row_a_drop_would_land_in_is_named_beside_the_cursor
0.09s call     tests/test_table.py::test_a_drop_that_breaks_containment_is_refused_before_it_is_sent
0.09s setup    tests/test_cascade.py::test_a_refused_cell_says_so_on_a_frozen_column_too[title]
0.09s call     tests/test_writes.py::test_every_page_that_writes_reads_a_conflict_the_same_way[table]
0.09s call     tests/test_injection.py::test_the_combobox_popup_does_not_let_a_suggestion_become_markup[one entity 0]
0.09s setup    tests/test_facets.py::test_no_two_scripts_on_a_page_declare_the_same_name[table]
0.09s call     tests/test_coedit.py::test_the_two_implementations_agree_about_a_body_that_is_not_ascii
0.09s call     tests/test_cli.py::test_the_demo_repository_goes_when_the_server_does
0.09s call     tests/test_table.py::test_a_row_that_may_hold_it_says_so_before_the_mouse_arrives
0.09s setup    tests/test_cascade.py::test_a_refused_cell_says_so_on_a_frozen_column_too[owner]
0.09s call     tests/test_table.py::test_the_table_ends_in_a_row_that_makes_one
0.09s call     tests/test_facets.py::test_no_two_scripts_on_a_page_declare_the_same_name[table]
0.09s call     tests/test_table.py::test_a_row_that_belongs_to_nothing_is_never_offered_a_move
0.09s setup    tests/test_render.py::test_the_headings_a_server_draws_are_the_same_two_kinds
0.09s setup    tests/test_cascade.py::test_the_picker_is_hidden_by_the_attribute_and_not_by_source_order
0.08s call     tests/test_injection.py::test_the_combobox_popup_does_not_let_a_suggestion_become_markup[new task]
0.08s call     tests/test_records.py::test_a_state_only_the_script_reaches_is_announced_and_only_once
0.08s call     tests/test_records.py::test_a_predicate_in_the_url_filters_rows_and_an_unmatched_one_is_a_sentence
0.08s call     tests/test_credential.py::test_the_assertion_is_actually_signed
0.08s call     tests/test_render.py::test_one_persons_rows_do_not_run_into_the_next
0.08s call     tests/test_table.py::test_a_blocker_that_is_done_is_not_a_blocker
0.08s setup    tests/test_edges.py::test_an_existing_dependency_can_be_taken_off_the_diagram
0.08s call     tests/test_records.py::test_a_lost_payload_degrades_to_an_unfiltered_list_and_says_so
0.08s setup    tests/test_edges.py::test_an_edge_drawn_by_mistake_is_simply_undrawn
0.08s setup    tests/test_edges.py::test_reset_and_leaving_the_mode_both_put_a_marked_edge_back
0.08s call     tests/test_writes.py::test_a_save_addresses_the_row_it_was_pressed_on
0.08s call     tests/test_records.py::test_an_unreadable_query_goes_to_the_error_region_not_to_a_row
0.08s call     tests/test_hill.py::test_the_card_draws_the_hill_and_keeps_the_word
0.08s setup    tests/test_cascade.py::test_the_frozen_columns_keep_the_position_their_left_offset_is_meant_for
0.08s setup    tests/test_cascade.py::test_every_rule_that_corrects_a_frozen_column_outweighs_it
0.08s setup    tests/test_facets.py::test_the_closed_control_says_what_is_set
0.08s setup    tests/test_cascade.py::test_the_column_control_is_drawn_as_a_control_and_the_label_is_not
0.08s setup    tests/test_table.py::test_the_column_control_opens_the_column_and_closes_it
0.08s setup    tests/test_cascade.py::test_the_suggestion_popup_hangs_off_the_body_where_nothing_clips_it
0.08s call     tests/test_hill.py::test_a_word_the_card_does_not_know_gets_no_ball_either
0.08s setup    tests/test_cascade.py::test_the_table_body_scrolls_in_a_box_that_clips_what_is_inside_it
0.08s setup    tests/test_cascade.py::test_a_problem_on_a_frozen_column_still_gets_its_ground[warn-title]
0.08s call     tests/test_render.py::test_render_static_writes_every_page_and_says_which
0.08s setup    tests/test_cascade.py::test_the_title_header_keeps_the_rule_along_its_bottom_edge
0.08s setup    tests/test_table.py::test_the_header_fits_at_the_width_the_fit_may_squeeze_it_to
0.08s setup    tests/test_table.py::test_the_header_and_the_frozen_pair_hold_when_the_rows_are_tall
0.08s call     tests/test_records.py::test_the_issues_view_box_searches_issues_and_nothing_else
0.08s setup    tests/test_facets.py::test_clearing_puts_every_field_back
0.07s setup    tests/test_cascade.py::test_a_problem_on_a_frozen_column_still_gets_its_ground[blocker-id]
0.07s setup    tests/test_cascade.py::test_a_problem_on_a_frozen_column_still_gets_its_ground[warn-owner]
0.07s setup    tests/test_cascade.py::test_a_problem_on_a_frozen_column_still_gets_its_ground[blocker-title]
0.07s call     tests/test_writes.py::test_an_availability_that_is_not_a_number_is_refused_rather_than_dropped[0]
0.07s setup    tests/test_cascade.py::test_a_problem_on_a_frozen_column_still_gets_its_ground[warn-id]
0.07s setup    tests/test_cascade.py::test_a_refused_cell_says_so_on_a_frozen_column_too[id]
0.07s setup    tests/test_cascade.py::test_a_frozen_cell_never_asks_for_an_outset_shadow
0.07s setup    tests/test_facets.py::test_the_way_out_appears_only_when_there_is_one
0.07s setup    tests/test_facets.py::test_the_server_answers_the_same_two_values
0.07s setup    tests/test_cascade.py::test_the_frozen_edge_is_drawn_only_while_the_table_is_scrolled
0.07s setup    tests/test_facets.py::test_a_facet_reads_as_a_menu_and_not_as_a_box_to_type_in
0.07s setup    tests/test_table.py::test_a_revealed_cell_can_be_put_back
0.07s call     tests/test_writes.py::test_a_pick_made_with_the_keyboard_is_sent_stored_and_shown
0.07s setup    tests/test_cascade.py::test_a_problem_on_a_frozen_column_still_gets_its_ground[blocker-owner]
0.07s setup    tests/test_search.py::test_every_searchable_field_is_reachable_from_the_box
0.07s call     tests/test_table.py::test_an_empty_plan_still_offers_the_row_that_would_end_it
0.07s setup    tests/test_facets.py::test_opening_one_field_closes_the_last
0.07s setup    tests/test_cascade.py::test_the_frozen_headers_are_drawn_over_the_rows_that_pass_under_them
0.07s setup    tests/test_table.py::test_an_expanded_column_is_a_way_of_reading_and_not_a_setting
0.07s setup    tests/test_facets.py::test_one_value_is_named_and_unticking_it_puts_the_field_back
0.07s setup    tests/test_card.py::test_a_rendered_file_draws_a_card_with_no_server_to_ask
0.07s setup    tests/test_search.py::test_the_box_and_the_server_find_the_same_records
0.07s call     tests/test_writes.py::test_the_same_refusal_twice_is_still_read_out
0.07s call     tests/test_headers.py::test_every_response_says_what_it_may_do[/]
0.07s setup    tests/test_facets.py::test_escape_closes_the_menu_and_hands_the_keyboard_back
0.07s setup    tests/test_facets.py::test_two_values_of_one_field_mean_either
0.07s call     tests/test_facets.py::test_no_two_scripts_on_a_page_declare_the_same_name[timeline]
0.07s setup    tests/test_seats.py::test_a_reader_holds_no_seat
0.07s call     tests/test_themes.py::test_the_stylesheet_answers_all_three_states_of_the_switch
0.07s setup    tests/test_card.py::test_the_three_views_draw_the_same_card
0.07s setup    tests/test_graph_layout.py::test_the_grouping_holds_on_a_plan_larger_than_the_real_one
0.07s setup    tests/test_search.py::test_a_half_typed_query_says_what_is_wrong_with_it
0.07s call     tests/test_table.py::test_the_popup_a_cell_opens_hangs_off_the_body_and_not_off_the_cell
0.07s setup    tests/test_search.py::test_both_halves_refuse_the_same_queries_with_the_same_sentence
0.07s call     tests/test_injection.py::test_the_combobox_popup_does_not_let_a_suggestion_become_markup[table]
0.07s setup    tests/test_search.py::test_the_language_is_evaluated_the_same_in_the_browser
0.07s setup    tests/test_cascade.py::test_the_open_picker_is_painted_over_the_sticky_header_and_not_under_it
0.07s setup    tests/test_cascade.py::test_the_picker_scrolls_inside_itself_rather_than_off_the_page
0.07s setup    tests/test_search.py::test_nothing_malformed_is_quietly_accepted
0.07s setup    tests/test_search.py::test_a_word_only_in_a_shaping_document_is_not_a_match
0.07s setup    tests/test_delete.py::test_delete_leaves_while_an_edit_is_open
0.07s setup    tests/test_cascade.py::test_a_mark_does_not_shrink_out_of_the_line_it_sits_in
0.07s setup    tests/test_graph_layout.py::test_a_card_stays_where_it_was_dragged
0.07s setup    tests/test_search.py::test_a_query_that_reads_leaves_nothing_said
0.07s setup    tests/test_seats.py::test_nobody_is_drawn_a_band_for_themselves
0.07s setup    tests/test_seats.py::test_a_seat_band_lands_on_the_right_line_at_a_width_that_wraps
0.07s setup    tests/test_delete.py::test_the_delete_under_a_record_is_the_delete_of_that_record
0.07s setup    tests/test_graph_layout.py::test_an_edge_that_crosses_a_card_is_drawn_under_it
0.07s setup    tests/test_seats.py::test_two_people_get_two_colours_and_two_places
0.07s call     tests/test_writes.py::test_a_refused_pick_leaves_the_list_open_with_the_reason_beside_it
0.07s setup    tests/test_cascade.py::test_a_refusal_lands_somewhere_a_sighted_reader_can_read_it
0.07s call     tests/test_table.py::test_the_reveal_line_cannot_smuggle_markup_into_the_cell
0.07s call     tests/test_writes.py::test_an_availability_that_is_not_a_number_is_refused_rather_than_dropped[  ]
0.07s setup    tests/test_card.py::test_the_card_arrives_in_one_piece
0.07s call     tests/test_render.py::test_an_editable_page_reaches_the_network_no_more_than_a_read_only_one
0.07s setup    tests/test_seats.py::test_the_second_surface_says_it_cannot_draw_where_anybody_is
0.07s setup    tests/test_graph_layout.py::test_the_two_key_rows_are_one_length_and_sit_on_the_drawing
0.07s setup    tests/test_cascade.py::test_a_refusal_is_coloured_as_one_and_a_receipt_is_not
0.07s call     tests/test_facets.py::test_no_two_scripts_on_a_page_declare_the_same_name[cycle]
0.07s setup    tests/test_seats.py::test_this_tab_says_where_it_is_sitting
0.07s call     tests/test_facets.py::test_no_two_scripts_on_a_page_declare_the_same_name[records]
0.07s call     tests/test_injection.py::test_the_table_cell_editor_does_not_let_a_stored_value_become_markup
0.07s setup    tests/test_facets.py::test_an_open_menu_is_not_painted_over[graph]
0.07s setup    tests/test_facets.py::test_an_open_menu_is_not_painted_over[timeline]
0.07s setup    tests/test_facets.py::test_no_two_scripts_on_a_page_declare_the_same_name[records]
0.07s setup    tests/test_hill.py::test_a_cancelled_drag_puts_the_ball_back
0.07s setup    tests/test_card.py::test_a_pointer_passing_over_a_row_does_not_open_a_card
0.07s setup    tests/test_delete.py::test_a_refusal_is_shown_where_the_question_was_asked
0.07s call     tests/test_facets.py::test_no_two_scripts_on_a_page_declare_the_same_name[detail]
0.07s setup    tests/test_card.py::test_a_box_answers_for_its_label_and_not_for_its_acres
0.07s call     tests/test_product.py::test_a_product_can_be_made_through_the_api
0.07s setup    tests/test_hill.py::test_dragging_the_ball_lands_on_a_stop
0.07s setup    tests/test_seats.py::test_the_room_draws_a_band_where_somebody_else_is
0.07s setup    tests/test_seats.py::test_somebody_elses_keystroke_leaves_the_numbers_counting_the_document_there_is_now
0.07s setup    tests/test_delete.py::test_the_commit_bar_is_not_on_screen_when_there_is_nothing_to_commit
0.07s call     tests/test_writes.py::test_the_listbox_opens_moves_under_the_arrows_and_closes_on_escape
0.07s setup    tests/test_hill.py::test_pressing_a_stop_moves_the_ball_and_the_form
0.07s setup    tests/test_hill.py::test_cancelling_an_edit_rolls_the_ball_back
0.07s setup    tests/test_card.py::test_a_card_at_the_edge_of_the_window_stays_inside_it
0.07s setup    tests/test_card.py::test_the_card_can_be_reached_and_stays_while_the_pointer_is_in_it
0.07s setup    tests/test_card.py::test_the_card_says_the_things_a_row_does_not
0.07s setup    tests/test_seats.py::test_the_next_session_is_one_seat_not_two
0.07s setup    tests/test_delete.py::test_it_takes_two_presses_and_the_first_one_writes_nothing
0.07s setup    tests/test_facets.py::test_an_open_menu_is_not_painted_over[table]
0.07s setup    tests/test_card.py::test_a_nine_hundred_word_document_does_not_cover_the_table
0.07s setup    tests/test_facets.py::test_a_link_opens_with_its_boxes_ticked
0.07s setup    tests/test_card.py::test_the_document_is_drawn_under_the_fields
0.07s setup    tests/test_hill.py::test_the_hill_takes_a_keyboard
0.07s setup    tests/test_facets.py::test_the_people_page_honours_both_values_too
0.07s setup    tests/test_graph_layout.py::test_a_card_wears_both_its_marks_in_front_of_its_name
0.07s setup    tests/test_card.py::test_one_card_holds_one_document
0.07s setup    tests/test_facets.py::test_no_two_scripts_on_a_page_declare_the_same_name[timeline]
0.07s setup    tests/test_search.py::test_not_takes_records_away
0.07s call     tests/test_issues.py::test_the_seed_corpus_issues_load_as_records_off_the_plan
0.07s setup    tests/test_hill.py::test_the_ball_is_painted_where_the_geometry_says
0.07s call     tests/test_notes.py::test_the_shipped_demo_carries_notes_that_load
0.07s setup    tests/test_card.py::test_a_document_that_arrives_late_is_not_drawn_on_the_wrong_card
0.07s setup    tests/test_delete.py::test_the_question_names_the_record_it_is_about
0.07s setup    tests/test_hill.py::test_the_ball_follows_the_field_when_something_else_sets_it
0.07s call     tests/test_facets.py::test_no_two_scripts_on_a_page_declare_the_same_name[people]
0.07s setup    tests/test_search.py::test_adjacent_terms_are_anded
0.07s call     tests/test_injection.py::test_the_table_draws_its_rows_without_letting_a_field_become_markup
0.07s call     tests/test_render.py::test_an_empty_timeline_says_which_kind_of_empty_it_is
0.07s setup    tests/test_facets.py::test_no_two_scripts_on_a_page_declare_the_same_name[people]
0.07s setup    tests/test_card.py::test_a_refused_document_costs_the_document_and_nothing_else
0.07s setup    tests/test_facets.py::test_no_two_scripts_on_a_page_declare_the_same_name[cycle]
0.07s setup    tests/test_coedit.py::test_what_is_held_for_a_member_who_never_reads_is_bounded
0.07s setup    tests/test_delete.py::test_a_leaf_record_asks_a_plain_question
0.07s setup    tests/test_card.py::test_the_document_is_fetched_on_hover_and_not_shipped_with_the_rows
0.07s setup    tests/test_deck.py::test_no_slide_in_the_shipped_demo_is_a_heading_over_an_empty_page
0.07s setup    tests/test_coedit.py::test_a_restored_draft_survives_the_welcome_and_is_offered_to_the_room
0.07s setup    tests/test_facets.py::test_no_two_scripts_on_a_page_declare_the_same_name[detail]
0.07s setup    tests/test_hill.py::test_a_word_the_card_does_not_know_gets_no_ball_either
0.07s call     tests/test_index.py::test_a_pr_reference_is_searchable
0.07s setup    tests/test_coedit.py::test_a_draft_against_a_room_that_has_moved_is_reported_and_not_thrown_away
0.07s setup    tests/test_facets.py::test_no_two_scripts_on_a_page_declare_the_same_name[graph]
0.07s setup    tests/test_search.py::test_a_malformed_query_says_so_and_matches_nothing
0.07s setup    tests/test_delete.py::test_delete_stands_beside_edit_and_wears_what_edit_wears
0.07s setup    tests/test_search.py::test_a_pr_is_found_however_it_is_written
0.07s setup    tests/test_deck.py::test_a_record_that_is_only_its_bet_falls_back_to_what_it_was_going_to_do
0.07s setup    tests/test_search.py::test_the_empty_menu_option_is_askable_in_the_language
0.07s setup    tests/test_delete.py::test_the_panel_says_what_the_delete_will_take_with_it
0.07s setup    tests/test_delete.py::test_only_somebody_the_server_would_take_a_write_from_is_offered_the_button
0.07s setup    tests/test_delete.py::test_the_control_is_only_on_the_record_page
0.07s setup    tests/test_search.py::test_parentheses_change_the_answer
0.07s setup    tests/test_hill.py::test_the_read_only_hill_has_no_stops_on_it
0.07s setup    tests/test_search.py::test_a_field_asks_that_field_and_nothing_else
0.07s setup    tests/test_search.py::test_an_unknown_field_matches_nothing_rather_than_everything
0.07s setup    tests/test_credential.py::test_the_assertion_is_one_github_would_accept
0.07s setup    tests/test_search.py::test_two_tags_can_be_asked_for_at_once
0.07s setup    tests/test_coedit.py::test_a_commit_never_deletes_what_was_typed_during_it
0.07s setup    tests/test_hill.py::test_the_status_row_is_a_hill_and_the_dropdown_is_gone
0.07s setup    tests/test_search.py::test_a_bare_word_is_a_substring_of_the_searchable_text
0.07s setup    tests/test_hill.py::test_the_card_draws_the_hill_and_keeps_the_word
0.07s call     tests/test_index.py::test_work_running_past_its_cycles_build_is_a_filter
0.07s setup    tests/test_coedit.py::test_a_room_emptied_by_an_eviction_is_still_committed
0.07s call     tests/test_cli.py::test_the_shipped_demo_corpus_validates_clean
0.07s call     tests/test_writes.py::test_a_server_fault_gives_the_cycle_page_back
0.06s call     tests/test_cli.py::test_the_demo_is_drawn_around_the_day_its_own_corpus_calls_today
0.06s setup    tests/test_render.py::test_the_heading_costs_the_view_no_row[timeline]
0.06s call     tests/test_render.py::test_a_struck_out_line_and_a_task_list_render_as_what_they_are
0.06s setup    tests/test_render.py::test_a_sentence_about_the_view_never_costs_the_view_a_row[graph]
0.06s setup    tests/test_render.py::test_a_sentence_about_the_view_never_costs_the_view_a_row[timeline]
0.06s setup    tests/test_render.py::test_the_heading_costs_the_view_no_row[graph]
0.06s setup    tests/test_render.py::test_the_box_each_view_fills_stops_where_the_window_does[timeline]
0.06s call     tests/test_writes.py::test_a_conflict_on_a_bet_says_what_moved
0.06s setup    tests/test_render.py::test_the_heading_costs_the_view_no_row[table]
0.06s setup    tests/test_render.py::test_the_current_nav_item_is_drawn_and_not_merely_resolved
0.06s setup    tests/test_render.py::test_a_sentence_about_the_view_never_costs_the_view_a_row[table]
0.06s call     tests/test_identity.py::test_the_seed_corpus_reports_no_identity_problem
0.06s setup    tests/test_render.py::test_a_window_that_changes_under_an_open_page_is_measured_again
0.06s call     tests/test_writes.py::test_the_words_the_server_refused_with_are_the_words_on_the_page
0.06s setup    tests/test_render.py::test_the_box_each_view_fills_stops_where_the_window_does[table]
0.06s call     tests/test_writes.py::test_an_availability_that_is_not_a_number_is_refused_rather_than_dropped[50%]
0.06s call     tests/test_writes.py::test_a_receipt_is_not_blanked_by_an_edit_made_before_it
0.06s call     tests/test_writes.py::test_an_availability_that_is_not_a_number_is_refused_rather_than_dropped[half]
0.06s setup    tests/test_render.py::test_the_box_each_view_fills_stops_where_the_window_does[graph]
0.06s call     tests/test_writes.py::test_a_conflict_saving_the_setup_says_what_moved
0.06s call     tests/test_notes.py::test_the_promote_control_is_not_offered_where_it_cannot_work
0.06s call     tests/test_table.py::test_a_window_wider_than_the_plan_gives_the_slack_to_tags
0.06s call     tests/test_web.py::test_a_done_date_at_the_end_of_the_calendar_leaves_a_timeline_you_can_open
0.06s call     tests/test_writes.py::test_a_word_typed_into_a_date_box_reaches_the_server_as_the_word
0.06s call     tests/test_writes.py::test_a_roster_that_is_all_numbers_is_sent_whole
0.06s call     tests/test_writes.py::test_an_availability_that_is_not_a_number_is_refused_rather_than_dropped[]
0.06s call     tests/test_render.py::test_the_timeline_survives_a_date_at_the_end_of_the_calendar
0.06s call     tests/test_coedit.py::test_the_served_detail_page_carries_the_room_and_no_other_page_does
0.06s call     tests/test_gitdoor.py::test_the_banner_does_not_change_the_shape_of_a_page_it_names
0.06s call     tests/test_render.py::test_a_bar_at_the_end_of_time_does_not_make_a_page_nobody_can_open
0.06s call     tests/test_writes.py::test_every_page_that_writes_reads_a_conflict_the_same_way[cycle]
0.06s call     tests/test_coedit.py::test_the_static_export_carries_no_socket
0.06s call     tests/test_injection.py::test_no_static_page_lets_a_field_become_markup
0.05s call     tests/test_render.py::test_the_app_moves_in_two_places
0.05s setup    tests/test_index.py::test_the_has_blocker_predicate_is_the_strict_half_of_missing_required_fields
0.05s call     tests/test_web.py::test_a_write_is_broadcast_to_everybody_watching
0.05s call     tests/test_delete.py::test_only_somebody_the_server_would_take_a_write_from_is_offered_the_button
0.05s call     tests/test_payload.py::test_every_page_still_serves_when_a_file_carries_such_a_size[.inf]
0.05s setup    tests/test_injection.py::test_the_fixture_really_is_hostile
0.05s call     tests/test_payload.py::test_every_page_still_serves_when_a_file_carries_such_a_size[.nan]
0.05s call     tests/test_payload.py::test_every_page_still_serves_when_a_file_carries_such_a_size[-.inf]
0.05s call     tests/test_render.py::test_a_plan_where_nobody_has_picked_one_draws_the_page_as_it_was
0.05s setup    tests/test_index.py::test_the_build_end_a_predicate_uses_is_the_one_the_timeline_uses
0.05s call     tests/test_cli.py::test_schedule_accepts_an_explicit_today
0.05s call     tests/test_cli.py::test_schedule_json_round_trips
0.05s call     tests/test_web.py::test_a_committed_parent_that_names_nothing_leaves_every_page_readable
0.05s setup    tests/test_cascade.py::test_a_drawn_mark_has_a_size_of_its_own[draft-cancel]
0.05s call     tests/test_render.py::test_the_nav_says_which_page_you_are_on
0.05s setup    tests/test_cascade.py::test_a_conflict_report_is_a_report_on_the_table_as_well_as_the_detail_page
0.05s call     tests/test_web.py::test_a_committed_size_larger_than_the_calendar_leaves_every_page_readable
