# openproj CI durations on the 4-core public runner — EVERY test, no threshold
#
# Run:     https://github.com/jcanton/openproj/actions/runs/32754826551
# Jobs:    suite (editor|views|graph|coedit|rest), ubuntu-latest, 2026-08-24
# Commit:  branch ci-four-cores (PR #108).
# Command: uv run pytest -q --durations=0 --durations-min=0 $files
# Result:  green on all five legs. Printed pytest wall per leg:
#            editor 113.18s (235 tests)   views  101.95s (415)
#            graph  120.58s (305)         coedit 116.81s (622)
#            rest    98.10s (241)
#          550.62s of pytest across five machines; 532.3s of it is in the rows
#          below, and the 18s difference is collection and imports.
#
# The runner, from the probe step in the same jobs. Every earlier table in this
# directory was taken on the 2-core, 8 GB box GitHub gives a PRIVATE repository;
# this one went public on 2026-08-23:
#   nproc            4
#   MemTotal         15.6 GB
#   google-chrome    151.0.7922.137
#   node             v24.19.0
#
# **`--durations-min=0`, and that is the point of this file.** The two older
# tables used 0.05, which is the default the original probe reached for, and it
# hid 37s of a 538s suite — 16s of it on the one leg with 1103 tests and 3s on
# the leg with 79. A shard cut made from a table with a floor underestimates
# exactly the leg holding most of the suite, which is what happened: a cut made
# from the 0.05 table, with a fitted term to compensate, moved the critical path
# from 120.39s to 120.22s. The fit is gone and so is the floor.
#
# Rows are grouped by the leg that produced them. A file's cost here is its cost
# running BESIDE the rest of its own leg, which is the number a cut needs.

# --- suite (editor) ---
12.34s call     tests/test_editor.py::test_cancel_puts_the_fields_back
5.60s call     tests/test_editor.py::test_the_editor_is_chosen_by_the_address_and_by_nothing_else
2.55s call     tests/test_editor.py::test_the_keymap_a_person_chose_is_the_one_the_next_session_opens_in
2.51s call     tests/test_editor.py::test_a_link_to_the_split_view_opens_in_the_split_view
2.36s call     tests/test_editor.py::test_the_split_dragged_to_the_end_on_a_wide_screen_is_the_one_that_comes_back[3440]
2.23s call     tests/test_editor.py::test_the_split_dragged_to_the_end_on_a_wide_screen_is_the_one_that_comes_back[1400]
2.12s call     tests/test_themes.py::test_the_drawing_gets_colours_it_can_actually_read
2.07s call     tests/test_editor.py::test_the_pane_splitter_takes_a_focus_ring_that_is_actually_painted
2.04s call     tests/test_editor.py::test_a_view_link_is_sessionless_and_a_both_link_opens_a_session
1.40s call     tests/test_themes.py::test_every_scheme_is_readable_where_the_page_paints_it
1.40s call     tests/test_editor.py::test_a_substitution_that_types_an_emoji_keeps_every_later_run_where_it_belongs
1.39s call     tests/test_editor.py::test_what_the_second_surface_says_it_changed_is_what_the_room_changes
1.35s call     tests/test_editor.py::test_a_restored_draft_is_saved_against_the_commit_it_was_drafted_against
1.35s call     tests/test_editor.py::test_the_second_surface_holds_one_line_ending_whatever_is_pasted_into_it
1.33s call     tests/test_editor.py::test_the_second_editors_caret_is_reported_when_it_moves_and_not_when_it_types
1.33s call     tests/test_editor.py::test_the_toolbar_and_the_keymap_do_not_cancel_each_other
1.33s call     tests/test_editor.py::test_every_line_number_sits_on_the_line_it_numbers
1.32s call     tests/test_themes.py::test_the_picker_puts_the_scheme_on_the_page_and_takes_it_off_again
1.31s call     tests/test_editor.py::test_a_remote_keystroke_between_the_halves_of_a_pair_reaches_the_surface_whole[ace]
1.30s call     tests/test_editor.py::test_the_width_handle_finds_the_pane_in_every_view
1.30s call     tests/test_editor.py::test_the_history_buttons_reach_the_second_editors_own_stack
1.29s call     tests/test_editor.py::test_no_editor_asks_for_a_script_after_the_page_has_loaded
1.28s call     tests/test_themes.py::test_a_scheme_reaches_the_boxes_people_type_into
1.27s call     tests/test_editor.py::test_every_button_on_the_toolbar_can_be_reached_at_a_window_that_is_not_wide[1000-detail]
1.27s call     tests/test_editor.py::test_the_view_a_person_chose_is_the_one_the_next_session_opens_in
1.25s call     tests/test_editor.py::test_cancelling_an_edit_nobody_made_says_nothing
1.23s call     tests/test_editor.py::test_escape_still_arms_the_tab_hatch_where_the_box_is_on_the_page
1.22s call     tests/test_editor.py::test_the_length_and_the_ceiling_are_not_the_same_number_on_a_document_that_is_not_ascii
1.21s call     tests/test_editor.py::test_every_button_on_the_toolbar_can_be_reached_at_a_window_that_is_not_wide[1000-note]
1.21s call     tests/test_editor.py::test_the_three_views_are_one_of_three_and_each_pane_scrolls_on_its_own
1.21s call     tests/test_editor.py::test_the_two_panes_scroll_to_the_same_line
1.20s call     tests/test_editor.py::test_the_length_says_the_ceiling_before_a_save_is_refused
1.18s call     tests/test_editor.py::test_every_button_on_the_toolbar_can_be_reached_at_a_window_that_is_not_wide[500-detail]
1.17s call     tests/test_editor.py::test_the_preview_keeps_up_and_stays_where_the_reader_left_it
1.16s call     tests/test_editor.py::test_the_new_marks_write_blocks_and_a_pasted_url_becomes_the_link_it_is[1000]
1.16s call     tests/test_editor.py::test_a_remote_keystroke_between_the_halves_of_a_pair_reaches_the_surface_whole[plain]
1.16s call     tests/test_editor.py::test_the_join_between_the_panes_moves_for_the_keyboard_too
1.15s call     tests/test_editor.py::test_every_button_on_the_toolbar_can_be_reached_at_a_window_that_is_not_wide[500-note]
1.14s call     tests/test_editor.py::test_there_is_no_handle_where_there_is_nothing_to_divide[1400]
1.14s call     tests/test_editor.py::test_tab_indents_the_lines_the_selection_touches
1.14s call     tests/test_editor.py::test_the_new_marks_write_blocks_and_a_pasted_url_becomes_the_link_it_is[1200]
1.13s call     tests/test_editor.py::test_the_facts_column_does_not_move_when_the_join_between_the_panes_does
1.12s call     tests/test_editor.py::test_the_split_a_reader_chose_is_there_the_next_time[None-False]
1.11s call     tests/test_editor.py::test_a_preview_that_has_been_overtaken_is_called_off
1.10s call     tests/test_editor.py::test_a_drag_the_browser_takes_away_lets_go_of_the_join
1.10s call     tests/test_editor.py::test_ending_a_session_leaves_the_surface_by_every_door
1.10s call     tests/test_editor.py::test_a_preview_that_fails_says_so_and_never_writes_the_word_undefined
1.09s call     tests/test_editor.py::test_a_draft_at_load_forces_a_session_and_the_room_refusal_still_fires
1.09s call     tests/test_editor.py::test_a_connection_that_drops_leaves_no_placeholder_and_no_sentence_that_is_still_true
1.09s call     tests/test_editor.py::test_the_editor_preference_is_one_key_and_survives_a_browser_that_refuses_storage
1.09s call     tests/test_editor.py::test_the_split_a_reader_chose_is_there_the_next_time[2.5-True]
1.09s call     tests/test_editor.py::test_the_split_a_reader_chose_is_there_the_next_time[400-False]
1.09s call     tests/test_editor.py::test_the_theme_toggle_and_the_way_in_come_into_the_surface_with_you
1.08s call     tests/test_editor.py::test_the_separator_hands_back_every_key_that_carries_a_modifier
1.08s call     tests/test_editor.py::test_the_box_and_the_column_beside_it_are_one_face
1.07s call     tests/test_editor.py::test_the_history_buttons_use_the_browsers_own_stack_when_there_is_no_room
1.07s call     tests/test_editor.py::test_the_split_a_reader_chose_is_there_the_next_time[wide-False]
1.07s call     tests/test_editor.py::test_there_is_no_handle_where_there_is_nothing_to_divide[934]
1.07s call     tests/test_editor.py::test_the_status_bar_says_where_the_caret_is_how_long_it_is_and_what_tab_types
1.07s call     tests/test_editor.py::test_cancel_with_a_divergent_draft_lands_on_the_stored_commit
1.06s call     tests/test_editor.py::test_the_split_a_reader_chose_is_there_the_next_time[1-False]
1.05s call     tests/test_editor.py::test_a_throttled_draft_is_still_written_before_the_tab_can_be_closed
1.05s call     tests/test_editor.py::test_choosing_a_template_leaves_the_numbers_and_the_length_telling_the_truth
1.04s call     tests/test_editor.py::test_there_is_no_handle_where_there_is_nothing_to_divide[936]
1.04s call     tests/test_editor.py::test_the_full_page_surface_is_a_writing_surface_at_a_window_that_is_not_wide[detail]
1.04s call     tests/test_editor.py::test_a_stored_legacy_view_mode_opens_the_next_session_in_edit
1.02s call     tests/test_editor.py::test_cancel_leaves_the_surface_it_was_pressed_in
1.02s call     tests/test_editor.py::test_the_full_page_surface_is_a_writing_surface_at_a_window_that_is_not_wide[new]
1.00s call     tests/test_editor.py::test_there_is_no_handle_where_there_is_nothing_to_divide[700]
0.29s call     tests/test_editor.py::test_a_static_page_opens_no_event_stream
0.24s call     tests/test_issues.py::test_an_issue_closes_only_when_every_piece_it_was_pitched_into_is_finished
0.21s setup    tests/test_editor.py::test_the_detail_page_can_be_edited_in_place
0.20s call     tests/test_notes.py::test_the_static_export_carries_every_note
0.12s call     tests/test_editor.py::test_cancelling_a_restored_draft_keeps_the_commit_it_was_written_against
0.12s call     tests/test_notes.py::test_a_note_promotes_into_a_record_that_validates
0.11s call     tests/test_themes.py::test_the_stylesheet_answers_all_three_states_of_the_switch
0.11s call     tests/test_notes.py::test_the_shipped_demo_carries_notes_that_load
0.10s call     tests/test_issues.py::test_the_seed_corpus_issues_load_as_records_off_the_plan
0.08s call     tests/test_credential.py::test_the_assertion_is_actually_signed
0.08s call     tests/test_product.py::test_a_product_adds_no_indent_to_the_work_beneath_it
0.08s call     tests/test_notes.py::test_a_became_that_opens_nothing_leaves_the_note_thinking_and_says_so
0.07s setup    tests/test_editor.py::test_a_substitution_that_types_an_emoji_keeps_every_later_run_where_it_belongs
0.07s setup    tests/test_editor.py::test_a_view_change_tells_the_seat_layer_the_box_moved
0.07s setup    tests/test_editor.py::test_a_number_typed_as_a_word_is_refused_rather_than_committed
0.06s setup    tests/test_editor.py::test_the_new_marks_write_blocks_and_a_pasted_url_becomes_the_link_it_is[1000]
0.06s call     tests/test_notes.py::test_the_promote_control_is_not_offered_where_it_cannot_work
0.06s call     tests/test_product.py::test_a_product_can_be_made_through_the_api
0.05s call     tests/test_issues.py::test_a_hand_written_edge_to_an_issue_does_not_500_the_table
0.05s call     tests/test_product.py::test_a_product_can_be_patched_and_deleted
0.05s call     tests/test_editor.py::test_the_body_is_read_through_one_place_and_nothing_else
0.05s call     tests/test_notes.py::test_an_issue_promoted_into_a_task_lands_as_a_task_this_plan_can_read_back
0.04s call     tests/test_notes.py::test_the_note_stays_and_points_at_what_it_became
0.04s call     tests/test_credential.py::test_the_assertion_is_one_github_would_accept
0.04s call     tests/test_editor.py::test_the_kind_is_read_before_the_name_on_every_page_that_has_one
0.04s call     tests/test_notes.py::test_the_trail_survives_a_round_trip_through_git
0.04s call     tests/test_notes.py::test_an_issue_promotes_into_a_pitch_or_a_task_and_nothing_else
0.04s call     tests/test_notes.py::test_a_promoted_record_says_where_it_came_from_in_its_own_document
0.04s call     tests/test_notes.py::test_promoting_twice_is_two_records_and_the_note_names_both
0.03s call     tests/test_store.py::test_concurrent_writers_to_one_path_neither_lose_nor_interleave
0.03s call     tests/test_issues.py::test_a_derived_state_reads_on_the_page_and_locks_the_control
0.03s setup    tests/test_editor.py::test_the_body_textarea_holds_what_is_stored
0.03s call     tests/test_product.py::test_a_status_on_a_product_still_warns_rather_than_refuses
0.03s call     tests/test_editor.py::test_a_conflict_reaches_the_page_as_a_report_and_never_as_markers
0.03s setup    tests/test_editor.py::test_the_editable_fields_are_the_ones_a_person_owns
0.03s setup    tests/test_editor.py::test_the_page_carries_the_commit_it_was_rendered_at
0.03s setup    tests/test_editor.py::test_the_status_a_row_is_set_to_says_what_it_will_be_refused_without
0.03s setup    tests/test_editor.py::test_no_derived_value_has_an_input_at_all
0.03s setup    tests/test_editor.py::test_a_derived_row_carries_no_label_because_it_carries_no_control
0.03s setup    tests/test_editor.py::test_the_save_script_sends_only_what_changed
0.03s setup    tests/test_editor.py::test_the_id_is_shown_and_cannot_be_edited
0.03s call     tests/test_issues.py::test_deleting_what_a_hand_written_issue_waits_on_edits_the_issue
0.03s setup    tests/test_editor.py::test_a_served_page_listens_for_somebody_elses_commit
0.03s setup    tests/test_editor.py::test_cancel_puts_the_fields_back
0.03s setup    tests/test_editor.py::test_the_bar_says_how_much_is_unsaved
0.03s setup    tests/test_editor.py::test_cancelling_an_edit_nobody_made_says_nothing
0.03s setup    tests/test_editor.py::test_the_create_form_does_not_echo_the_dates_it_is_asking_for
0.03s setup    tests/test_editor.py::test_a_save_changes_one_line_and_leaves_the_file_alone
0.03s call     tests/test_editor.py::test_an_image_can_be_pasted_or_dropped_into_the_body
0.03s setup    tests/test_editor.py::test_every_control_on_the_form_has_a_name
0.03s setup    tests/test_editor.py::test_a_date_box_says_what_it_will_store
0.03s setup    tests/test_editor.py::test_every_answer_a_write_gives_lands_in_a_live_region
0.03s setup    tests/test_editor.py::test_the_facts_read_as_a_column_beside_the_document
0.03s setup    tests/test_editor.py::test_the_detail_page_announces_a_save_it_only_used_to_draw
0.02s setup    tests/test_editor.py::test_the_way_in_is_at_the_top_and_the_two_ways_out_are_together
0.02s setup    tests/test_editor.py::test_a_conflict_reaches_the_page_as_a_report_and_never_as_markers
0.02s call     tests/test_notes.py::test_a_promotion_is_one_commit
0.02s call     tests/test_store.py::test_eight_concurrent_writers_all_land_their_commits
0.02s call     tests/test_editor.py::test_the_plain_box_carries_no_editor_library_at_all
0.02s setup    tests/test_credential.py::test_the_assertion_is_one_github_would_accept
0.02s call     tests/test_issues.py::test_an_issue_renders_on_the_shared_record_page
0.02s setup    tests/test_notes.py::test_a_promoted_record_says_where_it_came_from_in_its_own_document
0.02s call     tests/test_issues.py::test_an_issue_id_is_a_record_id_now
0.02s call     tests/test_notes.py::test_a_source_that_is_not_a_note_or_an_issue_is_refused
0.02s call     tests/test_editor.py::test_the_graph_explains_its_mode_once_and_beside_the_button
0.02s setup    tests/test_editor.py::test_the_preview_keeps_up_and_stays_where_the_reader_left_it
0.02s setup    tests/test_editor.py::test_a_preview_that_fails_says_so_and_never_writes_the_word_undefined
0.02s setup    tests/test_editor.py::test_a_throttled_draft_is_still_written_before_the_tab_can_be_closed
0.02s setup    tests/test_editor.py::test_the_box_and_the_column_beside_it_are_one_face
0.02s setup    tests/test_notes.py::test_a_promotion_is_one_commit
0.02s setup    tests/test_editor.py::test_the_two_panes_scroll_to_the_same_line
0.02s setup    tests/test_editor.py::test_the_split_dragged_to_the_end_on_a_wide_screen_is_the_one_that_comes_back[3440]
0.02s setup    tests/test_editor.py::test_choosing_a_template_leaves_the_numbers_and_the_length_telling_the_truth
0.02s setup    tests/test_editor.py::test_a_draft_at_load_forces_a_session_and_the_room_refusal_still_fires
0.02s setup    tests/test_editor.py::test_the_facts_column_does_not_move_when_the_join_between_the_panes_does
0.02s setup    tests/test_editor.py::test_a_connection_that_drops_leaves_no_placeholder_and_no_sentence_that_is_still_true
0.02s setup    tests/test_editor.py::test_the_history_buttons_use_the_browsers_own_stack_when_there_is_no_room
0.02s setup    tests/test_editor.py::test_a_link_to_the_split_view_opens_in_the_split_view
0.02s call     tests/test_issues.py::test_the_reporter_is_a_default_and_the_date_is_not
0.02s setup    tests/test_notes.py::test_a_status_that_is_not_one_is_refused_and_says_which_are
0.02s setup    tests/test_issues.py::test_an_issue_renders_on_the_shared_record_page
0.02s setup    tests/test_editor.py::test_a_refusal_names_the_field_the_way_the_form_labels_it
0.02s setup    tests/test_notes.py::test_the_retired_note_routes_redirect_to_the_shared_ones
0.02s setup    tests/test_editor.py::test_there_is_no_handle_where_there_is_nothing_to_divide[700]
0.02s setup    tests/test_editor.py::test_a_fence_takes_whole_lines_of_its_own
0.02s setup    tests/test_editor.py::test_every_surface_that_splits_carries_the_same_handle[/new?kind=note]
0.02s setup    tests/test_editor.py::test_the_second_surface_never_sets_or_replaces_the_whole_document
0.02s setup    tests/test_editor.py::test_the_second_editor_is_inlined_checksummed_and_named
0.02s setup    tests/test_notes.py::test_an_issue_promotes_into_a_pitch_or_a_task_and_nothing_else
0.02s call     tests/test_product.py::test_a_product_is_drawn_differently_and_shows_no_card
0.02s setup    tests/test_editor.py::test_the_separator_hands_back_every_key_that_carries_a_modifier
0.02s setup    tests/test_editor.py::test_the_split_a_reader_chose_is_there_the_next_time[wide-False]
0.02s setup    tests/test_issues.py::test_an_issue_still_needs_a_title
0.02s setup    tests/test_editor.py::test_every_button_on_the_toolbar_can_be_reached_at_a_window_that_is_not_wide[1000-note]
0.02s setup    tests/test_editor.py::test_the_editor_preference_is_one_key_and_survives_a_browser_that_refuses_storage
0.02s setup    tests/test_editor.py::test_a_drag_the_browser_takes_away_lets_go_of_the_join
0.02s setup    tests/test_editor.py::test_ending_a_session_leaves_the_surface_by_every_door
0.02s setup    tests/test_notes.py::test_the_promote_control_is_not_offered_where_it_cannot_work
0.02s setup    tests/test_editor.py::test_the_split_a_reader_chose_is_there_the_next_time[2.5-True]
0.02s setup    tests/test_editor.py::test_the_split_a_reader_chose_is_there_the_next_time[None-False]
0.02s setup    tests/test_editor.py::test_the_keymap_a_person_chose_is_the_one_the_next_session_opens_in
0.02s setup    tests/test_notes.py::test_the_note_stays_and_points_at_what_it_became
0.02s setup    tests/test_editor.py::test_the_length_and_the_ceiling_are_not_the_same_number_on_a_document_that_is_not_ascii
0.02s setup    tests/test_editor.py::test_every_button_on_the_toolbar_can_be_reached_at_a_window_that_is_not_wide[500-detail]
0.02s setup    tests/test_editor.py::test_the_full_page_surface_is_a_writing_surface_at_a_window_that_is_not_wide[detail]
0.02s setup    tests/test_editor.py::test_every_button_on_the_toolbar_can_be_reached_at_a_window_that_is_not_wide[1000-detail]
0.02s setup    tests/test_editor.py::test_there_is_no_handle_where_there_is_nothing_to_divide[936]
0.02s setup    tests/test_editor.py::test_every_surface_that_splits_carries_the_same_handle[/detail/{task}]
0.02s setup    tests/test_editor.py::test_the_pane_splitter_takes_a_focus_ring_that_is_actually_painted
0.02s setup    tests/test_editor.py::test_capacity_moves_while_the_rate_is_being_typed
0.02s setup    tests/test_issues.py::test_creating_an_issue_stamps_the_lost_route_defaults
0.02s setup    tests/test_editor.py::test_the_full_page_surface_is_a_writing_surface_at_a_window_that_is_not_wide[new]
0.02s setup    tests/test_editor.py::test_the_toolbar_and_the_keymap_do_not_cancel_each_other
0.02s setup    tests/test_editor.py::test_the_split_dragged_to_the_end_on_a_wide_screen_is_the_one_that_comes_back[1400]
0.02s setup    tests/test_editor.py::test_the_editor_is_chosen_by_the_address_and_by_nothing_else
0.02s setup    tests/test_editor.py::test_a_remote_keystroke_between_the_halves_of_a_pair_reaches_the_surface_whole[plain]
0.02s setup    tests/test_editor.py::test_what_the_second_surface_says_it_changed_is_what_the_room_changes
0.02s setup    tests/test_editor.py::test_the_length_says_the_ceiling_before_a_save_is_refused
0.02s setup    tests/test_editor.py::test_every_button_on_the_toolbar_can_be_reached_at_a_window_that_is_not_wide[500-note]
0.02s setup    tests/test_editor.py::test_a_remote_keystroke_between_the_halves_of_a_pair_reaches_the_surface_whole[ace]
0.02s setup    tests/test_editor.py::test_the_split_a_reader_chose_is_there_the_next_time[400-False]
0.02s setup    tests/test_editor.py::test_the_status_bar_says_where_the_caret_is_how_long_it_is_and_what_tab_types
0.02s setup    tests/test_editor.py::test_there_is_no_handle_where_there_is_nothing_to_divide[934]
0.02s setup    tests/test_editor.py::test_cancelling_a_restored_draft_keeps_the_commit_it_was_written_against
0.02s setup    tests/test_editor.py::test_no_editor_asks_for_a_script_after_the_page_has_loaded
0.02s setup    tests/test_editor.py::test_the_view_a_person_chose_is_the_one_the_next_session_opens_in
0.02s setup    tests/test_editor.py::test_cancel_with_a_divergent_draft_lands_on_the_stored_commit
0.02s setup    tests/test_editor.py::test_picking_a_suggestion_counts_as_typing
0.02s setup    tests/test_editor.py::test_the_new_marks_write_blocks_and_a_pasted_url_becomes_the_link_it_is[1200]
0.02s setup    tests/test_editor.py::test_the_split_a_reader_chose_is_there_the_next_time[1-False]
0.02s setup    tests/test_editor.py::test_the_second_surface_holds_one_line_ending_whatever_is_pasted_into_it
0.02s setup    tests/test_editor.py::test_work_is_autosaved_so_a_dropped_connection_costs_two_minutes
0.02s setup    tests/test_editor.py::test_a_view_link_is_sessionless_and_a_both_link_opens_a_session
0.02s setup    tests/test_editor.py::test_the_three_views_are_one_of_three_and_each_pane_scrolls_on_its_own
0.02s setup    tests/test_editor.py::test_escape_still_arms_the_tab_hatch_where_the_box_is_on_the_page
0.02s setup    tests/test_editor.py::test_the_history_buttons_reach_the_second_editors_own_stack
0.02s setup    tests/test_editor.py::test_a_preview_that_has_been_overtaken_is_called_off
0.02s setup    tests/test_editor.py::test_the_width_handle_finds_the_pane_in_every_view
0.02s setup    tests/test_editor.py::test_the_theme_toggle_and_the_way_in_come_into_the_surface_with_you
0.02s setup    tests/test_editor.py::test_the_body_is_read_through_one_place_and_nothing_else
0.02s setup    tests/test_issues.py::test_a_derived_state_reads_on_the_page_and_locks_the_control
0.02s setup    tests/test_editor.py::test_cancel_leaves_the_surface_it_was_pressed_in
0.02s setup    tests/test_editor.py::test_a_stored_legacy_view_mode_opens_the_next_session_in_edit
0.02s setup    tests/test_editor.py::test_the_graph_explains_its_mode_once_and_beside_the_button
0.02s setup    tests/test_editor.py::test_there_is_no_handle_where_there_is_nothing_to_divide[1400]
0.02s setup    tests/test_issues.py::test_the_create_form_offers_an_issue_no_plan_status
0.02s setup    tests/test_notes.py::test_a_source_that_is_not_a_note_or_an_issue_is_refused
0.02s setup    tests/test_editor.py::test_the_second_editors_caret_is_reported_when_it_moves_and_not_when_it_types
0.02s call     tests/test_issues.py::test_a_word_off_the_issue_ladder_is_refused_at_both_doors
0.02s call     tests/test_notes.py::test_writing_a_note_down_asks_for_a_title_and_nothing_else
0.02s setup    tests/test_notes.py::test_writing_a_note_down_asks_for_a_title_and_nothing_else
0.02s setup    tests/test_editor.py::test_every_surface_that_splits_carries_the_same_handle[/new?kind=issue]
0.02s setup    tests/test_editor.py::test_every_line_number_sits_on_the_line_it_numbers
0.02s setup    tests/test_editor.py::test_the_parent_control_still_holds_the_id
0.02s setup    tests/test_editor.py::test_a_slow_upload_holds_its_place_in_the_text
0.02s setup    tests/test_issues.py::test_the_reporter_is_a_default_and_the_date_is_not
0.02s setup    tests/test_issues.py::test_an_issue_id_is_a_record_id_now
0.02s setup    tests/test_notes.py::test_the_trail_survives_a_round_trip_through_git
0.02s setup    tests/test_issues.py::test_the_retired_issue_routes_redirect_to_the_shared_ones
0.02s setup    tests/test_editor.py::test_the_join_between_the_panes_moves_for_the_keyboard_too
0.02s setup    tests/test_notes.py::test_a_note_promotes_into_a_record_that_validates
0.02s setup    tests/test_notes.py::test_a_note_the_server_could_not_read_back_is_never_committed
0.02s setup    tests/test_editor.py::test_every_surface_that_splits_carries_the_same_handle[/new]
0.02s setup    tests/test_editor.py::test_no_script_ever_assigns_a_textarea_its_value
0.02s setup    tests/test_editor.py::test_the_preview_renders_markdown_without_a_client_side_library
0.02s call     tests/test_editor.py::test_every_answer_a_write_gives_lands_in_a_live_region
0.02s setup    tests/test_editor.py::test_a_restored_draft_is_saved_against_the_commit_it_was_drafted_against
0.02s setup    tests/test_notes.py::test_promoting_twice_is_two_records_and_the_note_names_both
0.02s setup    tests/test_editor.py::test_a_betting_cell_saves_only_what_somebody_typed
0.02s setup    tests/test_editor.py::test_a_write_from_the_cycle_page_is_not_reported_back_as_somebody_else_s
0.02s setup    tests/test_editor.py::test_a_list_continues_and_an_empty_item_ends_it
0.02s setup    tests/test_editor.py::test_the_toolbar_is_the_one_in_the_screenshot_and_that_overrules_a_count
0.02s setup    tests/test_editor.py::test_the_kind_is_read_before_the_name_on_every_page_that_has_one
0.02s setup    tests/test_notes.py::test_an_issue_promoted_into_a_task_lands_as_a_task_this_plan_can_read_back
0.01s setup    tests/test_issues.py::test_a_word_off_the_issue_ladder_is_refused_at_both_doors
0.01s setup    tests/test_editor.py::test_a_toolbar_button_keeps_the_selection_it_acts_on
0.01s call     tests/test_notes.py::test_a_status_that_is_not_one_is_refused_and_says_which_are
0.01s setup    tests/test_editor.py::test_nothing_on_the_cycle_page_is_written_until_save
0.01s setup    tests/test_editor.py::test_an_image_can_be_pasted_or_dropped_into_the_body
0.01s setup    tests/test_editor.py::test_the_goal_is_above_the_bet_and_the_notes_are_below_it
0.01s setup    tests/test_editor.py::test_starting_a_cycle_asks_for_dates_and_nothing_else
0.01s setup    tests/test_editor.py::test_taking_somebody_out_of_a_cycle_takes_two_clicks
0.01s setup    tests/test_editor.py::test_the_plain_box_carries_no_editor_library_at_all
0.01s setup    tests/test_editor.py::test_a_new_cycle_starts_from_the_last_one_s_roster
0.01s setup    tests/test_editor.py::test_a_cycle_has_a_box_for_what_came_up_at_the_betting_table
0.01s setup    tests/test_editor.py::test_a_preview_cannot_be_used_to_smuggle_html
0.01s setup    tests/test_editor.py::test_tab_indents_the_lines_the_selection_touches
0.01s call     tests/test_editor.py::test_the_goal_is_above_the_bet_and_the_notes_are_below_it
0.01s call     tests/test_notes.py::test_a_note_the_server_could_not_read_back_is_never_committed
0.01s call     tests/test_editor.py::test_the_detail_page_announces_a_save_it_only_used_to_draw
0.01s call     tests/test_editor.py::test_a_refusal_names_the_field_the_way_the_form_labels_it
0.01s call     tests/test_credential.py::test_the_credential_is_asked_for_every_push_not_held_from_startup
0.01s call     tests/test_editor.py::test_a_new_cycle_starts_from_the_last_one_s_roster
0.01s call     tests/test_editor.py::test_the_second_editor_is_inlined_checksummed_and_named
0.01s call     tests/test_editor.py::test_the_parent_control_still_holds_the_id
0.01s call     tests/test_issues.py::test_the_create_form_offers_an_issue_no_plan_status
0.01s call     tests/test_credential.py::test_a_remote_that_needs_a_credential_and_has_none_is_refused
0.01s call     tests/test_editor.py::test_a_view_change_tells_the_seat_layer_the_box_moved
0.01s call     tests/test_editor.py::test_every_surface_that_splits_carries_the_same_handle[/new?kind=issue]
0.01s call     tests/test_editor.py::test_every_surface_that_splits_carries_the_same_handle[/new]
0.01s call     tests/test_editor.py::test_every_surface_that_splits_carries_the_same_handle[/new?kind=note]
0.01s call     tests/test_editor.py::test_no_script_ever_assigns_a_textarea_its_value
0.01s call     tests/test_editor.py::test_every_surface_that_splits_carries_the_same_handle[/detail/{task}]
0.01s call     tests/test_issues.py::test_the_retired_issue_routes_redirect_to_the_shared_ones
0.01s call     tests/test_notes.py::test_the_retired_note_routes_redirect_to_the_shared_ones
0.01s call     tests/test_editor.py::test_a_save_changes_one_line_and_leaves_the_file_alone
0.01s call     tests/test_product.py::test_a_product_draws_no_bar_on_the_timeline
0.01s call     tests/test_editor.py::test_a_list_continues_and_an_empty_item_ends_it
0.01s call     tests/test_editor.py::test_a_toolbar_button_keeps_the_selection_it_acts_on
0.01s call     tests/test_editor.py::test_a_fence_takes_whole_lines_of_its_own
0.01s call     tests/test_editor.py::test_the_second_surface_never_sets_or_replaces_the_whole_document
0.01s call     tests/test_editor.py::test_a_slow_upload_holds_its_place_in_the_text
0.01s call     tests/test_editor.py::test_the_toolbar_is_the_one_in_the_screenshot_and_that_overrules_a_count
0.01s call     tests/test_product.py::test_work_in_one_product_can_wait_on_work_in_another
0.01s call     tests/test_issues.py::test_creating_an_issue_stamps_the_lost_route_defaults
0.01s call     tests/test_store.py::test_two_people_inserting_at_different_places_still_merge
0.01s call     tests/test_store.py::test_the_same_edit_made_twice_is_not_a_collision
0.01s call     tests/test_store.py::test_two_edits_to_different_frontmatter_keys_of_one_file_are_merged
0.01s call     tests/test_store.py::test_an_edit_reverted_inside_one_batch_is_stamped_with_the_revert
0.01s call     tests/test_store.py::test_an_insertion_and_a_replacement_on_one_line_are_refused_not_half_kept
0.01s call     tests/test_store.py::test_two_edits_to_different_parts_of_the_body_are_merged
0.01s call     tests/test_editor.py::test_capacity_moves_while_the_rate_is_being_typed
0.01s call     tests/test_editor.py::test_nothing_on_the_cycle_page_is_written_until_save
0.01s call     tests/test_editor.py::test_a_betting_cell_saves_only_what_somebody_typed
0.01s call     tests/test_editor.py::test_work_is_autosaved_so_a_dropped_connection_costs_two_minutes
0.01s call     tests/test_editor.py::test_starting_a_cycle_asks_for_dates_and_nothing_else
0.01s call     tests/test_store.py::test_a_merge_inside_one_persons_record_still_reads_back_as_a_person
0.01s call     tests/test_store.py::test_a_human_editing_the_same_record_is_merged_or_refused_like_anybody_else
0.01s call     tests/test_editor.py::test_taking_somebody_out_of_a_cycle_takes_two_clicks
0.01s call     tests/test_editor.py::test_picking_a_suggestion_counts_as_typing
0.01s call     tests/test_issues.py::test_an_issue_still_needs_a_title
0.01s call     tests/test_store.py::test_both_changing_one_key_differently_is_a_conflict_that_writes_nothing
0.01s call     tests/test_editor.py::test_a_cycle_has_a_box_for_what_came_up_at_the_betting_table
0.01s call     tests/test_editor.py::test_a_write_from_the_cycle_page_is_not_reported_back_as_somebody_else_s
0.01s call     tests/test_store.py::test_a_side_branch_edit_merged_in_carries_the_side_commits_time
0.01s call     tests/test_store.py::test_git_log_reads_back_as_the_audit_trail
0.01s call     tests/test_store.py::test_a_rewound_ref_discards_the_cache_and_rebuilds
0.01s call     tests/test_store.py::test_both_rewriting_one_body_line_differently_is_a_conflict
0.01s call     tests/test_store.py::test_no_conflict_marker_ever_reaches_the_caller_or_the_repository
0.01s call     tests/test_store.py::test_a_stale_base_whose_path_nobody_touched_is_retried_silently
0.01s call     tests/test_store.py::test_last_edited_drops_a_deleted_path_and_stamps_an_added_one
0.00s call     tests/test_store.py::test_a_retried_write_still_records_the_person_who_asked_for_it
0.00s call     tests/test_store.py::test_the_next_write_lands_on_top_of_an_external_commit_not_over_it
0.00s setup    tests/test_store.py::test_a_second_writer_does_not_erase_the_holders_pid
0.00s setup    tests/test_store.py::test_a_stale_base_whose_path_nobody_touched_is_retried_silently
0.00s call     tests/test_store.py::test_two_people_choosing_at_once_write_two_files_and_neither_is_merged
0.00s setup    tests/test_store.py::test_two_edits_to_different_parts_of_the_body_are_merged
0.00s setup    tests/test_store.py::test_the_refusal_names_the_process_holding_the_lock
0.00s setup    tests/test_store.py::test_a_file_with_no_trailing_newline_keeps_not_having_one
0.00s setup    tests/test_store.py::test_concurrent_writers_to_one_path_neither_lose_nor_interleave
0.00s call     tests/test_editor.py::test_every_control_on_the_form_has_a_name
0.00s setup    tests/test_store.py::test_paths_lists_every_file_in_the_tree_at_that_commit
0.00s setup    tests/test_store.py::test_eight_concurrent_writers_all_land_their_commits
0.00s setup    tests/test_store.py::test_no_conflict_marker_ever_reaches_the_caller_or_the_repository
0.00s setup    tests/test_store.py::test_two_edits_to_different_frontmatter_keys_of_one_file_are_merged
0.00s setup    tests/test_store.py::test_the_content_committed_is_the_content_read_back
0.00s setup    tests/test_store.py::test_the_same_edit_made_twice_is_not_a_collision
0.00s setup    tests/test_store.py::test_the_next_write_lands_on_top_of_an_external_commit_not_over_it
0.00s setup    tests/test_store.py::test_reading_a_path_that_does_not_exist_gives_none
0.00s setup    tests/test_store.py::test_a_human_editing_the_same_record_is_merged_or_refused_like_anybody_else
0.00s setup    tests/test_store.py::test_an_insertion_and_a_replacement_on_one_line_are_refused_not_half_kept
0.00s setup    tests/test_store.py::test_a_merge_inside_one_persons_record_still_reads_back_as_a_person
0.00s setup    tests/test_store.py::test_two_people_inserting_at_different_places_still_merge
0.00s setup    tests/test_store.py::test_the_author_is_the_person_and_the_committer_is_the_bot
0.00s setup    tests/test_store.py::test_both_changing_one_key_differently_is_a_conflict_that_writes_nothing
0.00s setup    tests/test_store.py::test_a_path_is_read_at_the_commit_it_is_asked_for
0.00s setup    tests/test_store.py::test_git_log_reads_back_as_the_audit_trail
0.00s setup    tests/test_store.py::test_both_rewriting_one_body_line_differently_is_a_conflict
0.00s setup    tests/test_store.py::test_a_retried_write_still_records_the_person_who_asked_for_it
0.00s setup    tests/test_store.py::test_two_people_choosing_at_once_write_two_files_and_neither_is_merged
0.00s setup    tests/test_store.py::test_a_commit_made_outside_the_store_is_seen_by_head
0.00s setup    tests/test_store.py::test_a_write_against_the_current_head_is_committed_directly
0.00s setup    tests/test_store.py::test_the_repository_stays_bare_and_no_index_file_is_ever_created
0.00s setup    tests/test_store.py::test_a_write_to_a_directory_that_does_not_exist_yet_builds_the_subtree
0.00s setup    tests/test_store.py::test_a_second_store_on_the_same_repository_refuses_to_start
0.00s call     tests/test_editor.py::test_a_number_typed_as_a_word_is_refused_rather_than_committed
0.00s setup    tests/test_store.py::test_closing_a_store_releases_the_lock_for_the_next_one
0.00s call     tests/test_editor.py::test_a_preview_cannot_be_used_to_smuggle_html
0.00s call     tests/test_editor.py::test_the_body_textarea_holds_what_is_stored
0.00s call     tests/test_store.py::test_a_write_against_the_current_head_is_committed_directly
0.00s call     tests/test_editor.py::test_the_preview_renders_markdown_without_a_client_side_library
0.00s call     tests/test_store.py::test_a_write_to_a_directory_that_does_not_exist_yet_builds_the_subtree
0.00s call     tests/test_store.py::test_a_path_is_read_at_the_commit_it_is_asked_for
0.00s call     tests/test_store.py::test_the_author_is_the_person_and_the_committer_is_the_bot
0.00s call     tests/test_store.py::test_the_repository_stays_bare_and_no_index_file_is_ever_created
0.00s call     tests/test_store.py::test_the_content_committed_is_the_content_read_back
0.00s call     tests/test_store.py::test_paths_lists_every_file_in_the_tree_at_that_commit
0.00s call     tests/test_editor.py::test_the_way_in_is_at_the_top_and_the_two_ways_out_are_together
0.00s call     tests/test_store.py::test_a_commit_made_outside_the_store_is_seen_by_head
0.00s call     tests/test_store.py::test_a_file_with_no_trailing_newline_keeps_not_having_one
0.00s teardown tests/test_notes.py::test_the_promote_control_is_not_offered_where_it_cannot_work
0.00s call     tests/test_editor.py::test_the_save_script_sends_only_what_changed
0.00s call     tests/test_issues.py::test_check_covers_issues_for_the_first_time
0.00s teardown tests/test_editor.py::test_a_restored_draft_is_saved_against_the_commit_it_was_drafted_against
0.00s teardown tests/test_editor.py::test_cancelling_a_restored_draft_keeps_the_commit_it_was_written_against
0.00s teardown tests/test_notes.py::test_the_note_stays_and_points_at_what_it_became
0.00s call     tests/test_product.py::test_the_editors_do_not_offer_a_field_the_rung_does_not_read
0.00s setup    tests/test_product.py::test_a_product_draws_no_bar_on_the_timeline
0.00s call     tests/test_credential.py::test_the_startup_refusal_says_which_variable_is_unset
0.00s teardown tests/test_editor.py::test_the_separator_hands_back_every_key_that_carries_a_modifier
0.00s teardown tests/test_editor.py::test_the_split_a_reader_chose_is_there_the_next_time[wide-False]
0.00s setup    tests/test_product.py::test_work_in_one_product_can_wait_on_work_in_another
0.00s setup    tests/test_product.py::test_a_product_is_drawn_differently_and_shows_no_card
0.00s teardown tests/test_editor.py::test_the_two_panes_scroll_to_the_same_line
0.00s teardown tests/test_notes.py::test_a_promoted_record_says_where_it_came_from_in_its_own_document
0.00s teardown tests/test_issues.py::test_an_issue_renders_on_the_shared_record_page
0.00s teardown tests/test_editor.py::test_the_split_a_reader_chose_is_there_the_next_time[2.5-True]
0.00s teardown tests/test_editor.py::test_the_view_a_person_chose_is_the_one_the_next_session_opens_in
0.00s teardown tests/test_editor.py::test_there_is_no_handle_where_there_is_nothing_to_divide[934]
0.00s teardown tests/test_editor.py::test_there_is_no_handle_where_there_is_nothing_to_divide[1400]
0.00s teardown tests/test_editor.py::test_the_pane_splitter_takes_a_focus_ring_that_is_actually_painted
0.00s teardown tests/test_editor.py::test_the_full_page_surface_is_a_writing_surface_at_a_window_that_is_not_wide[new]
0.00s teardown tests/test_issues.py::test_a_derived_state_reads_on_the_page_and_locks_the_control
0.00s teardown tests/test_editor.py::test_the_history_buttons_reach_the_second_editors_own_stack
0.00s teardown tests/test_notes.py::test_an_issue_promoted_into_a_task_lands_as_a_task_this_plan_can_read_back
0.00s call     tests/test_editor.py::test_the_facts_read_as_a_column_beside_the_document
0.00s teardown tests/test_editor.py::test_a_preview_that_has_been_overtaken_is_called_off
0.00s teardown tests/test_editor.py::test_the_status_bar_says_where_the_caret_is_how_long_it_is_and_what_tab_types
0.00s teardown tests/test_editor.py::test_the_new_marks_write_blocks_and_a_pasted_url_becomes_the_link_it_is[1000]
0.00s teardown tests/test_editor.py::test_no_editor_asks_for_a_script_after_the_page_has_loaded
0.00s teardown tests/test_editor.py::test_a_drag_the_browser_takes_away_lets_go_of_the_join
0.00s teardown tests/test_editor.py::test_the_split_dragged_to_the_end_on_a_wide_screen_is_the_one_that_comes_back[3440]
0.00s teardown tests/test_editor.py::test_cancel_leaves_the_surface_it_was_pressed_in
0.00s teardown tests/test_editor.py::test_what_the_second_surface_says_it_changed_is_what_the_room_changes
0.00s teardown tests/test_notes.py::test_a_promotion_is_one_commit
0.00s teardown tests/test_editor.py::test_the_length_and_the_ceiling_are_not_the_same_number_on_a_document_that_is_not_ascii
0.00s teardown tests/test_editor.py::test_a_preview_that_fails_says_so_and_never_writes_the_word_undefined
0.00s teardown tests/test_editor.py::test_the_history_buttons_use_the_browsers_own_stack_when_there_is_no_room
0.00s teardown tests/test_editor.py::test_the_toolbar_and_the_keymap_do_not_cancel_each_other
0.00s call     tests/test_store.py::test_closing_a_store_releases_the_lock_for_the_next_one
0.00s teardown tests/test_editor.py::test_the_second_surface_holds_one_line_ending_whatever_is_pasted_into_it
0.00s teardown tests/test_editor.py::test_choosing_a_template_leaves_the_numbers_and_the_length_telling_the_truth
0.00s teardown tests/test_editor.py::test_cancel_with_a_divergent_draft_lands_on_the_stored_commit
0.00s teardown tests/test_editor.py::test_a_save_changes_one_line_and_leaves_the_file_alone
0.00s teardown tests/test_editor.py::test_a_conflict_reaches_the_page_as_a_report_and_never_as_markers
0.00s teardown tests/test_editor.py::test_the_body_is_read_through_one_place_and_nothing_else
0.00s teardown tests/test_editor.py::test_a_remote_keystroke_between_the_halves_of_a_pair_reaches_the_surface_whole[ace]
0.00s call     tests/test_product.py::test_a_container_has_no_work_state_to_gate
0.00s teardown tests/test_editor.py::test_tab_indents_the_lines_the_selection_touches
0.00s teardown tests/test_editor.py::test_the_three_views_are_one_of_three_and_each_pane_scrolls_on_its_own
0.00s teardown tests/test_editor.py::test_every_button_on_the_toolbar_can_be_reached_at_a_window_that_is_not_wide[1000-note]
0.00s teardown tests/test_editor.py::test_the_facts_column_does_not_move_when_the_join_between_the_panes_does
0.00s teardown tests/test_notes.py::test_the_trail_survives_a_round_trip_through_git
0.00s teardown tests/test_editor.py::test_the_keymap_a_person_chose_is_the_one_the_next_session_opens_in
0.00s teardown tests/test_editor.py::test_a_link_to_the_split_view_opens_in_the_split_view
0.00s teardown tests/test_editor.py::test_the_editor_is_chosen_by_the_address_and_by_nothing_else
0.00s teardown tests/test_editor.py::test_cancelling_an_edit_nobody_made_says_nothing
0.00s teardown tests/test_editor.py::test_every_line_number_sits_on_the_line_it_numbers
0.00s teardown tests/test_editor.py::test_a_view_link_is_sessionless_and_a_both_link_opens_a_session
0.00s teardown tests/test_editor.py::test_the_width_handle_finds_the_pane_in_every_view
0.00s teardown tests/test_notes.py::test_a_note_promotes_into_a_record_that_validates
0.00s teardown tests/test_editor.py::test_a_stored_legacy_view_mode_opens_the_next_session_in_edit
0.00s teardown tests/test_editor.py::test_the_split_a_reader_chose_is_there_the_next_time[400-False]
0.00s teardown tests/test_editor.py::test_the_new_marks_write_blocks_and_a_pasted_url_becomes_the_link_it_is[1200]
0.00s teardown tests/test_editor.py::test_there_is_no_handle_where_there_is_nothing_to_divide[700]
0.00s teardown tests/test_notes.py::test_a_source_that_is_not_a_note_or_an_issue_is_refused
0.00s teardown tests/test_editor.py::test_every_button_on_the_toolbar_can_be_reached_at_a_window_that_is_not_wide[500-note]
0.00s teardown tests/test_editor.py::test_the_box_and_the_column_beside_it_are_one_face
0.00s teardown tests/test_editor.py::test_a_substitution_that_types_an_emoji_keeps_every_later_run_where_it_belongs
0.00s teardown tests/test_editor.py::test_every_button_on_the_toolbar_can_be_reached_at_a_window_that_is_not_wide[500-detail]
0.00s teardown tests/test_editor.py::test_the_goal_is_above_the_bet_and_the_notes_are_below_it
0.00s teardown tests/test_editor.py::test_a_new_cycle_starts_from_the_last_one_s_roster
0.00s teardown tests/test_editor.py::test_the_preview_keeps_up_and_stays_where_the_reader_left_it
0.00s call     tests/test_editor.py::test_the_status_a_row_is_set_to_says_what_it_will_be_refused_without
0.00s teardown tests/test_editor.py::test_a_remote_keystroke_between_the_halves_of_a_pair_reaches_the_surface_whole[plain]
0.00s teardown tests/test_editor.py::test_the_split_a_reader_chose_is_there_the_next_time[1-False]
0.00s teardown tests/test_editor.py::test_the_second_editors_caret_is_reported_when_it_moves_and_not_when_it_types
0.00s teardown tests/test_editor.py::test_the_full_page_surface_is_a_writing_surface_at_a_window_that_is_not_wide[detail]
0.00s teardown tests/test_editor.py::test_a_throttled_draft_is_still_written_before_the_tab_can_be_closed
0.00s teardown tests/test_editor.py::test_there_is_no_handle_where_there_is_nothing_to_divide[936]
0.00s teardown tests/test_editor.py::test_the_split_dragged_to_the_end_on_a_wide_screen_is_the_one_that_comes_back[1400]
0.00s teardown tests/test_editor.py::test_every_button_on_the_toolbar_can_be_reached_at_a_window_that_is_not_wide[1000-detail]
0.00s teardown tests/test_notes.py::test_a_status_that_is_not_one_is_refused_and_says_which_are
0.00s teardown tests/test_editor.py::test_the_editor_preference_is_one_key_and_survives_a_browser_that_refuses_storage
0.00s teardown tests/test_editor.py::test_the_split_a_reader_chose_is_there_the_next_time[None-False]
0.00s teardown tests/test_editor.py::test_a_draft_at_load_forces_a_session_and_the_room_refusal_still_fires
0.00s teardown tests/test_editor.py::test_a_connection_that_drops_leaves_no_placeholder_and_no_sentence_that_is_still_true
0.00s teardown tests/test_editor.py::test_ending_a_session_leaves_the_surface_by_every_door
0.00s teardown tests/test_notes.py::test_the_retired_note_routes_redirect_to_the_shared_ones
0.00s teardown tests/test_editor.py::test_a_view_change_tells_the_seat_layer_the_box_moved
0.00s teardown tests/test_editor.py::test_cancel_puts_the_fields_back
0.00s teardown tests/test_editor.py::test_the_theme_toggle_and_the_way_in_come_into_the_surface_with_you
0.00s teardown tests/test_editor.py::test_the_length_says_the_ceiling_before_a_save_is_refused
0.00s teardown tests/test_issues.py::test_creating_an_issue_stamps_the_lost_route_defaults
0.00s teardown tests/test_editor.py::test_the_save_script_sends_only_what_changed
0.00s teardown tests/test_editor.py::test_escape_still_arms_the_tab_hatch_where_the_box_is_on_the_page
0.00s teardown tests/test_editor.py::test_the_graph_explains_its_mode_once_and_beside_the_button
0.00s teardown tests/test_issues.py::test_the_retired_issue_routes_redirect_to_the_shared_ones
0.00s call     tests/test_product.py::test_a_product_carries_no_appetite_and_is_never_scheduled
0.00s teardown tests/test_notes.py::test_promoting_twice_is_two_records_and_the_note_names_both
0.00s teardown tests/test_editor.py::test_the_join_between_the_panes_moves_for_the_keyboard_too
0.00s teardown tests/test_editor.py::test_a_served_page_listens_for_somebody_elses_commit
0.00s teardown tests/test_issues.py::test_the_create_form_offers_an_issue_no_plan_status
0.00s teardown tests/test_editor.py::test_the_facts_read_as_a_column_beside_the_document
0.00s teardown tests/test_editor.py::test_the_page_carries_the_commit_it_was_rendered_at
0.00s teardown tests/test_editor.py::test_an_image_can_be_pasted_or_dropped_into_the_body
0.00s teardown tests/test_notes.py::test_an_issue_promotes_into_a_pitch_or_a_task_and_nothing_else
0.00s teardown tests/test_notes.py::test_writing_a_note_down_asks_for_a_title_and_nothing_else
0.00s teardown tests/test_notes.py::test_a_note_the_server_could_not_read_back_is_never_committed
0.00s call     tests/test_editor.py::test_the_bar_says_how_much_is_unsaved
0.00s teardown tests/test_issues.py::test_a_word_off_the_issue_ladder_is_refused_at_both_doors
0.00s teardown tests/test_editor.py::test_the_detail_page_can_be_edited_in_place
0.00s teardown tests/test_editor.py::test_a_date_box_says_what_it_will_store
0.00s teardown tests/test_editor.py::test_no_derived_value_has_an_input_at_all
0.00s teardown tests/test_editor.py::test_the_plain_box_carries_no_editor_library_at_all
0.00s teardown tests/test_issues.py::test_the_reporter_is_a_default_and_the_date_is_not
0.00s teardown tests/test_editor.py::test_every_surface_that_splits_carries_the_same_handle[/new?kind=issue]
0.00s teardown tests/test_editor.py::test_every_surface_that_splits_carries_the_same_handle[/new]
0.00s teardown tests/test_editor.py::test_every_surface_that_splits_carries_the_same_handle[/detail/{task}]
0.00s teardown tests/test_issues.py::test_an_issue_id_is_a_record_id_now
0.00s teardown tests/test_editor.py::test_the_way_in_is_at_the_top_and_the_two_ways_out_are_together
0.00s teardown tests/test_editor.py::test_the_editable_fields_are_the_ones_a_person_owns
0.00s teardown tests/test_editor.py::test_the_status_a_row_is_set_to_says_what_it_will_be_refused_without
0.00s call     tests/test_editor.py::test_a_served_page_listens_for_somebody_elses_commit
0.00s teardown tests/test_editor.py::test_every_control_on_the_form_has_a_name
0.00s teardown tests/test_editor.py::test_the_second_editor_is_inlined_checksummed_and_named
0.00s teardown tests/test_editor.py::test_a_derived_row_carries_no_label_because_it_carries_no_control
0.00s teardown tests/test_editor.py::test_the_kind_is_read_before_the_name_on_every_page_that_has_one
0.00s teardown tests/test_editor.py::test_a_toolbar_button_keeps_the_selection_it_acts_on
0.00s teardown tests/test_editor.py::test_the_detail_page_announces_a_save_it_only_used_to_draw
0.00s teardown tests/test_editor.py::test_a_number_typed_as_a_word_is_refused_rather_than_committed
0.00s teardown tests/test_editor.py::test_picking_a_suggestion_counts_as_typing
0.00s teardown tests/test_editor.py::test_the_second_surface_never_sets_or_replaces_the_whole_document
0.00s teardown tests/test_editor.py::test_the_body_textarea_holds_what_is_stored
0.00s call     tests/test_themes.py::test_the_ink_a_scheme_is_read_in_clears_the_floor
0.00s teardown tests/test_editor.py::test_the_bar_says_how_much_is_unsaved
0.00s teardown tests/test_editor.py::test_a_fence_takes_whole_lines_of_its_own
0.00s teardown tests/test_editor.py::test_every_surface_that_splits_carries_the_same_handle[/new?kind=note]
0.00s teardown tests/test_editor.py::test_every_answer_a_write_gives_lands_in_a_live_region
0.00s teardown tests/test_editor.py::test_the_id_is_shown_and_cannot_be_edited
0.00s teardown tests/test_editor.py::test_the_parent_control_still_holds_the_id
0.00s teardown tests/test_editor.py::test_the_create_form_does_not_echo_the_dates_it_is_asking_for
0.00s teardown tests/test_editor.py::test_a_slow_upload_holds_its_place_in_the_text
0.00s teardown tests/test_editor.py::test_a_write_from_the_cycle_page_is_not_reported_back_as_somebody_else_s
0.00s teardown tests/test_editor.py::test_no_script_ever_assigns_a_textarea_its_value
0.00s teardown tests/test_editor.py::test_a_refusal_names_the_field_the_way_the_form_labels_it
0.00s teardown tests/test_editor.py::test_a_list_continues_and_an_empty_item_ends_it
0.00s teardown tests/test_editor.py::test_the_toolbar_is_the_one_in_the_screenshot_and_that_overrules_a_count
0.00s teardown tests/test_editor.py::test_capacity_moves_while_the_rate_is_being_typed
0.00s teardown tests/test_editor.py::test_a_cycle_has_a_box_for_what_came_up_at_the_betting_table
0.00s teardown tests/test_editor.py::test_work_is_autosaved_so_a_dropped_connection_costs_two_minutes
0.00s teardown tests/test_editor.py::test_a_betting_cell_saves_only_what_somebody_typed
0.00s teardown tests/test_editor.py::test_nothing_on_the_cycle_page_is_written_until_save
0.00s teardown tests/test_editor.py::test_starting_a_cycle_asks_for_dates_and_nothing_else
0.00s teardown tests/test_editor.py::test_taking_somebody_out_of_a_cycle_takes_two_clicks
0.00s call     tests/test_editor.py::test_the_editable_fields_are_the_ones_a_person_owns
0.00s teardown tests/test_issues.py::test_an_issue_still_needs_a_title
0.00s setup    tests/test_store.py::test_an_edit_reverted_inside_one_batch_is_stamped_with_the_revert
0.00s setup    tests/test_themes.py::test_the_picker_puts_the_scheme_on_the_page_and_takes_it_off_again
0.00s setup    tests/test_issues.py::test_deleting_what_a_hand_written_issue_waits_on_edits_the_issue
0.00s setup    tests/test_store.py::test_a_path_that_is_not_a_repository_is_refused_rather_than_searched_upwards
0.00s teardown tests/test_editor.py::test_the_preview_renders_markdown_without_a_client_side_library
0.00s setup    tests/test_themes.py::test_the_drawing_gets_colours_it_can_actually_read
0.00s teardown tests/test_editor.py::test_a_preview_cannot_be_used_to_smuggle_html
0.00s setup    tests/test_issues.py::test_check_covers_issues_for_the_first_time
0.00s setup    tests/test_store.py::test_a_rewound_ref_discards_the_cache_and_rebuilds
0.00s setup    tests/test_store.py::test_last_edited_drops_a_deleted_path_and_stamps_an_added_one
0.00s setup    tests/test_notes.py::test_the_static_export_carries_every_note
0.00s setup    tests/test_themes.py::test_a_scheme_reaches_the_boxes_people_type_into
0.00s setup    tests/test_product.py::test_a_status_on_a_product_still_warns_rather_than_refuses
0.00s setup    tests/test_themes.py::test_every_scheme_is_readable_where_the_page_paints_it
0.00s setup    tests/test_store.py::test_a_side_branch_edit_merged_in_carries_the_side_commits_time
0.00s call     tests/test_store.py::test_reading_a_path_that_does_not_exist_gives_none
0.00s call     tests/test_editor.py::test_the_id_is_shown_and_cannot_be_edited
0.00s setup    tests/test_product.py::test_a_product_can_be_patched_and_deleted
0.00s setup    tests/test_credential.py::test_the_startup_refusal_says_which_variable_is_unset
0.00s setup    tests/test_product.py::test_a_product_can_be_made_through_the_api
0.00s setup    tests/test_credential.py::test_the_credential_is_asked_for_every_push_not_held_from_startup
0.00s setup    tests/test_credential.py::test_a_half_set_environment_names_the_variable_it_wants
0.00s setup    tests/test_credential.py::test_half_a_configuration_is_no_configuration
0.00s setup    tests/test_issues.py::test_a_hand_written_edge_to_an_issue_does_not_500_the_table
0.00s call     tests/test_editor.py::test_a_date_box_says_what_it_will_store
0.00s setup    tests/test_credential.py::test_a_remote_that_needs_a_credential_and_has_none_is_refused
0.00s call     tests/test_editor.py::test_no_derived_value_has_an_input_at_all
0.00s call     tests/test_editor.py::test_the_create_form_does_not_echo_the_dates_it_is_asking_for
0.00s call     tests/test_themes.py::test_every_palette_is_sixteen_colours
0.00s setup    tests/test_editor.py::test_a_static_page_opens_no_event_stream
0.00s call     tests/test_editor.py::test_a_derived_row_carries_no_label_because_it_carries_no_control
0.00s call     tests/test_store.py::test_a_second_writer_does_not_erase_the_holders_pid
0.00s call     tests/test_editor.py::test_the_detail_page_can_be_edited_in_place
0.00s teardown tests/test_store.py::test_the_identical_edit_made_twice_still_merges
0.00s call     tests/test_store.py::test_the_refusal_names_the_process_holding_the_lock
0.00s call     tests/test_editor.py::test_the_page_carries_the_commit_it_was_rendered_at
0.00s call     tests/test_store.py::test_a_second_store_on_the_same_repository_refuses_to_start
0.00s call     tests/test_notes.py::test_a_promoted_note_does_not_track_what_it_became
0.00s call     tests/test_notes.py::test_a_note_has_two_statuses_and_the_third_state_is_derived
0.00s call     tests/test_notes.py::test_a_note_reads_no_field_that_is_a_commitment
0.00s call     tests/test_notes.py::test_a_link_to_something_that_is_gone_is_a_warning_and_not_a_promotion
0.00s call     tests/test_editor.py::test_the_room_s_own_save_ends_the_session_by_leaving_the_page
0.00s call     tests/test_credential.py::test_half_a_configuration_is_no_configuration
0.00s call     tests/test_product.py::test_a_product_waits_on_nothing
0.00s call     tests/test_issues.py::test_a_link_to_something_that_is_gone_leaves_the_stored_state_alone
0.00s call     tests/test_store.py::test_a_path_that_is_not_a_repository_is_refused_rather_than_searched_upwards
0.00s call     tests/test_product.py::test_the_product_rules_are_as_old_as_the_kind
0.00s call     tests/test_issues.py::test_pitching_an_issue_is_what_closes_it
0.00s call     tests/test_themes.py::test_a_family_is_a_light_and_a_dark
0.00s call     tests/test_credential.py::test_a_half_set_environment_names_the_variable_it_wants
0.00s teardown tests/test_store.py::test_the_next_write_lands_on_top_of_an_external_commit_not_over_it
0.00s teardown tests/test_store.py::test_a_stale_base_whose_path_nobody_touched_is_retried_silently
0.00s call     tests/test_store.py::test_two_edits_with_the_same_text_over_different_spans_are_a_conflict
0.00s setup    tests/test_issues.py::test_the_seed_corpus_issues_load_as_records_off_the_plan
0.00s teardown tests/test_store.py::test_eight_concurrent_writers_all_land_their_commits
0.00s call     tests/test_product.py::test_an_unknown_kind_is_still_refused
0.00s call     tests/test_store.py::test_a_refusal_over_an_insertion_says_before_which_line
0.00s teardown tests/test_store.py::test_concurrent_writers_to_one_path_neither_lose_nor_interleave
0.00s teardown tests/test_store.py::test_the_repository_stays_bare_and_no_index_file_is_ever_created
0.00s setup    tests/test_issues.py::test_an_issue_closes_only_when_every_piece_it_was_pitched_into_is_finished
0.00s teardown tests/test_store.py::test_a_write_to_a_directory_that_does_not_exist_yet_builds_the_subtree
0.00s teardown tests/test_store.py::test_the_same_edit_made_twice_is_not_a_collision
0.00s teardown tests/test_store.py::test_reading_a_path_that_does_not_exist_gives_none
0.00s teardown tests/test_store.py::test_two_edits_to_different_frontmatter_keys_of_one_file_are_merged
0.00s teardown tests/test_store.py::test_an_insertion_and_a_replacement_on_one_line_are_refused_not_half_kept
0.00s teardown tests/test_store.py::test_paths_lists_every_file_in_the_tree_at_that_commit
0.00s teardown tests/test_store.py::test_the_author_is_the_person_and_the_committer_is_the_bot
0.00s teardown tests/test_store.py::test_two_edits_to_different_parts_of_the_body_are_merged
0.00s teardown tests/test_store.py::test_both_changing_one_key_differently_is_a_conflict_that_writes_nothing
0.00s teardown tests/test_store.py::test_a_retried_write_still_records_the_person_who_asked_for_it
0.00s teardown tests/test_notes.py::test_the_static_export_carries_every_note
0.00s teardown tests/test_store.py::test_a_merge_inside_one_persons_record_still_reads_back_as_a_person
0.00s teardown tests/test_store.py::test_both_rewriting_one_body_line_differently_is_a_conflict
0.00s teardown tests/test_store.py::test_a_commit_made_outside_the_store_is_seen_by_head
0.00s teardown tests/test_store.py::test_a_human_editing_the_same_record_is_merged_or_refused_like_anybody_else
0.00s teardown tests/test_store.py::test_two_people_inserting_at_different_places_still_merge
0.00s teardown tests/test_store.py::test_no_conflict_marker_ever_reaches_the_caller_or_the_repository
0.00s teardown tests/test_store.py::test_two_people_choosing_at_once_write_two_files_and_neither_is_merged
0.00s teardown tests/test_store.py::test_git_log_reads_back_as_the_audit_trail
0.00s teardown tests/test_store.py::test_a_file_with_no_trailing_newline_keeps_not_having_one
0.00s call     tests/test_issues.py::test_an_issue_is_a_rung_of_the_ladder
0.00s teardown tests/test_store.py::test_a_write_against_the_current_head_is_committed_directly
0.00s teardown tests/test_store.py::test_a_path_is_read_at_the_commit_it_is_asked_for
0.00s teardown tests/test_store.py::test_the_content_committed_is_the_content_read_back
0.00s call     tests/test_notes.py::test_dropped_is_a_decision_that_a_link_does_not_reverse
0.00s teardown tests/test_themes.py::test_the_picker_puts_the_scheme_on_the_page_and_takes_it_off_again
0.00s call     tests/test_product.py::test_the_ladder_is_the_only_place_the_kinds_are_written_down
0.00s call     tests/test_store.py::test_the_identical_edit_made_twice_still_merges
0.00s setup    tests/test_notes.py::test_the_shipped_demo_carries_notes_that_load
0.00s teardown tests/test_themes.py::test_a_scheme_reaches_the_boxes_people_type_into
0.00s teardown tests/test_themes.py::test_the_drawing_gets_colours_it_can_actually_read
0.00s setup    tests/test_notes.py::test_a_became_that_opens_nothing_leaves_the_note_thinking_and_says_so
0.00s call     tests/test_issues.py::test_shelved_is_a_decision_a_link_does_not_reverse
0.00s setup    tests/test_credential.py::test_a_token_is_reused_until_it_is_nearly_out
0.00s teardown tests/test_editor.py::test_a_static_page_opens_no_event_stream
0.00s teardown tests/test_themes.py::test_every_scheme_is_readable_where_the_page_paints_it
0.00s teardown tests/test_product.py::test_a_product_can_be_patched_and_deleted
0.00s teardown tests/test_issues.py::test_an_issue_closes_only_when_every_piece_it_was_pitched_into_is_finished
0.00s call     tests/test_notes.py::test_the_arrival_document_puts_the_note_under_the_first_heading
0.00s setup    tests/test_product.py::test_a_product_adds_no_indent_to_the_work_beneath_it
0.00s teardown tests/test_product.py::test_a_product_is_drawn_differently_and_shows_no_card
0.00s teardown tests/test_issues.py::test_a_hand_written_edge_to_an_issue_does_not_500_the_table
0.00s teardown tests/test_credential.py::test_the_startup_refusal_says_which_variable_is_unset
0.00s teardown tests/test_notes.py::test_a_became_that_opens_nothing_leaves_the_note_thinking_and_says_so
0.00s teardown tests/test_themes.py::test_a_family_is_a_light_and_a_dark
0.00s teardown tests/test_product.py::test_a_product_can_be_made_through_the_api
0.00s call     tests/test_credential.py::test_a_token_is_reused_until_it_is_nearly_out
0.00s teardown tests/test_store.py::test_a_second_writer_does_not_erase_the_holders_pid
0.00s teardown tests/test_store.py::test_the_refusal_names_the_process_holding_the_lock
0.00s teardown tests/test_notes.py::test_the_shipped_demo_carries_notes_that_load
0.00s teardown tests/test_product.py::test_work_in_one_product_can_wait_on_work_in_another
0.00s teardown tests/test_product.py::test_a_product_draws_no_bar_on_the_timeline
0.00s teardown tests/test_store.py::test_a_second_store_on_the_same_repository_refuses_to_start
0.00s teardown tests/test_issues.py::test_check_covers_issues_for_the_first_time
0.00s call     tests/test_notes.py::test_the_citation_says_what_it_can_and_no_more
0.00s teardown tests/test_product.py::test_a_product_adds_no_indent_to_the_work_beneath_it
0.00s setup    tests/test_issues.py::test_pitching_an_issue_is_what_closes_it
0.00s setup    tests/test_notes.py::test_a_link_to_something_that_is_gone_is_a_warning_and_not_a_promotion
0.00s teardown tests/test_issues.py::test_deleting_what_a_hand_written_issue_waits_on_edits_the_issue
0.00s teardown tests/test_store.py::test_a_path_that_is_not_a_repository_is_refused_rather_than_searched_upwards
0.00s teardown tests/test_issues.py::test_the_seed_corpus_issues_load_as_records_off_the_plan
0.00s setup    tests/test_credential.py::test_the_assertion_is_actually_signed
0.00s teardown tests/test_product.py::test_a_status_on_a_product_still_warns_rather_than_refuses
0.00s teardown tests/test_credential.py::test_the_credential_is_asked_for_every_push_not_held_from_startup
0.00s setup    tests/test_themes.py::test_every_palette_is_sixteen_colours
0.00s teardown tests/test_store.py::test_closing_a_store_releases_the_lock_for_the_next_one
0.00s setup    tests/test_notes.py::test_the_arrival_document_puts_the_note_under_the_first_heading
0.00s teardown tests/test_credential.py::test_a_remote_that_needs_a_credential_and_has_none_is_refused
0.00s teardown tests/test_store.py::test_a_side_branch_edit_merged_in_carries_the_side_commits_time
0.00s setup    tests/test_editor.py::test_the_room_s_own_save_ends_the_session_by_leaving_the_page
0.00s teardown tests/test_store.py::test_last_edited_drops_a_deleted_path_and_stamps_an_added_one
0.00s setup    tests/test_issues.py::test_an_issue_is_a_rung_of_the_ladder
0.00s teardown tests/test_store.py::test_an_edit_reverted_inside_one_batch_is_stamped_with_the_revert
0.00s teardown tests/test_store.py::test_a_rewound_ref_discards_the_cache_and_rebuilds
0.00s call     tests/test_product.py::test_a_product_is_the_top_and_a_project_sits_under_one
0.00s setup    tests/test_notes.py::test_a_note_has_two_statuses_and_the_third_state_is_derived
0.00s teardown tests/test_product.py::test_the_editors_do_not_offer_a_field_the_rung_does_not_read
0.00s teardown tests/test_credential.py::test_a_half_set_environment_names_the_variable_it_wants
0.00s teardown tests/test_credential.py::test_a_token_is_reused_until_it_is_nearly_out
0.00s teardown tests/test_credential.py::test_half_a_configuration_is_no_configuration
0.00s call     tests/test_issues.py::test_an_issue_has_no_shaping
0.00s teardown tests/test_product.py::test_a_container_has_no_work_state_to_gate
0.00s teardown tests/test_themes.py::test_the_stylesheet_answers_all_three_states_of_the_switch
0.00s teardown tests/test_product.py::test_the_product_rules_are_as_old_as_the_kind
0.00s setup    tests/test_store.py::test_a_refusal_over_an_insertion_says_before_which_line
0.00s setup    tests/test_product.py::test_the_ladder_is_the_only_place_the_kinds_are_written_down
0.00s setup    tests/test_product.py::test_a_container_has_no_work_state_to_gate
0.00s teardown tests/test_editor.py::test_the_room_s_own_save_ends_the_session_by_leaving_the_page
0.00s teardown tests/test_notes.py::test_a_note_has_two_statuses_and_the_third_state_is_derived
0.00s teardown tests/test_product.py::test_the_ladder_is_the_only_place_the_kinds_are_written_down
0.00s teardown tests/test_credential.py::test_the_assertion_is_one_github_would_accept
0.00s teardown tests/test_notes.py::test_dropped_is_a_decision_that_a_link_does_not_reverse
0.00s teardown tests/test_notes.py::test_a_promoted_note_does_not_track_what_it_became
0.00s setup    tests/test_store.py::test_two_edits_with_the_same_text_over_different_spans_are_a_conflict
0.00s teardown tests/test_credential.py::test_the_assertion_is_actually_signed
0.00s teardown tests/test_notes.py::test_a_link_to_something_that_is_gone_is_a_warning_and_not_a_promotion
0.00s setup    tests/test_themes.py::test_a_family_is_a_light_and_a_dark
0.00s teardown tests/test_issues.py::test_pitching_an_issue_is_what_closes_it
0.00s teardown tests/test_notes.py::test_a_note_reads_no_field_that_is_a_commitment
0.00s setup    tests/test_product.py::test_the_product_rules_are_as_old_as_the_kind
0.00s setup    tests/test_product.py::test_a_product_is_the_top_and_a_project_sits_under_one
0.00s teardown tests/test_product.py::test_a_product_is_the_top_and_a_project_sits_under_one
0.00s setup    tests/test_notes.py::test_a_promoted_note_does_not_track_what_it_became
0.00s setup    tests/test_product.py::test_the_editors_do_not_offer_a_field_the_rung_does_not_read
0.00s teardown tests/test_notes.py::test_the_citation_says_what_it_can_and_no_more
0.00s teardown tests/test_product.py::test_a_product_carries_no_appetite_and_is_never_scheduled
0.00s teardown tests/test_themes.py::test_every_palette_is_sixteen_colours
0.00s setup    tests/test_themes.py::test_the_ink_a_scheme_is_read_in_clears_the_floor
0.00s teardown tests/test_issues.py::test_shelved_is_a_decision_a_link_does_not_reverse
0.00s setup    tests/test_notes.py::test_the_citation_says_what_it_can_and_no_more
0.00s setup    tests/test_store.py::test_the_identical_edit_made_twice_still_merges
0.00s teardown tests/test_store.py::test_two_edits_with_the_same_text_over_different_spans_are_a_conflict
0.00s teardown tests/test_store.py::test_a_refusal_over_an_insertion_says_before_which_line
0.00s teardown tests/test_notes.py::test_the_arrival_document_puts_the_note_under_the_first_heading
0.00s teardown tests/test_themes.py::test_the_ink_a_scheme_is_read_in_clears_the_floor
0.00s setup    tests/test_product.py::test_an_unknown_kind_is_still_refused
0.00s setup    tests/test_issues.py::test_an_issue_has_no_shaping
0.00s setup    tests/test_product.py::test_a_product_carries_no_appetite_and_is_never_scheduled
0.00s setup    tests/test_notes.py::test_a_note_reads_no_field_that_is_a_commitment
0.00s setup    tests/test_notes.py::test_dropped_is_a_decision_that_a_link_does_not_reverse
0.00s teardown tests/test_issues.py::test_an_issue_has_no_shaping
0.00s setup    tests/test_themes.py::test_the_stylesheet_answers_all_three_states_of_the_switch
0.00s teardown tests/test_product.py::test_a_product_waits_on_nothing
0.00s teardown tests/test_product.py::test_an_unknown_kind_is_still_refused
0.00s setup    tests/test_product.py::test_a_product_waits_on_nothing
0.00s setup    tests/test_issues.py::test_a_link_to_something_that_is_gone_leaves_the_stored_state_alone
0.00s teardown tests/test_issues.py::test_an_issue_is_a_rung_of_the_ladder
0.00s setup    tests/test_issues.py::test_shelved_is_a_decision_a_link_does_not_reverse
0.00s teardown tests/test_issues.py::test_a_link_to_something_that_is_gone_leaves_the_stored_state_alone

# --- suite (views) ---
9.05s call     tests/test_render.py::test_the_box_each_view_fills_stops_where_the_window_does[graph]
7.03s call     tests/test_render.py::test_the_current_nav_item_is_drawn_and_not_merely_resolved
6.62s call     tests/test_deck.py::test_every_deck_this_suite_can_reach_prints_one_slide_to_a_page
5.49s call     tests/test_render.py::test_the_box_each_view_fills_stops_where_the_window_does[table]
4.77s call     tests/test_render.py::test_the_box_each_view_fills_stops_where_the_window_does[timeline]
3.58s call     tests/test_render.py::test_the_heading_costs_the_view_no_row[graph]
3.47s call     tests/test_render.py::test_the_legend_is_two_rows_and_the_keys_line_up
2.34s call     tests/test_render.py::test_the_heading_costs_the_view_no_row[table]
2.18s call     tests/test_render.py::test_a_reader_who_asked_for_less_motion_gets_none_of_the_motion_there_is
1.94s call     tests/test_edges.py::test_an_existing_dependency_can_be_taken_off_the_diagram
1.84s call     tests/test_edges.py::test_reset_and_leaving_the_mode_both_put_a_marked_edge_back
1.82s call     tests/test_render.py::test_the_heading_costs_the_view_no_row[timeline]
1.81s call     tests/test_render.py::test_every_status_a_node_can_hold_reaches_cytoscape_as_a_colour
1.81s call     tests/test_edges.py::test_an_edge_drawn_by_mistake_is_simply_undrawn
1.79s call     tests/test_render.py::test_a_sentence_about_the_view_never_costs_the_view_a_row[graph]
1.76s call     tests/test_edges.py::test_an_edge_edit_is_refused_where_it_would_delete_a_hand_written_line
1.75s call     tests/test_render.py::test_a_window_that_changes_under_an_open_page_is_measured_again
1.32s call     tests/test_deck.py::test_the_plan_a_slide_falls_back_to_is_cut_to_the_sheet_and_says_so
1.14s call     tests/test_render.py::test_a_sentence_about_the_view_never_costs_the_view_a_row[table]
1.01s call     tests/test_render.py::test_a_view_leaves_the_page_you_were_standing_on
0.91s call     tests/test_render.py::test_a_sentence_about_the_view_never_costs_the_view_a_row[timeline]
0.50s call     tests/test_render.py::test_a_record_page_goes_back_to_the_view_it_was_opened_from
0.48s call     tests/test_render.py::test_the_facade_reaches_every_name_anything_outside_the_package_asks_for
0.34s call     tests/test_render.py::test_an_address_smuggled_into_the_stamp_is_not_followed
0.31s setup    tests/test_render.py::test_render_static_writes_every_page_and_says_which
0.23s call     tests/test_render.py::test_the_static_export_carries_the_drawings_and_offers_no_picker
0.21s call     tests/test_render.py::test_every_record_in_the_export_carries_the_link_back
0.20s call     tests/test_gitdoor.py::test_a_file_nobody_could_parse_costs_that_file_and_nothing_else[a
0.19s setup    tests/test_render.py::test_load_is_charged_where_the_assignees_are
0.19s setup    tests/test_render.py::test_a_hatch_is_drawn_in_the_ink_of_the_bar_it_covers
0.19s setup    tests/test_render.py::test_every_library_is_inlined_exactly_once_and_no_marker_survives
0.19s setup    tests/test_render.py::test_the_page_names_its_fonts_once
0.19s setup    tests/test_render.py::test_a_person_row_says_which_hat_they_are_wearing
0.19s call     tests/test_headers.py::test_the_static_export_carries_it_because_it_has_no_server
0.19s setup    tests/test_render.py::test_every_page_echoes_the_iso_value_of_a_date_box
0.19s setup    tests/test_render.py::test_opening_a_node_takes_two_clicks
0.19s setup    tests/test_render.py::test_a_bar_that_overruns_its_cycle_is_one_of_the_bars_on_the_corpus
0.19s call     tests/test_render.py::test_a_browser_that_refuses_its_stores_still_draws_the_page
0.19s setup    tests/test_render.py::test_the_hatching_says_in_words_what_it_says_in_texture
0.18s setup    tests/test_render.py::test_the_detail_page_links_dependencies_both_ways
0.18s setup    tests/test_render.py::test_the_parent_reads_as_a_title_and_edits_as_an_id
0.18s setup    tests/test_render.py::test_a_new_cycle_still_has_a_roster_to_set_availability_against
0.18s setup    tests/test_render.py::test_weeks_bet_into_another_cycle_are_counted_beside_this_one
0.18s setup    tests/test_render.py::test_the_line_that_says_a_bet_does_not_fit_is_drawn_as_a_problem
0.18s setup    tests/test_render.py::test_pr_references_become_links_that_resolve
0.18s setup    tests/test_render.py::test_a_person_over_their_availability_says_so_in_the_group_row
0.18s setup    tests/test_render.py::test_a_cycle_bet_into_by_somebody_off_the_roster_is_not_counted_short
0.18s setup    tests/test_render.py::test_pull_requests_are_offered_newest_first
0.18s setup    tests/test_render.py::test_a_size_is_split_evenly_between_the_people_on_it
0.18s setup    tests/test_render.py::test_a_pr_reference_completes_in_two_halves
0.18s setup    tests/test_render.py::test_a_cycle_card_carries_the_meter_the_cycle_page_draws
0.18s setup    tests/test_render.py::test_an_empty_field_is_a_dash_and_not_a_word
0.18s setup    tests/test_render.py::test_a_person_is_weighed_in_weeks_and_not_in_things
0.18s setup    tests/test_render.py::test_the_cycles_index_lists_every_cycle_the_plan_names
0.18s setup    tests/test_render.py::test_one_capacity_formula_answers_both_cycle_pages
0.18s setup    tests/test_render.py::test_a_recorded_cycle_is_its_roster_and_nobody_else
0.17s setup    tests/test_render.py::test_the_nav_says_which_page_you_are_on
0.17s setup    tests/test_render.py::test_a_batch_of_edges_is_saved_against_the_commit_before_it
0.17s setup    tests/test_render.py::test_the_graph_names_every_colour_it_draws_with
0.17s setup    tests/test_render.py::test_the_timeline_filters_with_the_same_bar_the_table_does
0.17s setup    tests/test_render.py::test_the_graph_commits_in_the_same_place_every_other_page_does
0.17s setup    tests/test_deck.py::test_every_deck_this_suite_can_reach_prints_one_slide_to_a_page
0.16s setup    tests/test_render.py::test_every_person_links_to_the_table_filtered_by_them
0.16s setup    tests/test_render.py::test_a_reader_who_asked_for_less_motion_gets_none_of_the_motion_there_is
0.16s setup    tests/test_render.py::test_the_icon_needs_no_escaping_to_sit_in_an_attribute
0.16s setup    tests/test_render.py::test_hiding_a_node_never_leaves_an_edge_pointing_at_nothing
0.16s setup    tests/test_render.py::test_the_detail_page_names_each_document_it_holds
0.16s setup    tests/test_render.py::test_the_motion_floor_is_the_shell_s_and_not_one_page_s
0.16s setup    tests/test_render.py::test_the_typeface_travels_with_the_page
0.16s setup    tests/test_render.py::test_a_status_shape_is_bounded_against_the_page_it_sits_on
0.16s setup    tests/test_render.py::test_the_legend_is_two_rows_and_the_keys_line_up
0.16s setup    tests/test_render.py::test_edges_turn_at_right_angles_and_are_drawn_beneath_the_boxes
0.16s setup    tests/test_render.py::test_the_detail_page_wears_the_same_chips_every_other_view_wears
0.16s setup    tests/test_render.py::test_every_page_can_draw_a_problem_and_a_focus_ring
0.16s setup    tests/test_render.py::test_a_heading_that_repeats_the_nav_is_announced_and_not_drawn
0.16s setup    tests/test_render.py::test_the_dash_that_means_no_value_is_readable
0.16s setup    tests/test_render.py::test_a_persons_rows_lead_with_what_they_own
0.16s setup    tests/test_render.py::test_the_ink_on_a_shape_stays_a_per_status_token
0.16s setup    tests/test_render.py::test_every_view_links_to_the_detail_page
0.16s setup    tests/test_render.py::test_the_app_moves_in_two_places
0.16s setup    tests/test_render.py::test_every_page_carries_its_own_icon
0.16s setup    tests/test_render.py::test_the_export_draws_no_sign_in
0.16s setup    tests/test_render.py::test_the_cycle_band_is_one_token_and_it_can_be_seen
0.16s setup    tests/test_render.py::test_the_page_draws_both_rules
0.16s setup    tests/test_render.py::test_the_font_licence_travels_with_the_font
0.16s setup    tests/test_render.py::test_no_page_asks_the_network_for_a_font
0.16s setup    tests/test_render.py::test_the_graph_says_which_of_the_three_emptinesses_it_is
0.16s setup    tests/test_render.py::test_the_libraries_are_inlined_rather_than_linked
0.16s setup    tests/test_render.py::test_no_page_reaches_the_network
0.16s setup    tests/test_render.py::test_a_remembered_width_of_nothing_is_thrown_away
0.16s setup    tests/test_render.py::test_drawing_a_dependency_does_not_write_one
0.16s setup    tests/test_render.py::test_the_graph_carries_one_hint_and_no_mode_paragraph
0.16s setup    tests/test_render.py::test_one_persons_rows_do_not_run_into_the_next
0.16s setup    tests/test_render.py::test_a_span_less_record_is_listed_but_not_drawn
0.16s setup    tests/test_render.py::test_the_timeline_names_every_colour_it_draws
0.16s setup    tests/test_render.py::test_a_group_name_is_readable_inside_its_own_box
0.16s setup    tests/test_render.py::test_a_node_says_its_status_without_using_colour
0.16s setup    tests/test_render.py::test_the_shaping_doc_does_not_repeat_the_heading_it_is_under
0.16s setup    tests/test_render.py::test_every_page_names_itself_and_holds_exactly_one_main
0.16s setup    tests/test_render.py::test_the_detail_page_renders_the_shaping_doc_as_markdown
0.16s setup    tests/test_render.py::test_the_timeline_hatches_what_it_is_guessing
0.16s setup    tests/test_render.py::test_the_detail_column_is_centred_and_the_facts_sit_beside_the_document
0.16s setup    tests/test_render.py::test_the_furniture_every_page_shares_is_written_once
0.16s setup    tests/test_render.py::test_the_detail_page_shows_the_derived_dates_and_the_explanation
0.16s setup    tests/test_render.py::test_one_quantity_is_called_appetite_wherever_it_is_read
0.16s setup    tests/test_render.py::test_the_graph_repaints_rather_than_reloads_on_a_theme_change
0.16s setup    tests/test_render.py::test_the_people_page_draws_the_control_bar_the_plan_draws
0.16s setup    tests/test_render.py::test_the_people_page_lists_everyone_the_plan_names
0.16s setup    tests/test_render.py::test_a_bar_says_its_status_without_using_colour
0.16s setup    tests/test_render.py::test_a_status_colour_is_a_token_and_not_baked_into_a_bar
0.16s setup    tests/test_render.py::test_no_page_uses_one_id_for_more_than_one_element
0.16s setup    tests/test_render.py::test_the_table_carries_the_whole_plan_and_its_derived_dates
0.16s setup    tests/test_render.py::test_the_people_page_says_when_its_filters_match_nothing
0.16s setup    tests/test_render.py::test_every_status_a_node_can_hold_reaches_cytoscape_as_a_colour
0.16s setup    tests/test_render.py::test_the_people_page_is_alphabetical_and_filterable
0.16s setup    tests/test_render.py::test_the_fills_are_separated_by_lightness_and_not_only_by_hue
0.16s setup    tests/test_render.py::test_a_first_heading_that_is_not_the_title_is_left_alone
0.16s setup    tests/test_render.py::test_every_filter_offers_a_way_back_to_everything
0.16s setup    tests/test_render.py::test_every_explanation_reaches_the_reader
0.16s setup    tests/test_render.py::test_every_status_fill_carries_ink_that_reads_on_it
0.16s setup    tests/test_render.py::test_the_timeline_lists_beside_the_chart_what_the_chart_draws
0.16s setup    tests/test_render.py::test_the_page_is_allowed_to_talk_to_its_own_server
0.16s setup    tests/test_render.py::test_every_record_in_the_export_carries_the_link_back
0.16s setup    tests/test_render.py::test_a_boundary_and_an_absent_value_are_both_visible
0.16s setup    tests/test_render.py::test_the_theme_is_chosen_before_the_first_paint
0.16s setup    tests/test_render.py::test_a_rendered_plan_offers_no_dead_control
0.16s call     tests/test_gitdoor.py::test_a_file_nobody_could_parse_costs_that_file_and_nothing_else[a
0.16s setup    tests/test_render.py::test_every_person_row_links_to_the_record
0.16s setup    tests/test_render.py::test_the_detail_page_opens_as_an_index_not_a_wall_of_text
0.16s setup    tests/test_render.py::test_a_pitch_draws_its_tasks_as_the_progress_it_has_made
0.16s setup    tests/test_render.py::test_a_detail_page_exists_for_every_record
0.16s setup    tests/test_render.py::test_a_node_takes_its_ink_from_the_fill_it_sits_on
0.16s setup    tests/test_render.py::test_a_dependency_arrow_can_be_seen_on_the_canvas_it_is_drawn_on
0.16s setup    tests/test_render.py::test_the_three_theme_blocks_agree_about_every_colour
0.16s setup    tests/test_render.py::test_the_legend_draws_a_cycle_boundary_the_way_the_plot_does
0.16s setup    tests/test_render.py::test_a_bar_carries_what_it_is_holding
0.16s setup    tests/test_render.py::test_every_page_carries_a_skip_link_and_a_live_region
0.16s setup    tests/test_render.py::test_every_page_carries_the_toggle
0.16s setup    tests/test_render.py::test_a_people_row_wears_the_chips_the_table_wears
0.16s setup    tests/test_render.py::test_no_colour_is_defined_only_in_the_dark_block
0.16s setup    tests/test_render.py::test_a_status_carries_a_chip_palette_as_well_as_a_fill
0.16s setup    tests/test_render.py::test_the_people_page_is_one_table_with_one_header
0.16s setup    tests/test_render.py::test_a_chip_pair_is_readable_in_both_themes
0.16s setup    tests/test_render.py::test_every_status_owns_a_mark_that_is_not_a_colour
0.16s setup    tests/test_render.py::test_a_cycle_with_a_record_bets_its_weeks_against_the_roster
0.16s setup    tests/test_render.py::test_the_graph_filters_the_plan_the_way_the_table_does
0.16s setup    tests/test_render.py::test_the_timeline_draws_cycle_boundaries_and_today
0.16s setup    tests/test_render.py::test_a_ready_pitch_missing_a_no_gos_section_is_told_so_on_its_own_page
0.16s setup    tests/test_render.py::test_a_pitch_says_what_its_tasks_add_up_to_beside_what_it_was_bet_at
0.16s setup    tests/test_render.py::test_a_rendered_file_dresses_its_cells_the_way_the_server_does
0.16s setup    tests/test_render.py::test_a_cycle_gets_a_band_of_its_own_above_the_months
0.16s setup    tests/test_render.py::test_the_table_shows_a_persistent_blocker_count
0.16s call     tests/test_render.py::test_every_icon_is_a_row_in_the_picker_with_its_name_beside_it
0.16s setup    tests/test_render.py::test_the_graph_is_a_compound_dag_coloured_by_status
0.16s setup    tests/test_render.py::test_filter_state_lives_in_query_parameters
0.16s call     tests/test_gitdoor.py::test_a_file_nobody_could_parse_costs_that_file_and_nothing_else[an
0.15s call     tests/test_gitdoor.py::test_a_file_nobody_could_parse_costs_that_file_and_nothing_else[a
0.15s call     tests/test_render.py::test_a_persons_icon_is_drawn_in_the_page_and_not_fetched
0.15s call     tests/test_render.py::test_an_icon_nothing_draws_costs_the_drawing_and_nothing_else
0.14s call     tests/test_render.py::test_a_page_reached_from_a_view_leaves_the_stamp_where_it_found_it
0.14s call     tests/test_gitdoor.py::test_a_file_name_nobody_should_have_used_is_still_only_text
0.13s call     tests/test_gitdoor.py::test_a_plan_everybody_can_read_says_nothing_about_unreadable_files
0.13s 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_parse.py::test_load_repo_loads_the_whole_seed_corpus
0.12s call     tests/test_render.py::test_the_timeline_survives_a_date_at_the_end_of_the_calendar
0.10s setup    tests/test_edges.py::test_reset_and_leaving_the_mode_both_put_a_marked_edge_back
0.10s setup    tests/test_edges.py::test_an_edge_drawn_by_mistake_is_simply_undrawn
0.10s setup    tests/test_render.py::test_a_browser_that_refuses_its_stores_still_draws_the_page
0.10s setup    tests/test_edges.py::test_an_existing_dependency_can_be_taken_off_the_diagram
0.10s setup    tests/test_render.py::test_the_headings_a_server_draws_are_the_same_two_kinds
0.10s setup    tests/test_deck.py::test_a_deck_is_bounded_to_the_cycles_that_can_exist
0.10s call     tests/test_headers.py::test_every_response_says_what_it_may_do[/]
0.09s call     tests/test_render.py::test_render_static_writes_every_page_and_says_which
0.09s setup    tests/test_render.py::test_a_window_that_changes_under_an_open_page_is_measured_again
0.09s setup    tests/test_render.py::test_a_sentence_about_the_view_never_costs_the_view_a_row[timeline]
0.09s setup    tests/test_render.py::test_the_heading_costs_the_view_no_row[table]
0.09s setup    tests/test_render.py::test_the_box_each_view_fills_stops_where_the_window_does[timeline]
0.09s setup    tests/test_render.py::test_a_sentence_about_the_view_never_costs_the_view_a_row[graph]
0.09s setup    tests/test_render.py::test_the_current_nav_item_is_drawn_and_not_merely_resolved
0.09s setup    tests/test_render.py::test_the_heading_costs_the_view_no_row[timeline]
0.09s setup    tests/test_render.py::test_the_heading_costs_the_view_no_row[graph]
0.09s setup    tests/test_render.py::test_a_sentence_about_the_view_never_costs_the_view_a_row[table]
0.09s setup    tests/test_render.py::test_the_box_each_view_fills_stops_where_the_window_does[table]
0.09s setup    tests/test_deck.py::test_a_record_that_is_only_its_bet_falls_back_to_what_it_was_going_to_do
0.09s setup    tests/test_render.py::test_a_view_leaves_the_page_you_were_standing_on
0.09s setup    tests/test_deck.py::test_no_slide_in_the_shipped_demo_is_a_heading_over_an_empty_page
0.09s call     tests/test_exclusion.py::test_a_row_filed_under_an_unplanned_record_refuses_the_move_and_says_where
0.09s setup    tests/test_render.py::test_the_box_each_view_fills_stops_where_the_window_does[graph]
0.09s call     tests/test_identity.py::test_the_seed_corpus_reports_no_identity_problem
0.08s setup    tests/test_render.py::test_an_address_smuggled_into_the_stamp_is_not_followed
0.08s setup    tests/test_render.py::test_a_record_page_goes_back_to_the_view_it_was_opened_from
0.08s call     tests/test_render.py::test_an_empty_timeline_says_which_kind_of_empty_it_is
0.08s setup    tests/test_render.py::test_a_page_reached_from_a_view_leaves_the_stamp_where_it_found_it
0.08s setup    tests/test_render.py::test_a_record_page_opened_cold_still_goes_to_the_records_list
0.08s call     tests/test_render.py::test_a_bar_at_the_end_of_time_does_not_make_a_page_nobody_can_open
0.08s call     tests/test_render.py::test_a_plan_where_nobody_has_picked_one_draws_the_page_as_it_was
0.08s setup    tests/test_deck.py::test_every_slide_of_the_frozen_corpus_is_worth_the_sheet_it_prints_on
0.07s call     tests/test_render.py::test_one_persons_rows_do_not_run_into_the_next
0.07s setup    tests/test_render.py::test_the_solid_rule_is_the_end_of_build_and_the_dashed_one_the_end_of_the_window
0.07s setup    tests/test_render.py::test_a_templates_guidance_never_reaches_the_page
0.07s setup    tests/test_render.py::test_the_date_boxes_hold_the_window_on_screen
0.07s setup    tests/test_deck.py::test_a_hand_written_checklist_reaches_the_slide_it_belongs_to
0.07s setup    tests/test_render.py::test_a_month_names_its_year_only_when_the_year_changes
0.07s setup    tests/test_render.py::test_a_window_typed_into_the_url_cannot_run_off_the_calendar
0.07s setup    tests/test_render.py::test_the_records_list_keeps_the_name_the_link_already_had
0.07s setup    tests/test_render.py::test_a_window_that_excludes_today_draws_no_today_line
0.07s setup    tests/test_render.py::test_the_preview_shows_the_same_two_syntaxes_the_page_will
0.07s setup    tests/test_render.py::test_a_record_that_is_not_there_is_an_empty_page_and_not_a_KeyError
0.07s setup    tests/test_render.py::test_the_progress_column_appears_only_once_a_plan_has_a_checklist
0.07s setup    tests/test_render.py::test_a_rendered_block_carries_the_source_line_it_came_from
0.07s setup    tests/test_render.py::test_an_editable_page_reaches_the_network_no_more_than_a_read_only_one
0.07s setup    tests/test_render.py::test_a_cycle_with_no_record_is_weeks_bet_against_no_roster
0.07s setup    tests/test_render.py::test_a_reader_who_may_not_write_is_sent_no_editor_library
0.07s setup    tests/test_render.py::test_an_unknown_status_still_reaches_the_index
0.07s setup    tests/test_render.py::test_the_editor_licence_travels_with_the_editor
0.07s setup    tests/test_render.py::test_choosing_a_repository_does_not_end_the_entry
0.07s setup    tests/test_render.py::test_zoom_is_drawn_rather_than_stretched
0.07s setup    tests/test_render.py::test_a_status_nobody_uses_gets_no_heading
0.07s setup    tests/test_render.py::test_the_suggestion_list_offers_names_and_not_sentences
0.07s setup    tests/test_render.py::test_a_cycle_with_no_record_says_what_every_other_view_says_about_it
0.07s call     tests/test_parse.py::test_a_template_quoted_inside_a_fence_is_not_this_records_own_plan
0.07s setup    tests/test_render.py::test_a_narrowed_window_clips_bars_rather_than_dropping_them
0.07s setup    tests/test_render.py::test_a_node_carries_everything_the_filters_ask_of_it
0.07s setup    tests/test_render.py::test_the_labels_and_the_bars_are_laid_out_on_one_row_height
0.07s setup    tests/test_render.py::test_a_struck_out_line_and_a_task_list_render_as_what_they_are
0.07s setup    tests/test_render.py::test_no_fact_is_formatted_for_the_detail_page_twice
0.07s setup    tests/test_render.py::test_one_record_on_its_own_page_is_the_row_the_export_would_have_built
0.07s setup    tests/test_render.py::test_a_cycle_number_is_offered_the_way_every_other_reference_is
0.07s call     tests/test_headers.py::test_every_response_says_what_it_may_do[/detail]
0.07s call     tests/test_render.py::test_a_record_page_opened_cold_still_goes_to_the_records_list
0.07s call     tests/test_parse.py::test_ancestors_of_a_seed_task_reach_its_pitch
0.07s call     tests/test_gitdoor.py::test_the_json_route_says_which_file_and_why[a
0.06s call     tests/test_render.py::test_a_rendered_block_carries_the_source_line_it_came_from
0.06s call     tests/test_render.py::test_the_nav_says_which_page_you_are_on
0.06s call     tests/test_render.py::test_the_records_list_keeps_the_name_the_link_already_had
0.06s call     tests/test_render.py::test_no_page_uses_one_id_for_more_than_one_element
0.06s call     tests/test_render.py::test_the_app_moves_in_two_places
0.05s call     tests/test_render.py::test_a_heading_that_repeats_the_nav_is_announced_and_not_drawn
0.05s call     tests/test_gitdoor.py::test_the_banner_does_not_change_the_shape_of_a_page_it_names
0.05s call     tests/test_render.py::test_one_record_on_its_own_page_is_the_row_the_export_would_have_built
0.04s call     tests/test_gitdoor.py::test_every_page_the_renderer_can_draw_carries_the_banner
0.04s call     tests/test_render.py::test_the_index_is_grouped_in_the_order_work_moves
0.04s call     tests/test_render.py::test_the_furniture_every_page_shares_is_written_once
0.04s call     tests/test_deck.py::test_an_uploaded_screenshot_is_served_into_the_deck_as_bytes
0.04s call     tests/test_deck.py::test_a_deck_prints_on_paper_whatever_theme_it_was_read_in
0.04s call     tests/test_render.py::test_a_struck_out_line_and_a_task_list_render_as_what_they_are
0.03s call     tests/test_gitdoor.py::test_a_file_below_the_directory_does_not_claim_the_id_above_it
0.03s call     tests/test_render.py::test_every_page_names_itself_and_holds_exactly_one_main
0.03s call     tests/test_gitdoor.py::test_render_writes_every_page_and_says_what_it_left_out
0.03s call     tests/test_render.py::test_the_timeline_orders_its_rows_by_containment
0.03s call     tests/test_render.py::test_the_timeline_hatches_what_it_is_guessing
0.03s call     tests/test_deck.py::test_a_status_on_a_slide_is_a_word_and_not_the_ladder
0.03s call     tests/test_render.py::test_a_child_stays_indented_when_its_parent_is_not_drawn
0.03s call     tests/test_gitdoor.py::test_a_reason_quoting_the_file_is_still_only_text
0.03s call     tests/test_render.py::test_a_same_day_span_is_still_wide_enough_to_hit
0.03s setup    tests/test_headers.py::test_every_response_says_what_it_may_do[/]
0.03s setup    tests/test_headers.py::test_a_refusal_carries_them_too
0.03s setup    tests/test_headers.py::test_every_response_says_what_it_may_do[/people]
0.03s setup    tests/test_headers.py::test_every_response_says_what_it_may_do[/graph]
0.03s setup    tests/test_headers.py::test_every_response_says_what_it_may_do[/timeline]
0.03s setup    tests/test_headers.py::test_every_response_says_what_it_may_do[/api/index.json]
0.03s setup    tests/test_headers.py::test_the_page_carries_the_policy_the_server_sends
0.03s setup    tests/test_headers.py::test_every_response_says_what_it_may_do[/detail]
0.03s setup    tests/test_headers.py::test_every_response_says_what_it_may_do[/cycles]
0.03s call     tests/test_deck.py::test_a_deck_is_bounded_to_the_cycles_that_can_exist
0.03s call     tests/test_render.py::test_no_fact_is_formatted_for_the_detail_page_twice
0.02s call     tests/test_deck.py::test_every_slide_of_the_frozen_corpus_is_worth_the_sheet_it_prints_on
0.02s call     tests/test_deck.py::test_a_link_on_a_slide_is_drawn_against_paper_and_not_against_the_theme
0.02s call     tests/test_render.py::test_a_reader_who_may_not_write_is_sent_no_editor_library
0.02s call     tests/test_headers.py::test_every_response_says_what_it_may_do[/graph]
0.02s call     tests/test_gitdoor.py::test_the_rest_of_the_plan_is_still_on_the_page[a
0.02s call     tests/test_gitdoor.py::test_the_rest_of_the_plan_is_still_on_the_page[an
0.02s call     tests/test_render.py::test_a_window_typed_into_the_url_cannot_run_off_the_calendar
0.02s call     tests/test_gitdoor.py::test_several_bad_files_are_all_named_rather_than_the_first
0.02s call     tests/test_render.py::test_an_editable_page_reaches_the_network_no_more_than_a_read_only_one
0.02s call     tests/test_deck.py::test_a_heading_inside_the_notes_is_not_drawn_at_the_size_of_the_slides_own
0.02s call     tests/test_identity.py::test_a_save_refuses_when_the_file_does_not_declare_the_id_it_is_named_for
0.02s call     tests/test_render.py::test_the_motion_floor_is_the_shell_s_and_not_one_page_s
0.02s call     tests/test_headers.py::test_the_page_carries_the_policy_the_server_sends
0.02s call     tests/test_gitdoor.py::test_saving_a_file_that_will_not_parse_is_a_refusal_naming_it
0.02s call     tests/test_gitdoor.py::test_the_json_route_says_which_file_and_why[an
0.02s call     tests/test_gitdoor.py::test_the_json_route_says_which_file_and_why[a
0.02s call     tests/test_headers.py::test_every_response_says_what_it_may_do[/people]
0.02s call     tests/test_headers.py::test_every_response_says_what_it_may_do[/timeline]
0.02s call     tests/test_render.py::test_every_filter_offers_a_way_back_to_everything
0.02s call     tests/test_render.py::test_the_date_boxes_hold_the_window_on_screen
0.01s call     tests/test_render.py::test_every_library_is_inlined_exactly_once_and_no_marker_survives
0.01s call     tests/test_exclusion.py::test_an_inbox_tag_is_offered_where_tags_are_edited_and_its_id_is_not
0.01s setup    tests/test_deck.py::test_an_uploaded_screenshot_is_served_into_the_deck_as_bytes
0.01s setup    tests/test_exclusion.py::test_an_unplanned_record_is_on_its_own_page_and_the_landing_and_nowhere_else
0.01s call     tests/test_headers.py::test_every_response_says_what_it_may_do[/cycles]
0.01s setup    tests/test_exclusion.py::test_an_inbox_tag_is_offered_where_tags_are_edited_and_its_id_is_not
0.01s call     tests/test_headers.py::test_every_response_says_what_it_may_do[/api/index.json]
0.01s call     tests/test_render.py::test_the_graph_commits_in_the_same_place_every_other_page_does
0.01s setup    tests/test_exclusion.py::test_a_row_filed_under_an_unplanned_record_refuses_the_move_and_says_where
0.01s call     tests/test_render.py::test_the_renderer_asks_the_model_rather_than_reaching_into_it
0.01s call     tests/test_render.py::test_no_page_asks_the_network_for_a_font
0.01s call     tests/test_headers.py::test_a_refusal_carries_them_too
0.01s call     tests/test_harness.py::test_every_test_repository_names_the_branch_the_store_reads
0.01s call     tests/test_render.py::test_no_page_reaches_the_network
0.01s call     tests/test_render.py::test_nothing_touches_a_browser_store_except_the_helper_that_survives_a_refusal
0.01s setup    tests/test_deck.py::test_the_deck_is_a_title_slide_and_then_one_slide_per_piece_of_work
0.01s call     tests/test_render.py::test_zoom_is_drawn_rather_than_stretched
0.01s call     tests/test_deck.py::test_no_slide_in_the_shipped_demo_is_a_heading_over_an_empty_page
0.01s call     tests/test_deck.py::test_a_record_that_is_only_its_bet_falls_back_to_what_it_was_going_to_do
0.01s call     tests/test_render.py::test_a_rendered_plan_offers_no_dead_control
0.01s call     tests/test_gitdoor.py::test_the_banner_says_how_many_and_why_rather_than_only_that
0.01s call     tests/test_render.py::test_the_detail_page_names_each_document_it_holds
0.01s call     tests/test_render.py::test_the_export_draws_no_sign_in
0.01s call     tests/test_parse.py::test_every_seed_file_round_trips_byte_identically[pitch-0d0001]
0.01s call     tests/test_render.py::test_the_editor_licence_travels_with_the_editor
0.01s call     tests/test_render.py::test_a_narrowed_window_clips_bars_rather_than_dropping_them
0.01s call     tests/test_render.py::test_a_dependency_arrow_can_be_seen_on_the_canvas_it_is_drawn_on
0.01s call     tests/test_parse.py::test_every_seed_file_round_trips_byte_identically[pitch-0f0001]
0.01s call     tests/test_render.py::test_every_page_carries_a_skip_link_and_a_live_region
0.01s call     tests/test_parse.py::test_every_seed_file_round_trips_byte_identically[pitch-0b0001]
0.01s call     tests/test_render.py::test_the_graph_says_which_of_the_three_emptinesses_it_is
0.01s call     tests/test_deck.py::test_a_review_date_nobody_chose_is_not_printed_as_though_somebody_had
0.01s call     tests/test_parse.py::test_every_seed_file_round_trips_byte_identically[pitch-0a0001]
0.01s call     tests/test_parse.py::test_every_seed_file_round_trips_byte_identically[pitch-0c0001]
0.01s call     tests/test_deck.py::test_bytes_that_will_not_come_back_cost_the_picture_and_not_the_page
0.01s call     tests/test_render.py::test_a_window_that_excludes_today_draws_no_today_line
0.01s call     tests/test_render.py::test_edges_turn_at_right_angles_and_are_drawn_beneath_the_boxes
0.01s call     tests/test_parse.py::test_every_seed_file_round_trips_byte_identically[pitch-0e0001]
0.01s call     tests/test_render.py::test_the_ink_on_a_shape_stays_a_per_status_token
0.01s call     tests/test_parse.py::test_round_trip_of_the_hand_formatted_fixture_is_byte_identical
0.01s call     tests/test_parse.py::test_every_seed_file_round_trips_byte_identically[task-0d1002]
0.01s call     tests/test_parse.py::test_every_seed_file_round_trips_byte_identically[task-0b1002]
0.01s call     tests/test_parse.py::test_every_seed_file_round_trips_byte_identically[task-0d1001]
0.01s call     tests/test_exclusion.py::test_the_schedule_payload_never_names_an_unplanned_kind
0.01s call     tests/test_parse.py::test_every_seed_file_round_trips_byte_identically[task-0b1001]
0.01s call     tests/test_parse.py::test_every_seed_file_round_trips_byte_identically[pitch-0f0003]
0.01s call     tests/test_render.py::test_the_graph_does_not_animate_where_css_cannot_stop_it
0.01s call     tests/test_parse.py::test_serialise_writes_one_edited_key_and_leaves_its_neighbours_alone
0.01s call     tests/test_render.py::test_a_group_name_is_readable_inside_its_own_box
0.01s call     tests/test_parse.py::test_every_seed_file_round_trips_byte_identically[task-0a1001]
0.01s call     tests/test_render.py::test_a_node_says_its_status_without_using_colour
0.01s call     tests/test_render.py::test_the_graph_filters_the_plan_the_way_the_table_does
0.01s call     tests/test_parse.py::test_every_seed_file_round_trips_byte_identically[task-0d1003]
0.01s call     tests/test_parse.py::test_every_seed_file_round_trips_byte_identically[task-0c1001]
0.01s call     tests/test_parse.py::test_every_seed_file_round_trips_byte_identically[task-0a1002]
0.01s call     tests/test_parse.py::test_every_seed_file_round_trips_byte_identically[task-0e1002]
0.01s call     tests/test_parse.py::test_every_seed_file_round_trips_byte_identically[proj-000001]
0.01s call     tests/test_parse.py::test_every_seed_file_round_trips_byte_identically[task-0e1001]
0.01s call     tests/test_parse.py::test_every_seed_file_round_trips_byte_identically[task-0f1001]
0.01s call     tests/test_parse.py::test_every_seed_file_round_trips_byte_identically[task-0f1002]
0.01s call     tests/test_parse.py::test_every_seed_file_round_trips_byte_identically[task-0c1002]
0.01s call     tests/test_render.py::test_a_bar_is_exactly_as_wide_as_the_span_the_scheduler_computed
0.01s call     tests/test_gitdoor.py::test_check_still_reports_the_records_that_did_read
0.01s call     tests/test_deck.py::test_a_hand_written_checklist_reaches_the_slide_it_belongs_to
0.01s call     tests/test_parse.py::test_every_seed_file_round_trips_byte_identically[task-0f1005]
0.01s call     tests/test_render.py::test_a_node_takes_its_ink_from_the_fill_it_sits_on
0.01s call     tests/test_parse.py::test_every_seed_file_round_trips_byte_identically[proj-000002]
0.01s call     tests/test_parse.py::test_every_seed_file_round_trips_byte_identically[task-0f1003]
0.01s call     tests/test_parse.py::test_every_seed_file_round_trips_byte_identically[task-0f1004]
0.01s call     tests/test_render.py::test_the_typeface_travels_with_the_page
0.01s call     tests/test_parse.py::test_every_seed_file_round_trips_byte_identically[pitch-0f0002]
0.01s call     tests/test_render.py::test_every_page_can_draw_a_problem_and_a_focus_ring
0.01s call     tests/test_render.py::test_the_graph_is_a_compound_dag_coloured_by_status
0.01s call     tests/test_deck.py::test_a_point_is_a_line_of_markdown_and_is_rendered_as_one
0.01s call     tests/test_render.py::test_every_page_echoes_the_iso_value_of_a_date_box
0.00s call     tests/test_render.py::test_the_headings_a_server_draws_are_the_same_two_kinds
0.00s call     tests/test_deck.py::test_the_cycle_page_offers_the_deck_only_where_there_is_one
0.00s call     tests/test_render.py::test_the_labels_and_the_bars_are_laid_out_on_one_row_height
0.00s call     tests/test_deck.py::test_a_task_that_is_still_this_tools_own_template_has_a_slide_to_present
0.00s call     tests/test_render.py::test_a_month_names_its_year_only_when_the_year_changes
0.00s call     tests/test_deck.py::test_a_review_shows_what_was_finished_and_what_was_parked
0.00s call     tests/test_deck.py::test_the_slides_of_one_bet_are_consecutive
0.00s call     tests/test_render.py::test_opening_a_node_takes_two_clicks
0.00s call     tests/test_render.py::test_hiding_a_node_never_leaves_an_edge_pointing_at_nothing
0.00s call     tests/test_render.py::test_a_detail_page_exists_for_every_record
0.00s call     tests/test_gitdoor.py::test_schedule_still_prints_a_schedule
0.00s call     tests/test_render.py::test_the_graph_carries_one_hint_and_no_mode_paragraph
0.00s call     tests/test_render.py::test_a_cycle_with_no_record_is_weeks_bet_against_no_roster
0.00s call     tests/test_deck.py::test_the_progress_section_is_what_a_review_slide_is_for
0.00s call     tests/test_gitdoor.py::test_check_names_a_record_filed_one_directory_too_deep
0.00s call     tests/test_parse.py::test_parse_dispatches_to_the_subclass_named_by_kind
0.00s call     tests/test_gitdoor.py::test_check_names_every_file_it_could_not_read_and_fails
0.00s call     tests/test_deck.py::test_a_heading_the_bet_emptied_is_not_printed_over_blank_paper
0.00s call     tests/test_render.py::test_every_page_carries_the_toggle
0.00s call     tests/test_deck.py::test_a_cycle_holding_nothing_says_so_and_offers_the_way_out
0.00s setup    tests/test_deck.py::test_a_note_somebody_wrote_beats_the_plan_it_would_have_fallen_back_to
0.00s call     tests/test_render.py::test_every_page_carries_its_own_icon
0.00s call     tests/test_render.py::test_the_graph_repaints_rather_than_reloads_on_a_theme_change
0.00s call     tests/test_render.py::test_a_boundary_and_an_absent_value_are_both_visible
0.00s call     tests/test_render.py::test_every_status_fill_carries_ink_that_reads_on_it
0.00s call     tests/test_render.py::test_the_icon_needs_no_escaping_to_sit_in_an_attribute
0.00s call     tests/test_render.py::test_a_status_shape_is_bounded_against_the_page_it_sits_on
0.00s call     tests/test_render.py::test_the_font_licence_travels_with_the_font
0.00s call     tests/test_render.py::test_drawing_a_dependency_does_not_write_one
0.00s call     tests/test_exclusion.py::test_every_unplanned_kind_is_out_of_the_plan_and_in_the_records
0.00s call     tests/test_render.py::test_every_vendored_file_is_the_one_that_was_checksummed
0.00s call     tests/test_render.py::test_a_chip_pair_is_readable_in_both_themes
0.00s call     tests/test_deck.py::test_a_screenshot_travels_inside_the_deck
0.00s call     tests/test_render.py::test_the_fills_are_separated_by_lightness_and_not_only_by_hue
0.00s call     tests/test_render.py::test_the_legend_draws_a_cycle_boundary_the_way_the_plot_does
0.00s call     tests/test_render.py::test_the_three_theme_blocks_agree_about_every_colour
0.00s setup    tests/test_gitdoor.py::test_a_file_nobody_could_parse_costs_that_file_and_nothing_else[a
0.00s call     tests/test_render.py::test_the_cycle_band_is_one_token_and_it_can_be_seen
0.00s setup    tests/test_deck.py::test_a_slide_carries_the_notes_and_not_the_shaping_argument
0.00s setup    tests/test_deck.py::test_a_link_on_a_slide_is_drawn_against_paper_and_not_against_the_theme
0.00s setup    tests/test_deck.py::test_a_slide_is_headed_by_what_the_work_belongs_to_and_then_by_itself
0.00s setup    tests/test_deck.py::test_a_heading_inside_the_notes_is_not_drawn_at_the_size_of_the_slides_own
0.00s setup    tests/test_deck.py::test_a_pull_request_on_a_slide_is_a_link_to_the_pull_request
0.00s setup    tests/test_deck.py::test_paper_is_defined_where_every_reader_matches_it
0.00s call     tests/test_gitdoor.py::test_one_file_is_said_in_the_singular
0.00s setup    tests/test_gitdoor.py::test_the_rest_of_the_plan_is_still_on_the_page[a
0.00s setup    tests/test_gitdoor.py::test_several_bad_files_are_all_named_rather_than_the_first
0.00s setup    tests/test_deck.py::test_a_status_on_a_slide_is_a_word_and_not_the_ladder
0.00s setup    tests/test_deck.py::test_the_deck_is_not_in_the_nav_and_lights_the_cycle_it_is_of
0.00s setup    tests/test_deck.py::test_a_deck_prints_on_paper_whatever_theme_it_was_read_in
0.00s setup    tests/test_gitdoor.py::test_a_file_name_nobody_should_have_used_is_still_only_text
0.00s call     tests/test_render.py::test_a_batch_of_edges_is_saved_against_the_commit_before_it
0.00s setup    tests/test_deck.py::test_work_bet_into_another_cycle_is_on_another_deck
0.00s call     tests/test_render.py::test_the_libraries_are_inlined_rather_than_linked
0.00s setup    tests/test_gitdoor.py::test_a_file_nobody_could_parse_costs_that_file_and_nothing_else[an
0.00s setup    tests/test_deck.py::test_the_points_are_drawn_once_and_not_twice
0.00s setup    tests/test_gitdoor.py::test_the_json_route_says_which_file_and_why[a
0.00s setup    tests/test_deck.py::test_a_slide_shows_the_points_ticked_and_the_share_the_index_counted
0.00s setup    tests/test_gitdoor.py::test_a_file_below_the_directory_does_not_claim_the_id_above_it
0.00s setup    tests/test_deck.py::test_the_title_slide_names_the_cycle_its_review_and_what_it_was_for
0.00s call     tests/test_render.py::test_no_colour_is_defined_only_in_the_dark_block
0.00s setup    tests/test_gitdoor.py::test_a_reason_quoting_the_file_is_still_only_text
0.00s call     tests/test_parse.py::test_one_shaper_keeps_the_spelling_the_corpus_is_written_in
0.00s setup    tests/test_gitdoor.py::test_the_json_route_says_which_file_and_why[an
0.00s call     tests/test_render.py::test_a_status_carries_a_chip_palette_as_well_as_a_fill
0.00s call     tests/test_render.py::test_the_graph_names_every_colour_it_draws_with
0.00s call     tests/test_parse.py::test_parse_file_reads_a_seed_pitch
0.00s setup    tests/test_gitdoor.py::test_a_plan_everybody_can_read_says_nothing_about_unreadable_files
0.00s setup    tests/test_gitdoor.py::test_the_rest_of_the_plan_is_still_on_the_page[an
0.00s call     tests/test_render.py::test_the_page_names_its_fonts_once
0.00s setup    tests/test_gitdoor.py::test_saving_a_file_that_will_not_parse_is_a_refusal_naming_it
0.00s call     tests/test_identity.py::test_the_index_and_the_write_path_no_longer_disagree[today0]
0.00s call     tests/test_render.py::test_every_view_links_to_the_detail_page
0.00s call     tests/test_render.py::test_a_hatch_is_drawn_in_the_ink_of_the_bar_it_covers
0.00s call     tests/test_render.py::test_a_first_heading_that_is_not_the_title_is_left_alone
0.00s call     tests/test_render.py::test_the_detail_page_opens_as_an_index_not_a_wall_of_text
0.00s call     tests/test_render.py::test_a_record_that_is_not_there_is_an_empty_page_and_not_a_KeyError
0.00s call     tests/test_deck.py::test_paper_is_defined_where_every_reader_matches_it
0.00s call     tests/test_deck.py::test_the_deck_is_not_in_the_nav_and_lights_the_cycle_it_is_of
0.00s call     tests/test_identity.py::test_a_file_named_for_one_id_declaring_another_is_a_blocker
0.00s call     tests/test_deck.py::test_the_deck_reaches_no_network
0.00s call     tests/test_render.py::test_the_people_page_lists_everyone_the_plan_names
0.00s call     tests/test_identity.py::test_two_files_claiming_one_id_both_say_so
0.00s call     tests/test_parse.py::test_the_markdown_body_survives_parsing
0.00s call     tests/test_render.py::test_a_plan_that_names_nobody_says_so_instead_of_offering_a_clear
0.00s call     tests/test_render.py::test_one_capacity_formula_answers_both_cycle_pages
0.00s call     tests/test_render.py::test_a_cycle_bet_into_by_somebody_off_the_roster_is_not_counted_short
0.00s call     tests/test_identity.py::test_a_renamed_slug_is_still_the_same_record
0.00s call     tests/test_render.py::test_pr_references_become_links_that_resolve
0.00s call     tests/test_render.py::test_the_hatching_says_in_words_what_it_says_in_texture
0.00s call     tests/test_render.py::test_a_node_carries_everything_the_filters_ask_of_it
0.00s call     tests/test_deck.py::test_a_note_somebody_wrote_beats_the_plan_it_would_have_fallen_back_to
0.00s call     tests/test_render.py::test_a_pitch_with_no_appetite_yet_is_not_accused_of_exceeding_it
0.00s call     tests/test_deck.py::test_work_bet_into_another_cycle_is_on_another_deck
0.00s call     tests/test_deck.py::test_the_deck_is_a_title_slide_and_then_one_slide_per_piece_of_work
0.00s call     tests/test_render.py::test_the_detail_column_is_centred_and_the_facts_sit_beside_the_document
0.00s call     tests/test_parse.py::test_serialise_appends_a_field_the_file_never_had
0.00s setup    tests/test_edges.py::test_an_edge_edit_is_refused_where_it_would_delete_a_hand_written_line
0.00s call     tests/test_deck.py::test_a_slide_shows_the_points_ticked_and_the_share_the_index_counted
0.00s call     tests/test_render.py::test_the_people_page_is_one_table_with_one_header
0.00s call     tests/test_deck.py::test_the_points_are_drawn_once_and_not_twice
0.00s call     tests/test_deck.py::test_a_pull_request_on_a_slide_is_a_link_to_the_pull_request
0.00s call     tests/test_render.py::test_a_bar_says_its_status_without_using_colour
0.00s call     tests/test_identity.py::test_the_bare_id_with_no_slug_is_legal
0.00s call     tests/test_render.py::test_a_recorded_cycle_is_its_roster_and_nobody_else
0.00s call     tests/test_render.py::test_an_empty_field_is_a_dash_and_not_a_word
0.00s call     tests/test_deck.py::test_a_slide_is_headed_by_what_the_work_belongs_to_and_then_by_itself
0.00s call     tests/test_deck.py::test_a_slide_carries_the_notes_and_not_the_shaping_argument
0.00s call     tests/test_deck.py::test_the_title_slide_names_the_cycle_its_review_and_what_it_was_for
0.00s call     tests/test_render.py::test_the_timeline_lists_beside_the_chart_what_the_chart_draws
0.00s call     tests/test_harness.py::test_every_test_file_is_in_exactly_one_ci_shard
0.00s call     tests/test_render.py::test_a_span_less_record_is_listed_but_not_drawn
0.00s call     tests/test_render.py::test_only_an_asset_this_tool_stored_is_ever_drawn_as_an_image
0.00s setup    tests/test_deck.py::test_a_point_is_a_line_of_markdown_and_is_rendered_as_one
0.00s call     tests/test_parse.py::test_serialise_without_an_original_writes_the_whole_skeleton
0.00s call     tests/test_render.py::test_weeks_bet_into_another_cycle_are_counted_beside_this_one
0.00s teardown tests/test_deck.py::test_an_uploaded_screenshot_is_served_into_the_deck_as_bytes
0.00s call     tests/test_render.py::test_every_person_row_links_to_the_record
0.00s teardown tests/test_headers.py::test_every_response_says_what_it_may_do[/graph]
0.00s call     tests/test_render.py::test_one_quantity_is_called_appetite_wherever_it_is_read
0.00s call     tests/test_parse.py::test_serialise_never_writes_the_body_into_the_frontmatter
0.00s teardown tests/test_headers.py::test_every_response_says_what_it_may_do[/]
0.00s call     tests/test_render.py::test_the_solid_rule_is_the_end_of_build_and_the_dashed_one_the_end_of_the_window
0.00s call     tests/test_render.py::test_the_progress_column_counts_the_bodys_own_checklist
0.00s call     tests/test_render.py::test_the_table_carries_the_whole_plan_and_its_derived_dates
0.00s call     tests/test_render.py::test_the_parent_reads_as_a_title_and_edits_as_an_id
0.00s call     tests/test_render.py::test_a_cycle_gets_a_band_of_its_own_above_the_months
0.00s call     tests/test_render.py::test_a_rendered_file_dresses_its_cells_the_way_the_server_does
0.00s teardown tests/test_exclusion.py::test_a_row_filed_under_an_unplanned_record_refuses_the_move_and_says_where
0.00s call     tests/test_render.py::test_a_bar_carries_what_it_is_holding
0.00s call     tests/test_render.py::test_the_people_page_draws_the_control_bar_the_plan_draws
0.00s setup    tests/test_deck.py::test_a_review_date_nobody_chose_is_not_printed_as_though_somebody_had
0.00s setup    tests/test_deck.py::test_bytes_that_will_not_come_back_cost_the_picture_and_not_the_page
0.00s teardown tests/test_deck.py::test_a_deck_is_bounded_to_the_cycles_that_can_exist
0.00s setup    tests/test_deck.py::test_a_review_shows_what_was_finished_and_what_was_parked
0.00s setup    tests/test_deck.py::test_the_progress_section_is_what_a_review_slide_is_for
0.00s setup    tests/test_deck.py::test_a_cycle_holding_nothing_says_so_and_offers_the_way_out
0.00s setup    tests/test_deck.py::test_the_slides_of_one_bet_are_consecutive
0.00s call     tests/test_render.py::test_every_person_links_to_the_table_filtered_by_them
0.00s setup    tests/test_deck.py::test_a_screenshot_travels_inside_the_deck
0.00s call     tests/test_render.py::test_the_line_that_says_a_bet_does_not_fit_is_drawn_as_a_problem
0.00s call     tests/test_render.py::test_a_pitch_draws_its_tasks_as_the_progress_it_has_made
0.00s setup    tests/test_deck.py::test_the_media_type_of_an_asset_is_not_written_down_twice
0.00s setup    tests/test_deck.py::test_the_cycle_page_offers_the_deck_only_where_there_is_one
0.00s call     tests/test_render.py::test_the_detail_page_renders_the_shaping_doc_as_markdown
0.00s setup    tests/test_deck.py::test_the_deck_reaches_no_network
0.00s setup    tests/test_gitdoor.py::test_schedule_still_prints_a_schedule
0.00s call     tests/test_render.py::test_a_ready_pitch_missing_a_no_gos_section_is_told_so_on_its_own_page
0.00s setup    tests/test_gitdoor.py::test_check_names_every_file_it_could_not_read_and_fails
0.00s teardown tests/test_headers.py::test_every_response_says_what_it_may_do[/detail]
0.00s teardown tests/test_headers.py::test_every_response_says_what_it_may_do[/timeline]
0.00s setup    tests/test_gitdoor.py::test_the_banner_says_how_many_and_why_rather_than_only_that
0.00s teardown tests/test_exclusion.py::test_an_unplanned_record_is_on_its_own_page_and_the_landing_and_nowhere_else
0.00s teardown tests/test_headers.py::test_every_response_says_what_it_may_do[/cycles]
0.00s call     tests/test_parse.py::test_parse_tolerates_explicit_nulls_where_a_default_belongs
0.00s setup    tests/test_gitdoor.py::test_check_names_a_record_filed_one_directory_too_deep
0.00s call     tests/test_render.py::test_the_detail_page_links_dependencies_both_ways
0.00s call     tests/test_render.py::test_the_people_page_is_alphabetical_and_filterable
0.00s call     tests/test_exclusion.py::test_a_hand_built_index_smuggling_an_unplanned_kind_is_refused
0.00s setup    tests/test_gitdoor.py::test_render_writes_every_page_and_says_what_it_left_out
0.00s call     tests/test_identity.py::test_a_record_built_in_memory_has_no_filename_to_disagree_with
0.00s teardown tests/test_headers.py::test_every_response_says_what_it_may_do[/api/index.json]
0.00s setup    tests/test_gitdoor.py::test_check_still_reports_the_records_that_did_read
0.00s call     tests/test_render.py::test_the_timeline_names_every_colour_it_draws
0.00s call     tests/test_render.py::test_a_cycle_card_carries_the_meter_the_cycle_page_draws
0.00s call     tests/test_render.py::test_a_persons_rows_lead_with_what_they_own
0.00s setup    tests/test_gitdoor.py::test_every_page_the_renderer_can_draw_carries_the_banner
0.00s call     tests/test_render.py::test_a_remembered_width_of_nothing_is_thrown_away
0.00s call     tests/test_exclusion.py::test_build_index_keeps_an_unplanned_kind_out_of_the_plan
0.00s teardown tests/test_headers.py::test_the_page_carries_the_policy_the_server_sends
0.00s teardown tests/test_headers.py::test_every_response_says_what_it_may_do[/people]
0.00s call     tests/test_render.py::test_a_person_is_weighed_in_weeks_and_not_in_things
0.00s call     tests/test_render.py::test_the_shaping_doc_does_not_repeat_the_heading_it_is_under
0.00s teardown tests/test_headers.py::test_a_refusal_carries_them_too
0.00s teardown tests/test_exclusion.py::test_an_inbox_tag_is_offered_where_tags_are_edited_and_its_id_is_not
0.00s call     tests/test_render.py::test_a_bar_that_overruns_its_cycle_is_one_of_the_bars_on_the_corpus
0.00s call     tests/test_render.py::test_a_cycle_with_no_record_says_what_every_other_view_says_about_it
0.00s call     tests/test_exclusion.py::test_with_only_planned_kinds_the_records_are_exactly_the_plan
0.00s call     tests/test_render.py::test_choosing_a_repository_does_not_end_the_entry
0.00s call     tests/test_render.py::test_a_status_colour_is_a_token_and_not_baked_into_a_bar
0.00s call     tests/test_render.py::test_the_detail_page_wears_the_same_chips_every_other_view_wears
0.00s call     tests/test_render.py::test_the_people_page_says_when_its_filters_match_nothing
0.00s call     tests/test_render.py::test_the_timeline_filters_with_the_same_bar_the_table_does
0.00s setup    tests/test_identity.py::test_the_index_and_the_write_path_no_longer_disagree[today0]
0.00s call     tests/test_render.py::test_a_pitch_says_what_its_tasks_add_up_to_beside_what_it_was_bet_at
0.00s call     tests/test_render.py::test_the_detail_page_shows_the_derived_dates_and_the_explanation
0.00s call     tests/test_render.py::test_every_explanation_reaches_the_reader
0.00s call     tests/test_render.py::test_the_progress_column_appears_only_once_a_plan_has_a_checklist
0.00s setup    tests/test_exclusion.py::test_the_schedule_payload_never_names_an_unplanned_kind
0.00s setup    tests/test_headers.py::test_the_static_export_carries_it_because_it_has_no_server
0.00s setup    tests/test_render.py::test_the_static_export_carries_the_drawings_and_offers_no_picker
0.00s call     tests/test_render.py::test_a_person_over_their_availability_says_so_in_the_group_row
0.00s call     tests/test_render.py::test_the_timeline_draws_cycle_boundaries_and_today
0.00s setup    tests/test_parse.py::test_load_repo_of_an_empty_directory_is_empty
0.00s setup    tests/test_gitdoor.py::test_the_banner_does_not_change_the_shape_of_a_page_it_names
0.00s call     tests/test_auth.py::test_a_grant_that_does_not_include_read_org_is_refused_here
0.00s setup    tests/test_deck.py::test_the_plan_a_slide_falls_back_to_is_cut_to_the_sheet_and_says_so
0.00s call     tests/test_render.py::test_the_preview_shows_the_same_two_syntaxes_the_page_will
0.00s call     tests/test_render.py::test_a_new_cycle_still_has_a_roster_to_set_availability_against
0.00s call     tests/test_auth.py::test_any_role_counts_as_membership
0.00s setup    tests/test_identity.py::test_a_save_refuses_when_the_file_does_not_declare_the_id_it_is_named_for
0.00s call     tests/test_render.py::test_filter_state_lives_in_query_parameters
0.00s setup    tests/test_identity.py::test_the_bare_id_with_no_slug_is_legal
0.00s call     tests/test_render.py::test_the_page_draws_both_rules
0.00s setup    tests/test_identity.py::test_a_renamed_slug_is_still_the_same_record
0.00s call     tests/test_parse.py::test_parse_falls_back_to_the_id_prefix_when_kind_is_missing
0.00s setup    tests/test_identity.py::test_a_file_named_for_one_id_declaring_another_is_a_blocker
0.00s call     tests/test_render.py::test_the_theme_is_chosen_before_the_first_paint
0.00s call     tests/test_render.py::test_the_dash_that_means_no_value_is_readable
0.00s setup    tests/test_identity.py::test_two_files_claiming_one_id_both_say_so
0.00s call     tests/test_parse.py::test_parse_tolerates_a_file_that_states_almost_nothing
0.00s call     tests/test_render.py::test_a_people_row_wears_the_chips_the_table_wears
0.00s call     tests/test_parse.py::test_parse_refuses_a_file_it_cannot_classify
0.00s call     tests/test_render.py::test_a_cycle_with_a_record_bets_its_weeks_against_the_roster
0.00s call     tests/test_render.py::test_a_person_row_says_which_hat_they_are_wearing
0.00s call     tests/test_render.py::test_the_cycles_index_lists_every_cycle_the_plan_names
0.00s call     tests/test_render.py::test_a_pr_reference_completes_in_two_halves
0.00s setup    tests/test_render.py::test_an_empty_timeline_says_which_kind_of_empty_it_is
0.00s call     tests/test_render.py::test_the_table_shows_a_persistent_blocker_count
0.00s call     tests/test_auth.py::test_the_token_that_proved_the_identity_is_not_in_the_session
0.00s setup    tests/test_render.py::test_the_index_is_grouped_in_the_order_work_moves
0.00s call     tests/test_render.py::test_pull_requests_are_offered_newest_first
0.00s teardown tests/test_harness.py::test_every_test_file_is_in_exactly_one_ci_shard
0.00s setup    tests/test_render.py::test_a_plan_that_names_nobody_says_so_instead_of_offering_a_clear
0.00s call     tests/test_auth.py::test_a_session_older_than_its_max_age_is_refused
0.00s call     tests/test_render.py::test_the_suggestion_list_offers_names_and_not_sentences
0.00s setup    tests/test_render.py::test_a_child_stays_indented_when_its_parent_is_not_drawn
0.00s call     tests/test_render.py::test_the_page_is_allowed_to_talk_to_its_own_server
0.00s setup    tests/test_render.py::test_a_bar_is_exactly_as_wide_as_the_span_the_scheduler_computed
0.00s setup    tests/test_render.py::test_the_timeline_orders_its_rows_by_containment
0.00s setup    tests/test_render.py::test_a_same_day_span_is_still_wide_enough_to_hit
0.00s call     tests/test_harness.py::test_the_package_and_the_project_agree_about_the_version
0.00s call     tests/test_render.py::test_a_cycle_number_is_offered_the_way_every_other_reference_is
0.00s call     tests/test_auth.py::test_the_code_is_exchanged_for_a_token_at_githubs_token_endpoint
0.00s call     tests/test_auth.py::test_identity_is_revalidated_with_the_freshly_exchanged_token
0.00s call     tests/test_parse.py::test_load_repo_of_an_empty_directory_is_empty
0.00s call     tests/test_render.py::test_load_is_charged_where_the_assignees_are
0.00s call     tests/test_render.py::test_a_templates_guidance_never_reaches_the_page
0.00s call     tests/test_auth.py::test_a_concealed_member_is_still_a_member
0.00s call     tests/test_auth.py::test_an_oauth_failure_raises_even_though_github_answers_200[bad_verification_code-The
0.00s call     tests/test_auth.py::test_a_broken_token_or_an_unapproved_app_is_never_a_yes[403]
0.00s call     tests/test_auth.py::test_the_authorize_url_asks_for_read_org_and_nothing_else
0.00s call     tests/test_auth.py::test_an_oauth_failure_raises_even_though_github_answers_200[incorrect_client_credentials-The
0.00s call     tests/test_auth.py::test_a_form_encoded_body_is_an_error_and_never_mistaken_for_a_token
0.00s call     tests/test_render.py::test_the_vendoring_note_covers_every_file_it_is_about
0.00s call     tests/test_auth.py::test_an_oauth_failure_raises_even_though_github_answers_200[redirect_uri_mismatch-The
0.00s call     tests/test_auth.py::test_a_broken_token_or_an_unapproved_app_is_never_a_yes[401]
0.00s call     tests/test_auth.py::test_a_person_who_is_not_in_the_org_is_identified_but_cannot_write
0.00s call     tests/test_auth.py::test_an_invitation_that_was_never_accepted_is_not_membership
0.00s call     tests/test_render.py::test_a_size_is_split_evenly_between_the_people_on_it
0.00s call     tests/test_harness.py::test_seed_corpus_has_twenty_six_plan_record_files
0.00s call     tests/test_auth.py::test_the_member_flag_travels_inside_the_signature
0.00s call     tests/test_auth.py::test_editing_member_true_into_a_cookie_does_not_survive_the_signature
0.00s call     tests/test_auth.py::test_a_session_round_trips_through_the_cookie
0.00s call     tests/test_auth.py::test_a_cookie_we_did_not_sign_is_no_session_and_is_not_an_exception[not-a-cookie]
0.00s setup    tests/test_auth.py::test_an_oauth_failure_raises_even_though_github_answers_200[redirect_uri_mismatch-The
0.00s setup    tests/test_auth.py::test_an_oauth_failure_raises_even_though_github_answers_200[bad_verification_code-The
0.00s teardown tests/test_render.py::test_a_view_leaves_the_page_you_were_standing_on
0.00s call     tests/test_auth.py::test_a_cookie_signed_with_another_secret_is_rejected
0.00s call     tests/test_render.py::test_a_nav_item_that_is_not_a_nav_item_is_refused
0.00s call     tests/test_auth.py::test_a_cookie_we_did_not_sign_is_no_session_and_is_not_an_exception[signature]
0.00s call     tests/test_auth.py::test_a_cookie_we_did_not_sign_is_no_session_and_is_not_an_exception[payload]
0.00s setup    tests/test_auth.py::test_an_oauth_failure_raises_even_though_github_answers_200[incorrect_client_credentials-The
0.00s teardown tests/test_render.py::test_the_graph_names_every_colour_it_draws_with
0.00s teardown tests/test_render.py::test_every_status_a_node_can_hold_reaches_cytoscape_as_a_colour
0.00s teardown tests/test_render.py::test_the_heading_costs_the_view_no_row[graph]
0.00s teardown tests/test_gitdoor.py::test_render_writes_every_page_and_says_what_it_left_out
0.00s setup    tests/test_parse.py::test_every_seed_file_round_trips_byte_identically[pitch-0f0002]
0.00s setup    tests/test_parse.py::test_parse_file_reads_a_seed_pitch
0.00s teardown tests/test_deck.py::test_every_deck_this_suite_can_reach_prints_one_slide_to_a_page
0.00s setup    tests/test_parse.py::test_every_seed_file_round_trips_byte_identically[task-0c1002]
0.00s call     tests/test_render.py::test_a_pitch_that_keeps_a_checklist_as_well_as_tasks_is_told_which_one_counts
0.00s teardown tests/test_gitdoor.py::test_a_file_nobody_could_parse_costs_that_file_and_nothing_else[a
0.00s call     tests/test_auth.py::test_a_cookie_we_did_not_sign_is_no_session_and_is_not_an_exception[junk]
0.00s teardown tests/test_render.py::test_the_current_nav_item_is_drawn_and_not_merely_resolved
0.00s setup    tests/test_parse.py::test_every_seed_file_round_trips_byte_identically[pitch-0d0001]
0.00s teardown tests/test_render.py::test_the_box_each_view_fills_stops_where_the_window_does[timeline]
0.00s teardown tests/test_render.py::test_pull_requests_are_offered_newest_first
0.00s setup    tests/test_parse.py::test_every_seed_file_round_trips_byte_identically[pitch-0a0001]
0.00s setup    tests/test_parse.py::test_every_seed_file_round_trips_byte_identically[proj-000002]
0.00s teardown tests/test_render.py::test_every_page_carries_the_toggle
0.00s teardown tests/test_render.py::test_a_month_names_its_year_only_when_the_year_changes
0.00s setup    tests/test_parse.py::test_every_seed_file_round_trips_byte_identically[task-0d1001]
0.00s setup    tests/test_auth.py::test_a_cookie_we_did_not_sign_is_no_session_and_is_not_an_exception[junk]
0.00s setup    tests/test_parse.py::test_every_seed_file_round_trips_byte_identically[task-0a1002]
0.00s setup    tests/test_parse.py::test_every_seed_file_round_trips_byte_identically[task-0c1001]
0.00s call     tests/test_parse.py::test_size_weeks_defaults_when_no_size_is_stated
0.00s teardown tests/test_gitdoor.py::test_the_json_route_says_which_file_and_why[a
0.00s teardown tests/test_deck.py::test_a_note_somebody_wrote_beats_the_plan_it_would_have_fallen_back_to
0.00s teardown tests/test_render.py::test_render_static_writes_every_page_and_says_which
0.00s teardown tests/test_render.py::test_no_page_uses_one_id_for_more_than_one_element
0.00s teardown tests/test_edges.py::test_reset_and_leaving_the_mode_both_put_a_marked_edge_back
0.00s call     tests/test_parse.py::test_ancestors_are_nearest_first
0.00s teardown tests/test_render.py::test_edges_turn_at_right_angles_and_are_drawn_beneath_the_boxes
0.00s teardown tests/test_edges.py::test_an_edge_edit_is_refused_where_it_would_delete_a_hand_written_line
0.00s teardown tests/test_gitdoor.py::test_a_file_nobody_could_parse_costs_that_file_and_nothing_else[an
0.00s setup    tests/test_auth.py::test_a_cookie_we_did_not_sign_is_no_session_and_is_not_an_exception[not-a-cookie]
0.00s setup    tests/test_parse.py::test_every_seed_file_round_trips_byte_identically[task-0f1002]
0.00s setup    tests/test_parse.py::test_every_seed_file_round_trips_byte_identically[pitch-0b0001]
0.00s teardown tests/test_render.py::test_the_app_moves_in_two_places
0.00s teardown tests/test_render.py::test_a_browser_that_refuses_its_stores_still_draws_the_page
0.00s setup    tests/test_parse.py::test_every_seed_file_round_trips_byte_identically[pitch-0c0001]
0.00s teardown tests/test_render.py::test_the_motion_floor_is_the_shell_s_and_not_one_page_s
0.00s setup    tests/test_parse.py::test_every_seed_file_round_trips_byte_identically[task-0e1001]
0.00s setup    tests/test_parse.py::test_every_seed_file_round_trips_byte_identically[task-0e1002]
0.00s teardown tests/test_render.py::test_no_page_reaches_the_network
0.00s setup    tests/test_parse.py::test_every_seed_file_round_trips_byte_identically[task-0f1004]
0.00s setup    tests/test_parse.py::test_every_seed_file_round_trips_byte_identically[task-0f1001]
0.00s call     tests/test_deck.py::test_the_sections_a_slide_leaves_out_are_read_off_the_templates
0.00s setup    tests/test_parse.py::test_every_seed_file_round_trips_byte_identically[task-0a1001]
0.00s teardown tests/test_render.py::test_the_heading_costs_the_view_no_row[table]
0.00s teardown tests/test_render.py::test_an_address_smuggled_into_the_stamp_is_not_followed
0.00s setup    tests/test_parse.py::test_every_seed_file_round_trips_byte_identically[task-0b1002]
0.00s setup    tests/test_render.py::test_a_plan_where_nobody_has_picked_one_draws_the_page_as_it_was
0.00s setup    tests/test_parse.py::test_every_seed_file_round_trips_byte_identically[pitch-0f0003]
0.00s setup    tests/test_render.py::test_an_icon_nothing_draws_costs_the_drawing_and_nothing_else
0.00s call     tests/test_auth.py::test_the_state_is_carried_verbatim_so_the_caller_can_bind_it_to_a_cookie
0.00s teardown tests/test_render.py::test_a_sentence_about_the_view_never_costs_the_view_a_row[timeline]
0.00s teardown tests/test_render.py::test_the_box_each_view_fills_stops_where_the_window_does[table]
0.00s teardown tests/test_render.py::test_a_record_page_goes_back_to_the_view_it_was_opened_from
0.00s setup    tests/test_parse.py::test_every_seed_file_round_trips_byte_identically[pitch-0e0001]
0.00s call     tests/test_auth.py::test_a_cookie_we_did_not_sign_is_no_session_and_is_not_an_exception[empty]
0.00s setup    tests/test_parse.py::test_every_seed_file_round_trips_byte_identically[pitch-0f0001]
0.00s teardown tests/test_render.py::test_the_heading_costs_the_view_no_row[timeline]
0.00s setup    tests/test_parse.py::test_every_seed_file_round_trips_byte_identically[proj-000001]
0.00s teardown tests/test_render.py::test_a_page_reached_from_a_view_leaves_the_stamp_where_it_found_it
0.00s teardown tests/test_render.py::test_the_box_each_view_fills_stops_where_the_window_does[graph]
0.00s setup    tests/test_parse.py::test_every_seed_file_round_trips_byte_identically[task-0d1002]
0.00s setup    tests/test_parse.py::test_every_seed_file_round_trips_byte_identically[task-0d1003]
0.00s setup    tests/test_parse.py::test_every_seed_file_round_trips_byte_identically[task-0f1005]
0.00s setup    tests/test_auth.py::test_a_broken_token_or_an_unapproved_app_is_never_a_yes[401]
0.00s teardown tests/test_render.py::test_a_sentence_about_the_view_never_costs_the_view_a_row[table]
0.00s teardown tests/test_render.py::test_the_static_export_carries_the_drawings_and_offers_no_picker
0.00s setup    tests/test_parse.py::test_every_seed_file_round_trips_byte_identically[task-0b1001]
0.00s teardown tests/test_render.py::test_a_sentence_about_the_view_never_costs_the_view_a_row[graph]
0.00s setup    tests/test_render.py::test_a_persons_icon_is_drawn_in_the_page_and_not_fetched
0.00s teardown tests/test_render.py::test_the_graph_commits_in_the_same_place_every_other_page_does
0.00s setup    tests/test_parse.py::test_every_seed_file_round_trips_byte_identically[task-0f1003]
0.00s teardown tests/test_render.py::test_the_timeline_filters_with_the_same_bar_the_table_does
0.00s teardown tests/test_render.py::test_a_batch_of_edges_is_saved_against_the_commit_before_it
0.00s teardown tests/test_edges.py::test_an_edge_drawn_by_mistake_is_simply_undrawn
0.00s setup    tests/test_auth.py::test_a_broken_token_or_an_unapproved_app_is_never_a_yes[403]
0.00s teardown tests/test_render.py::test_a_window_that_changes_under_an_open_page_is_measured_again
0.00s teardown tests/test_render.py::test_the_nav_says_which_page_you_are_on
0.00s teardown tests/test_render.py::test_every_page_names_itself_and_holds_exactly_one_main
0.00s call     tests/test_auth.py::test_the_redirect_uri_is_percent_encoded_into_the_query
0.00s setup    tests/test_auth.py::test_a_cookie_we_did_not_sign_is_no_session_and_is_not_an_exception[payload]
0.00s call     tests/test_deck.py::test_the_points_on_a_slide_are_the_ones_the_meter_counted
0.00s teardown tests/test_deck.py::test_every_slide_of_the_frozen_corpus_is_worth_the_sheet_it_prints_on
0.00s teardown tests/test_render.py::test_every_record_in_the_export_carries_the_link_back
0.00s setup    tests/test_auth.py::test_a_cookie_we_did_not_sign_is_no_session_and_is_not_an_exception[signature]
0.00s call     tests/test_exclusion.py::test_no_plan_control_offers_an_unplanned_kind
0.00s call     tests/test_render.py::test_a_status_nobody_uses_gets_no_heading
0.00s teardown tests/test_gitdoor.py::test_the_rest_of_the_plan_is_still_on_the_page[a
0.00s call     tests/test_parse.py::test_ancestors_stops_on_a_parent_cycle
0.00s teardown tests/test_render.py::test_the_furniture_every_page_shares_is_written_once
0.00s teardown tests/test_render.py::test_a_reader_who_asked_for_less_motion_gets_none_of_the_motion_there_is
0.00s teardown tests/test_render.py::test_every_icon_is_a_row_in_the_picker_with_its_name_beside_it
0.00s teardown tests/test_render.py::test_the_legend_is_two_rows_and_the_keys_line_up
0.00s teardown tests/test_render.py::test_a_record_page_opened_cold_still_goes_to_the_records_list
0.00s teardown tests/test_render.py::test_the_page_draws_both_rules
0.00s teardown tests/test_exclusion.py::test_the_schedule_payload_never_names_an_unplanned_kind
0.00s teardown tests/test_render.py::test_no_page_asks_the_network_for_a_font
0.00s teardown tests/test_render.py::test_every_library_is_inlined_exactly_once_and_no_marker_survives
0.00s teardown tests/test_edges.py::test_an_existing_dependency_can_be_taken_off_the_diagram
0.00s teardown tests/test_deck.py::test_the_plan_a_slide_falls_back_to_is_cut_to_the_sheet_and_says_so
0.00s teardown tests/test_render.py::test_one_record_on_its_own_page_is_the_row_the_export_would_have_built
0.00s teardown tests/test_render.py::test_the_index_is_grouped_in_the_order_work_moves
0.00s setup    tests/test_render.py::test_the_timeline_survives_a_date_at_the_end_of_the_calendar
0.00s teardown tests/test_render.py::test_a_pitch_draws_its_tasks_as_the_progress_it_has_made
0.00s teardown tests/test_render.py::test_one_persons_rows_do_not_run_into_the_next
0.00s setup    tests/test_render.py::test_a_bar_at_the_end_of_time_does_not_make_a_page_nobody_can_open
0.00s teardown tests/test_gitdoor.py::test_check_names_every_file_it_could_not_read_and_fails
0.00s teardown tests/test_gitdoor.py::test_a_file_name_nobody_should_have_used_is_still_only_text
0.00s teardown tests/test_render.py::test_every_view_links_to_the_detail_page
0.00s teardown tests/test_render.py::test_the_timeline_hatches_what_it_is_guessing
0.00s setup    tests/test_parse.py::test_a_template_quoted_inside_a_fence_is_not_this_records_own_plan
0.00s teardown tests/test_render.py::test_a_persons_icon_is_drawn_in_the_page_and_not_fetched
0.00s teardown tests/test_render.py::test_a_remembered_width_of_nothing_is_thrown_away
0.00s teardown tests/test_render.py::test_a_pr_reference_completes_in_two_halves
0.00s teardown tests/test_headers.py::test_the_static_export_carries_it_because_it_has_no_server
0.00s teardown tests/test_render.py::test_an_empty_timeline_says_which_kind_of_empty_it_is
0.00s teardown tests/test_render.py::test_the_graph_says_which_of_the_three_emptinesses_it_is
0.00s setup    tests/test_auth.py::test_a_cookie_we_did_not_sign_is_no_session_and_is_not_an_exception[empty]
0.00s teardown tests/test_render.py::test_an_icon_nothing_draws_costs_the_drawing_and_nothing_else
0.00s teardown tests/test_render.py::test_a_ready_pitch_missing_a_no_gos_section_is_told_so_on_its_own_page
0.00s teardown tests/test_render.py::test_drawing_a_dependency_does_not_write_one
0.00s teardown tests/test_render.py::test_a_persons_rows_lead_with_what_they_own
0.00s teardown tests/test_render.py::test_a_record_that_is_not_there_is_an_empty_page_and_not_a_KeyError
0.00s setup    tests/test_exclusion.py::test_build_index_keeps_an_unplanned_kind_out_of_the_plan
0.00s teardown tests/test_render.py::test_every_page_carries_its_own_icon
0.00s teardown tests/test_gitdoor.py::test_schedule_still_prints_a_schedule
0.00s call     tests/test_render.py::test_an_unknown_status_still_reaches_the_index
0.00s teardown tests/test_render.py::test_a_hatch_is_drawn_in_the_ink_of_the_bar_it_covers
0.00s setup    tests/test_render.py::test_no_two_icons_are_the_same_mark
0.00s teardown tests/test_render.py::test_opening_a_node_takes_two_clicks
0.00s teardown tests/test_render.py::test_every_person_links_to_the_table_filtered_by_them
0.00s teardown tests/test_gitdoor.py::test_every_page_the_renderer_can_draw_carries_the_banner
0.00s teardown tests/test_render.py::test_a_pitch_says_what_its_tasks_add_up_to_beside_what_it_was_bet_at
0.00s setup    tests/test_parse.py::test_parse_dispatches_to_the_subclass_named_by_kind
0.00s call     tests/test_parse.py::test_size_weeks_reads_appetite_on_a_pitch_and_effort_on_a_task
0.00s teardown tests/test_render.py::test_a_heading_that_repeats_the_nav_is_announced_and_not_drawn
0.00s teardown tests/test_render.py::test_the_libraries_are_inlined_rather_than_linked
0.00s teardown tests/test_render.py::test_a_rendered_plan_offers_no_dead_control
0.00s teardown tests/test_render.py::test_the_page_is_allowed_to_talk_to_its_own_server
0.00s teardown tests/test_gitdoor.py::test_check_names_a_record_filed_one_directory_too_deep
0.00s call     tests/test_render.py::test_every_status_owns_a_mark_that_is_not_a_colour
0.00s teardown tests/test_render.py::test_a_plan_where_nobody_has_picked_one_draws_the_page_as_it_was
0.00s teardown tests/test_parse.py::test_a_template_quoted_inside_a_fence_is_not_this_records_own_plan
0.00s teardown tests/test_deck.py::test_a_deck_prints_on_paper_whatever_theme_it_was_read_in
0.00s teardown tests/test_render.py::test_every_filter_offers_a_way_back_to_everything
0.00s teardown tests/test_render.py::test_the_icon_needs_no_escaping_to_sit_in_an_attribute
0.00s teardown tests/test_render.py::test_a_node_takes_its_ink_from_the_fill_it_sits_on
0.00s teardown tests/test_render.py::test_a_group_name_is_readable_inside_its_own_box
0.00s teardown tests/test_render.py::test_the_graph_filters_the_plan_the_way_the_table_does
0.00s teardown tests/test_parse.py::test_load_repo_loads_the_whole_seed_corpus
0.00s teardown tests/test_render.py::test_every_person_row_links_to_the_record
0.00s teardown tests/test_render.py::test_the_labels_and_the_bars_are_laid_out_on_one_row_height
0.00s teardown tests/test_render.py::test_the_three_theme_blocks_agree_about_every_colour
0.00s teardown tests/test_render.py::test_the_ink_on_a_shape_stays_a_per_status_token
0.00s teardown tests/test_render.py::test_the_export_draws_no_sign_in
0.00s teardown tests/test_render.py::test_every_page_carries_a_skip_link_and_a_live_region
0.00s teardown tests/test_gitdoor.py::test_the_rest_of_the_plan_is_still_on_the_page[an
0.00s teardown tests/test_deck.py::test_a_screenshot_travels_inside_the_deck
0.00s teardown tests/test_gitdoor.py::test_a_plan_everybody_can_read_says_nothing_about_unreadable_files
0.00s teardown tests/test_render.py::test_a_dependency_arrow_can_be_seen_on_the_canvas_it_is_drawn_on
0.00s teardown tests/test_render.py::test_the_graph_is_a_compound_dag_coloured_by_status
0.00s teardown tests/test_render.py::test_the_typeface_travels_with_the_page
0.00s teardown tests/test_gitdoor.py::test_check_still_reports_the_records_that_did_read
0.00s teardown tests/test_deck.py::test_a_link_on_a_slide_is_drawn_against_paper_and_not_against_the_theme
0.00s teardown tests/test_render.py::test_the_hatching_says_in_words_what_it_says_in_texture
0.00s teardown tests/test_render.py::test_a_rendered_block_carries_the_source_line_it_came_from
0.00s teardown tests/test_render.py::test_hiding_a_node_never_leaves_an_edge_pointing_at_nothing
0.00s teardown tests/test_render.py::test_every_page_echoes_the_iso_value_of_a_date_box
0.00s teardown tests/test_render.py::test_the_records_list_keeps_the_name_the_link_already_had
0.00s call     tests/test_render.py::test_no_icon_is_a_character_the_reader_has_to_own_a_font_for
0.00s setup    tests/test_parse.py::test_the_markdown_body_survives_parsing
0.00s teardown tests/test_render.py::test_the_font_licence_travels_with_the_font
0.00s teardown tests/test_identity.py::test_the_seed_corpus_reports_no_identity_problem
0.00s teardown tests/test_render.py::test_a_templates_guidance_never_reaches_the_page
0.00s teardown tests/test_render.py::test_the_detail_column_is_centred_and_the_facts_sit_beside_the_document
0.00s teardown tests/test_render.py::test_every_page_can_draw_a_problem_and_a_focus_ring
0.00s teardown tests/test_render.py::test_the_table_carries_the_whole_plan_and_its_derived_dates
0.00s teardown tests/test_render.py::test_filter_state_lives_in_query_parameters
0.00s setup    tests/test_parse.py::test_load_repo_loads_the_whole_seed_corpus
0.00s teardown tests/test_render.py::test_a_node_says_its_status_without_using_colour
0.00s teardown tests/test_render.py::test_the_progress_column_appears_only_once_a_plan_has_a_checklist
0.00s teardown tests/test_render.py::test_one_capacity_formula_answers_both_cycle_pages
0.00s teardown tests/test_render.py::test_the_timeline_lists_beside_the_chart_what_the_chart_draws
0.00s call     tests/test_parse.py::test_size_weeks_keeps_a_stated_zero
0.00s teardown tests/test_render.py::test_a_window_typed_into_the_url_cannot_run_off_the_calendar
0.00s teardown tests/test_render.py::test_the_people_page_lists_everyone_the_plan_names
0.00s teardown tests/test_render.py::test_the_graph_carries_one_hint_and_no_mode_paragraph
0.00s teardown tests/test_identity.py::test_a_file_named_for_one_id_declaring_another_is_a_blocker
0.00s teardown tests/test_render.py::test_no_fact_is_formatted_for_the_detail_page_twice
0.00s teardown tests/test_render.py::test_a_chip_pair_is_readable_in_both_themes
0.00s teardown tests/test_render.py::test_the_solid_rule_is_the_end_of_build_and_the_dashed_one_the_end_of_the_window
0.00s teardown tests/test_render.py::test_a_reader_who_may_not_write_is_sent_no_editor_library
0.00s teardown tests/test_render.py::test_a_cycle_bet_into_by_somebody_off_the_roster_is_not_counted_short
0.00s setup    tests/test_parse.py::test_ancestors_of_a_seed_task_reach_its_pitch
0.00s teardown tests/test_exclusion.py::test_with_only_planned_kinds_the_records_are_exactly_the_plan
0.00s teardown tests/test_render.py::test_the_detail_page_shows_the_derived_dates_and_the_explanation
0.00s setup    tests/test_harness.py::test_seed_corpus_has_twenty_six_plan_record_files
0.00s teardown tests/test_deck.py::test_a_heading_inside_the_notes_is_not_drawn_at_the_size_of_the_slides_own
0.00s teardown tests/test_render.py::test_a_rendered_file_dresses_its_cells_the_way_the_server_does
0.00s teardown tests/test_render.py::test_a_detail_page_exists_for_every_record
0.00s teardown tests/test_render.py::test_the_people_page_is_one_table_with_one_header
0.00s teardown tests/test_render.py::test_no_colour_is_defined_only_in_the_dark_block
0.00s teardown tests/test_auth.py::test_a_cookie_we_did_not_sign_is_no_session_and_is_not_an_exception[not-a-cookie]
0.00s teardown tests/test_render.py::test_the_editor_licence_travels_with_the_editor
0.00s teardown tests/test_render.py::test_a_recorded_cycle_is_its_roster_and_nobody_else
0.00s teardown tests/test_render.py::test_a_cycle_gets_a_band_of_its_own_above_the_months
0.00s teardown tests/test_render.py::test_the_date_boxes_hold_the_window_on_screen
0.00s teardown tests/test_render.py::test_the_detail_page_names_each_document_it_holds
0.00s teardown tests/test_render.py::test_a_cycle_card_carries_the_meter_the_cycle_page_draws
0.00s teardown tests/test_render.py::test_a_boundary_and_an_absent_value_are_both_visible
0.00s teardown tests/test_render.py::test_the_people_page_is_alphabetical_and_filterable
0.00s teardown tests/test_gitdoor.py::test_the_banner_does_not_change_the_shape_of_a_page_it_names
0.00s teardown tests/test_render.py::test_a_first_heading_that_is_not_the_title_is_left_alone
0.00s teardown tests/test_render.py::test_the_timeline_names_every_colour_it_draws
0.00s teardown tests/test_render.py::test_one_quantity_is_called_appetite_wherever_it_is_read
0.00s teardown tests/test_render.py::test_a_bar_says_its_status_without_using_colour
0.00s teardown tests/test_deck.py::test_a_cycle_holding_nothing_says_so_and_offers_the_way_out
0.00s teardown tests/test_render.py::test_a_people_row_wears_the_chips_the_table_wears
0.00s teardown tests/test_render.py::test_the_table_shows_a_persistent_blocker_count
0.00s setup    tests/test_render.py::test_every_icon_is_a_row_in_the_picker_with_its_name_beside_it
0.00s setup    tests/test_exclusion.py::test_a_hand_built_index_smuggling_an_unplanned_kind_is_refused
0.00s teardown tests/test_parse.py::test_ancestors_of_a_seed_task_reach_its_pitch
0.00s teardown tests/test_render.py::test_a_status_colour_is_a_token_and_not_baked_into_a_bar
0.00s teardown tests/test_render.py::test_a_person_is_weighed_in_weeks_and_not_in_things
0.00s teardown tests/test_render.py::test_an_editable_page_reaches_the_network_no_more_than_a_read_only_one
0.00s teardown tests/test_gitdoor.py::test_the_json_route_says_which_file_and_why[an
0.00s teardown tests/test_render.py::test_a_status_carries_a_chip_palette_as_well_as_a_fill
0.00s teardown tests/test_render.py::test_the_graph_repaints_rather_than_reloads_on_a_theme_change
0.00s teardown tests/test_render.py::test_the_fills_are_separated_by_lightness_and_not_only_by_hue
0.00s teardown tests/test_render.py::test_the_cycle_band_is_one_token_and_it_can_be_seen
0.00s teardown tests/test_render.py::test_a_status_shape_is_bounded_against_the_page_it_sits_on
0.00s teardown tests/test_render.py::test_the_legend_draws_a_cycle_boundary_the_way_the_plot_does
0.00s teardown tests/test_render.py::test_every_explanation_reaches_the_reader
0.00s teardown tests/test_render.py::test_a_bar_at_the_end_of_time_does_not_make_a_page_nobody_can_open
0.00s teardown tests/test_parse.py::test_every_seed_file_round_trips_byte_identically[proj-000002]
0.00s teardown tests/test_render.py::test_the_theme_is_chosen_before_the_first_paint
0.00s teardown tests/test_render.py::test_a_bar_is_exactly_as_wide_as_the_span_the_scheduler_computed
0.00s teardown tests/test_render.py::test_the_people_page_draws_the_control_bar_the_plan_draws
0.00s setup    tests/test_auth.py::test_a_session_older_than_its_max_age_is_refused
0.00s teardown tests/test_render.py::test_the_page_names_its_fonts_once
0.00s teardown tests/test_deck.py::test_a_slide_carries_the_notes_and_not_the_shaping_argument
0.00s teardown tests/test_render.py::test_a_span_less_record_is_listed_but_not_drawn
0.00s teardown tests/test_render.py::test_the_people_page_says_when_its_filters_match_nothing
0.00s teardown tests/test_render.py::test_a_cycle_with_a_record_bets_its_weeks_against_the_roster
0.00s teardown tests/test_render.py::test_the_timeline_survives_a_date_at_the_end_of_the_calendar
0.00s teardown tests/test_render.py::test_a_bar_carries_what_it_is_holding
0.00s teardown tests/test_render.py::test_the_shaping_doc_does_not_repeat_the_heading_it_is_under
0.00s teardown tests/test_render.py::test_the_detail_page_opens_as_an_index_not_a_wall_of_text
0.00s teardown tests/test_render.py::test_the_line_that_says_a_bet_does_not_fit_is_drawn_as_a_problem
0.00s teardown tests/test_render.py::test_the_detail_page_wears_the_same_chips_every_other_view_wears
0.00s teardown tests/test_render.py::test_the_cycles_index_lists_every_cycle_the_plan_names
0.00s teardown tests/test_render.py::test_the_timeline_draws_cycle_boundaries_and_today
0.00s teardown tests/test_render.py::test_a_bar_that_overruns_its_cycle_is_one_of_the_bars_on_the_corpus
0.00s teardown tests/test_render.py::test_a_struck_out_line_and_a_task_list_render_as_what_they_are
0.00s teardown tests/test_render.py::test_the_detail_page_links_dependencies_both_ways
0.00s teardown tests/test_render.py::test_the_facade_reaches_every_name_anything_outside_the_package_asks_for
0.00s teardown tests/test_render.py::test_pr_references_become_links_that_resolve
0.00s teardown tests/test_deck.py::test_paper_is_defined_where_every_reader_matches_it
0.00s teardown tests/test_render.py::test_a_child_stays_indented_when_its_parent_is_not_drawn
0.00s teardown tests/test_identity.py::test_the_index_and_the_write_path_no_longer_disagree[today0]
0.00s teardown tests/test_render.py::test_a_same_day_span_is_still_wide_enough_to_hit
0.00s teardown tests/test_gitdoor.py::test_a_reason_quoting_the_file_is_still_only_text
0.00s teardown tests/test_render.py::test_a_person_row_says_which_hat_they_are_wearing
0.00s teardown tests/test_render.py::test_the_dash_that_means_no_value_is_readable
0.00s teardown tests/test_render.py::test_a_window_that_excludes_today_draws_no_today_line
0.00s teardown tests/test_deck.py::test_the_points_are_drawn_once_and_not_twice
0.00s teardown tests/test_exclusion.py::test_a_hand_built_index_smuggling_an_unplanned_kind_is_refused
0.00s teardown tests/test_render.py::test_every_status_fill_carries_ink_that_reads_on_it
0.00s teardown tests/test_deck.py::test_no_slide_in_the_shipped_demo_is_a_heading_over_an_empty_page
0.00s teardown tests/test_render.py::test_the_detail_page_renders_the_shaping_doc_as_markdown
0.00s teardown tests/test_render.py::test_weeks_bet_into_another_cycle_are_counted_beside_this_one
0.00s setup    tests/test_render.py::test_a_nav_item_that_is_not_a_nav_item_is_refused
0.00s teardown tests/test_identity.py::test_two_files_claiming_one_id_both_say_so
0.00s teardown tests/test_render.py::test_a_person_over_their_availability_says_so_in_the_group_row
0.00s teardown tests/test_deck.py::test_a_hand_written_checklist_reaches_the_slide_it_belongs_to
0.00s teardown tests/test_gitdoor.py::test_a_file_below_the_directory_does_not_claim_the_id_above_it
0.00s teardown tests/test_parse.py::test_every_seed_file_round_trips_byte_identically[task-0f1005]
0.00s teardown tests/test_deck.py::test_the_deck_is_a_title_slide_and_then_one_slide_per_piece_of_work
0.00s teardown tests/test_deck.py::test_a_record_that_is_only_its_bet_falls_back_to_what_it_was_going_to_do
0.00s teardown tests/test_deck.py::test_a_status_on_a_slide_is_a_word_and_not_the_ladder
0.00s teardown tests/test_render.py::test_the_parent_reads_as_a_title_and_edits_as_an_id
0.00s teardown tests/test_auth.py::test_the_token_that_proved_the_identity_is_not_in_the_session
0.00s teardown tests/test_parse.py::test_every_seed_file_round_trips_byte_identically[task-0f1004]
0.00s teardown tests/test_render.py::test_a_status_nobody_uses_gets_no_heading
0.00s teardown tests/test_render.py::test_a_new_cycle_still_has_a_roster_to_set_availability_against
0.00s teardown tests/test_gitdoor.py::test_saving_a_file_that_will_not_parse_is_a_refusal_naming_it
0.00s call     tests/test_render.py::test_the_pitch_template_leaves_progress_to_its_tasks
0.00s teardown tests/test_parse.py::test_every_seed_file_round_trips_byte_identically[pitch-0b0001]
0.00s teardown tests/test_render.py::test_the_headings_a_server_draws_are_the_same_two_kinds
0.00s teardown tests/test_render.py::test_a_cycle_with_no_record_says_what_every_other_view_says_about_it
0.00s teardown tests/test_render.py::test_a_cycle_with_no_record_is_weeks_bet_against_no_roster
0.00s teardown tests/test_render.py::test_the_timeline_orders_its_rows_by_containment
0.00s call     tests/test_deck.py::test_the_media_type_of_an_asset_is_not_written_down_twice
0.00s teardown tests/test_render.py::test_an_empty_field_is_a_dash_and_not_a_word
0.00s teardown tests/test_parse.py::test_every_seed_file_round_trips_byte_identically[pitch-0e0001]
0.00s teardown tests/test_gitdoor.py::test_several_bad_files_are_all_named_rather_than_the_first
0.00s teardown tests/test_auth.py::test_a_session_older_than_its_max_age_is_refused
0.00s teardown tests/test_parse.py::test_every_seed_file_round_trips_byte_identically[task-0a1001]
0.00s teardown tests/test_render.py::test_a_node_carries_everything_the_filters_ask_of_it
0.00s teardown tests/test_deck.py::test_a_slide_shows_the_points_ticked_and_the_share_the_index_counted
0.00s teardown tests/test_parse.py::test_every_seed_file_round_trips_byte_identically[pitch-0c0001]
0.00s call     tests/test_deck.py::test_taking_the_points_out_leaves_the_prose_and_the_fences_alone
0.00s teardown tests/test_deck.py::test_a_pull_request_on_a_slide_is_a_link_to_the_pull_request
0.00s teardown tests/test_identity.py::test_a_save_refuses_when_the_file_does_not_declare_the_id_it_is_named_for
0.00s call     tests/test_headers.py::test_frame_ancestors_is_not_claimed_where_it_does_nothing
0.00s teardown tests/test_exclusion.py::test_build_index_keeps_an_unplanned_kind_out_of_the_plan
0.00s teardown tests/test_deck.py::test_a_point_is_a_line_of_markdown_and_is_rendered_as_one
0.00s teardown tests/test_gitdoor.py::test_the_banner_says_how_many_and_why_rather_than_only_that
0.00s teardown tests/test_render.py::test_choosing_a_repository_does_not_end_the_entry
0.00s teardown tests/test_parse.py::test_load_repo_of_an_empty_directory_is_empty
0.00s teardown tests/test_deck.py::test_work_bet_into_another_cycle_is_on_another_deck
0.00s teardown tests/test_parse.py::test_every_seed_file_round_trips_byte_identically[pitch-0f0002]
0.00s teardown tests/test_parse.py::test_every_seed_file_round_trips_byte_identically[task-0a1002]
0.00s call     tests/test_render.py::test_the_leading_heading_is_matched_on_words_and_not_on_bytes
0.00s teardown tests/test_render.py::test_load_is_charged_where_the_assignees_are
0.00s teardown tests/test_render.py::test_zoom_is_drawn_rather_than_stretched
0.00s teardown tests/test_render.py::test_a_size_is_split_evenly_between_the_people_on_it
0.00s teardown tests/test_render.py::test_a_narrowed_window_clips_bars_rather_than_dropping_them
0.00s teardown tests/test_identity.py::test_a_renamed_slug_is_still_the_same_record
0.00s teardown tests/test_parse.py::test_parse_file_reads_a_seed_pitch
0.00s teardown tests/test_deck.py::test_a_slide_is_headed_by_what_the_work_belongs_to_and_then_by_itself
0.00s teardown tests/test_deck.py::test_the_title_slide_names_the_cycle_its_review_and_what_it_was_for
0.00s teardown tests/test_auth.py::test_a_cookie_we_did_not_sign_is_no_session_and_is_not_an_exception[payload]
0.00s teardown tests/test_parse.py::test_every_seed_file_round_trips_byte_identically[pitch-0d0001]
0.00s teardown tests/test_render.py::test_an_unknown_status_still_reaches_the_index
0.00s teardown tests/test_parse.py::test_every_seed_file_round_trips_byte_identically[task-0d1001]
0.00s setup    tests/test_parse.py::test_parse_tolerates_a_file_that_states_almost_nothing
0.00s teardown tests/test_render.py::test_every_status_owns_a_mark_that_is_not_a_colour
0.00s teardown tests/test_parse.py::test_every_seed_file_round_trips_byte_identically[task-0f1003]
0.00s teardown tests/test_deck.py::test_a_heading_the_bet_emptied_is_not_printed_over_blank_paper
0.00s teardown tests/test_deck.py::test_the_progress_section_is_what_a_review_slide_is_for
0.00s teardown tests/test_identity.py::test_the_bare_id_with_no_slug_is_legal
0.00s teardown tests/test_parse.py::test_every_seed_file_round_trips_byte_identically[task-0c1001]
0.00s teardown tests/test_parse.py::test_every_seed_file_round_trips_byte_identically[task-0d1003]
0.00s setup    tests/test_render.py::test_the_graph_does_not_animate_where_css_cannot_stop_it
0.00s teardown tests/test_parse.py::test_every_seed_file_round_trips_byte_identically[pitch-0a0001]
0.00s teardown tests/test_render.py::test_the_preview_shows_the_same_two_syntaxes_the_page_will
0.00s setup    tests/test_deck.py::test_the_points_on_a_slide_are_the_ones_the_meter_counted
0.00s teardown tests/test_parse.py::test_every_seed_file_round_trips_byte_identically[task-0e1001]
0.00s teardown tests/test_parse.py::test_serialise_writes_one_edited_key_and_leaves_its_neighbours_alone
0.00s teardown tests/test_parse.py::test_every_seed_file_round_trips_byte_identically[task-0f1002]
0.00s teardown tests/test_deck.py::test_a_review_shows_what_was_finished_and_what_was_parked
0.00s teardown tests/test_parse.py::test_every_seed_file_round_trips_byte_identically[task-0b1001]
0.00s teardown tests/test_parse.py::test_every_seed_file_round_trips_byte_identically[task-0e1002]
0.00s teardown tests/test_harness.py::test_the_package_and_the_project_agree_about_the_version
0.00s teardown tests/test_deck.py::test_a_review_date_nobody_chose_is_not_printed_as_though_somebody_had
0.00s teardown tests/test_parse.py::test_every_seed_file_round_trips_byte_identically[task-0c1002]
0.00s teardown tests/test_parse.py::test_every_seed_file_round_trips_byte_identically[pitch-0f0003]
0.00s teardown tests/test_parse.py::test_every_seed_file_round_trips_byte_identically[task-0b1002]
0.00s teardown tests/test_deck.py::test_the_slides_of_one_bet_are_consecutive
0.00s teardown tests/test_render.py::test_no_two_icons_are_the_same_mark
0.00s teardown tests/test_parse.py::test_every_seed_file_round_trips_byte_identically[pitch-0f0001]
0.00s teardown tests/test_parse.py::test_every_seed_file_round_trips_byte_identically[task-0f1001]
0.00s teardown tests/test_parse.py::test_every_seed_file_round_trips_byte_identically[proj-000001]
0.00s teardown tests/test_headers.py::test_frame_ancestors_is_not_claimed_where_it_does_nothing
0.00s teardown tests/test_parse.py::test_parse_dispatches_to_the_subclass_named_by_kind
0.00s teardown tests/test_parse.py::test_the_markdown_body_survives_parsing
0.00s teardown tests/test_parse.py::test_every_seed_file_round_trips_byte_identically[task-0d1002]
0.00s setup    tests/test_auth.py::test_the_member_flag_travels_inside_the_signature
0.00s teardown tests/test_harness.py::test_every_test_repository_names_the_branch_the_store_reads
0.00s teardown tests/test_render.py::test_the_graph_does_not_animate_where_css_cannot_stop_it
0.00s teardown tests/test_render.py::test_the_suggestion_list_offers_names_and_not_sentences
0.00s call     tests/test_render.py::test_every_identifier_a_reader_could_meet_has_a_word_for_it
0.00s teardown tests/test_render.py::test_a_cycle_number_is_offered_the_way_every_other_reference_is
0.00s teardown tests/test_identity.py::test_a_record_built_in_memory_has_no_filename_to_disagree_with
0.00s teardown tests/test_auth.py::test_an_oauth_failure_raises_even_though_github_answers_200[incorrect_client_credentials-The
0.00s teardown tests/test_auth.py::test_a_cookie_we_did_not_sign_is_no_session_and_is_not_an_exception[empty]
0.00s teardown tests/test_parse.py::test_ancestors_stops_on_a_parent_cycle
0.00s teardown tests/test_render.py::test_a_plan_that_names_nobody_says_so_instead_of_offering_a_clear
0.00s teardown tests/test_auth.py::test_an_oauth_failure_raises_even_though_github_answers_200[bad_verification_code-The
0.00s call     tests/test_render.py::test_no_two_icons_are_the_same_mark
0.00s setup    tests/test_render.py::test_a_pitch_that_keeps_a_checklist_as_well_as_tasks_is_told_which_one_counts
0.00s setup    tests/test_exclusion.py::test_with_only_planned_kinds_the_records_are_exactly_the_plan
0.00s teardown tests/test_auth.py::test_the_authorize_url_asks_for_read_org_and_nothing_else
0.00s teardown tests/test_deck.py::test_the_deck_is_not_in_the_nav_and_lights_the_cycle_it_is_of
0.00s teardown tests/test_auth.py::test_a_broken_token_or_an_unapproved_app_is_never_a_yes[401]
0.00s teardown tests/test_auth.py::test_an_oauth_failure_raises_even_though_github_answers_200[redirect_uri_mismatch-The
0.00s setup    tests/test_render.py::test_the_progress_column_counts_the_bodys_own_checklist
0.00s teardown tests/test_render.py::test_the_progress_column_counts_the_bodys_own_checklist
0.00s teardown tests/test_parse.py::test_round_trip_of_the_hand_formatted_fixture_is_byte_identical
0.00s setup    tests/test_render.py::test_every_vendored_file_is_the_one_that_was_checksummed
0.00s call     tests/test_headers.py::test_the_policy_permits_exactly_what_the_pages_actually_do
0.00s setup    tests/test_render.py::test_the_renderer_asks_the_model_rather_than_reaching_into_it
0.00s teardown tests/test_deck.py::test_the_deck_reaches_no_network
0.00s teardown tests/test_exclusion.py::test_every_unplanned_kind_is_out_of_the_plan_and_in_the_records
0.00s teardown tests/test_deck.py::test_the_cycle_page_offers_the_deck_only_where_there_is_one
0.00s teardown tests/test_parse.py::test_parse_tolerates_a_file_that_states_almost_nothing
0.00s teardown tests/test_parse.py::test_serialise_appends_a_field_the_file_never_had
0.00s setup    tests/test_render.py::test_no_icon_is_a_character_the_reader_has_to_own_a_font_for
0.00s teardown tests/test_render.py::test_no_icon_is_a_character_the_reader_has_to_own_a_font_for
0.00s teardown tests/test_render.py::test_the_renderer_asks_the_model_rather_than_reaching_into_it
0.00s setup    tests/test_render.py::test_nothing_touches_a_browser_store_except_the_helper_that_survives_a_refusal
0.00s teardown tests/test_render.py::test_only_an_asset_this_tool_stored_is_ever_drawn_as_an_image
0.00s teardown tests/test_render.py::test_nothing_touches_a_browser_store_except_the_helper_that_survives_a_refusal
0.00s teardown tests/test_auth.py::test_the_code_is_exchanged_for_a_token_at_githubs_token_endpoint
0.00s teardown tests/test_deck.py::test_a_task_that_is_still_this_tools_own_template_has_a_slide_to_present
0.00s teardown tests/test_parse.py::test_parse_refuses_a_file_it_cannot_classify
0.00s teardown tests/test_parse.py::test_one_shaper_keeps_the_spelling_the_corpus_is_written_in
0.00s teardown tests/test_deck.py::test_bytes_that_will_not_come_back_cost_the_picture_and_not_the_page
0.00s teardown tests/test_parse.py::test_size_weeks_keeps_a_stated_zero
0.00s teardown tests/test_parse.py::test_serialise_never_writes_the_body_into_the_frontmatter
0.00s setup    tests/test_harness.py::test_every_test_repository_names_the_branch_the_store_reads
0.00s teardown tests/test_harness.py::test_seed_corpus_has_twenty_six_plan_record_files
0.00s teardown tests/test_render.py::test_a_pitch_with_no_appetite_yet_is_not_accused_of_exceeding_it
0.00s teardown tests/test_parse.py::test_serialise_without_an_original_writes_the_whole_skeleton
0.00s setup    tests/test_render.py::test_the_leading_heading_is_matched_on_words_and_not_on_bytes
0.00s setup    tests/test_harness.py::test_the_package_and_the_project_agree_about_the_version
0.00s teardown tests/test_parse.py::test_size_weeks_defaults_when_no_size_is_stated
0.00s teardown tests/test_auth.py::test_identity_is_revalidated_with_the_freshly_exchanged_token
0.00s teardown tests/test_auth.py::test_a_broken_token_or_an_unapproved_app_is_never_a_yes[403]
0.00s setup    tests/test_auth.py::test_the_token_that_proved_the_identity_is_not_in_the_session
0.00s teardown tests/test_render.py::test_every_vendored_file_is_the_one_that_was_checksummed
0.00s call     tests/test_parse.py::test_ancestors_of_an_unknown_id_is_empty
0.00s setup    tests/test_auth.py::test_the_authorize_url_asks_for_read_org_and_nothing_else
0.00s setup    tests/test_headers.py::test_frame_ancestors_is_not_claimed_where_it_does_nothing
0.00s teardown tests/test_exclusion.py::test_no_plan_control_offers_an_unplanned_kind
0.00s teardown tests/test_parse.py::test_parse_tolerates_explicit_nulls_where_a_default_belongs
0.00s teardown tests/test_headers.py::test_the_policy_permits_exactly_what_the_pages_actually_do
0.00s setup    tests/test_render.py::test_the_facade_reaches_every_name_anything_outside_the_package_asks_for
0.00s teardown tests/test_auth.py::test_a_grant_that_does_not_include_read_org_is_refused_here
0.00s call     tests/test_auth.py::test_no_cookie_at_all_is_an_anonymous_reader
0.00s setup    tests/test_render.py::test_every_identifier_a_reader_could_meet_has_a_word_for_it
0.00s teardown tests/test_auth.py::test_a_cookie_we_did_not_sign_is_no_session_and_is_not_an_exception[signature]
0.00s teardown tests/test_parse.py::test_ancestors_are_nearest_first
0.00s teardown tests/test_auth.py::test_any_role_counts_as_membership
0.00s setup    tests/test_parse.py::test_serialise_writes_one_edited_key_and_leaves_its_neighbours_alone
0.00s teardown tests/test_parse.py::test_parse_falls_back_to_the_id_prefix_when_kind_is_missing
0.00s teardown tests/test_auth.py::test_a_cookie_we_did_not_sign_is_no_session_and_is_not_an_exception[junk]
0.00s teardown tests/test_gitdoor.py::test_one_file_is_said_in_the_singular
0.00s teardown tests/test_deck.py::test_the_sections_a_slide_leaves_out_are_read_off_the_templates
0.00s teardown tests/test_render.py::test_the_vendoring_note_covers_every_file_it_is_about
0.00s teardown tests/test_deck.py::test_taking_the_points_out_leaves_the_prose_and_the_fences_alone
0.00s setup    tests/test_render.py::test_only_an_asset_this_tool_stored_is_ever_drawn_as_an_image
0.00s teardown tests/test_render.py::test_a_pitch_that_keeps_a_checklist_as_well_as_tasks_is_told_which_one_counts
0.00s setup    tests/test_identity.py::test_a_record_built_in_memory_has_no_filename_to_disagree_with
0.00s setup    tests/test_auth.py::test_a_cookie_signed_with_another_secret_is_rejected
0.00s teardown tests/test_auth.py::test_the_member_flag_travels_inside_the_signature
0.00s setup    tests/test_deck.py::test_the_sections_a_slide_leaves_out_are_read_off_the_templates
0.00s teardown tests/test_auth.py::test_a_form_encoded_body_is_an_error_and_never_mistaken_for_a_token
0.00s setup    tests/test_deck.py::test_a_task_that_is_still_this_tools_own_template_has_a_slide_to_present
0.00s teardown tests/test_deck.py::test_the_media_type_of_an_asset_is_not_written_down_twice
0.00s teardown tests/test_auth.py::test_editing_member_true_into_a_cookie_does_not_survive_the_signature
0.00s setup    tests/test_exclusion.py::test_every_unplanned_kind_is_out_of_the_plan_and_in_the_records
0.00s setup    tests/test_exclusion.py::test_no_plan_control_offers_an_unplanned_kind
0.00s setup    tests/test_deck.py::test_a_heading_the_bet_emptied_is_not_printed_over_blank_paper
0.00s teardown tests/test_deck.py::test_the_points_on_a_slide_are_the_ones_the_meter_counted
0.00s setup    tests/test_harness.py::test_every_test_file_is_in_exactly_one_ci_shard
0.00s teardown tests/test_auth.py::test_a_concealed_member_is_still_a_member
0.00s setup    tests/test_parse.py::test_ancestors_stops_on_a_parent_cycle
0.00s teardown tests/test_auth.py::test_a_person_who_is_not_in_the_org_is_identified_but_cannot_write
0.00s setup    tests/test_gitdoor.py::test_one_file_is_said_in_the_singular
0.00s teardown tests/test_parse.py::test_size_weeks_reads_appetite_on_a_pitch_and_effort_on_a_task
0.00s teardown tests/test_auth.py::test_a_cookie_signed_with_another_secret_is_rejected
0.00s setup    tests/test_parse.py::test_one_shaper_keeps_the_spelling_the_corpus_is_written_in
0.00s setup    tests/test_parse.py::test_parse_tolerates_explicit_nulls_where_a_default_belongs
0.00s setup    tests/test_render.py::test_the_vendoring_note_covers_every_file_it_is_about
0.00s setup    tests/test_auth.py::test_identity_is_revalidated_with_the_freshly_exchanged_token
0.00s teardown tests/test_auth.py::test_an_invitation_that_was_never_accepted_is_not_membership
0.00s setup    tests/test_parse.py::test_serialise_without_an_original_writes_the_whole_skeleton
0.00s setup    tests/test_parse.py::test_serialise_appends_a_field_the_file_never_had
0.00s setup    tests/test_parse.py::test_ancestors_are_nearest_first
0.00s teardown tests/test_parse.py::test_ancestors_of_an_unknown_id_is_empty
0.00s teardown tests/test_render.py::test_the_pitch_template_leaves_progress_to_its_tasks
0.00s setup    tests/test_auth.py::test_the_state_is_carried_verbatim_so_the_caller_can_bind_it_to_a_cookie
0.00s teardown tests/test_auth.py::test_a_session_round_trips_through_the_cookie
0.00s setup    tests/test_parse.py::test_serialise_never_writes_the_body_into_the_frontmatter
0.00s setup    tests/test_parse.py::test_round_trip_of_the_hand_formatted_fixture_is_byte_identical
0.00s setup    tests/test_headers.py::test_the_policy_permits_exactly_what_the_pages_actually_do
0.00s setup    tests/test_identity.py::test_the_seed_corpus_reports_no_identity_problem
0.00s teardown tests/test_auth.py::test_the_state_is_carried_verbatim_so_the_caller_can_bind_it_to_a_cookie
0.00s setup    tests/test_parse.py::test_parse_falls_back_to_the_id_prefix_when_kind_is_missing
0.00s teardown tests/test_auth.py::test_the_redirect_uri_is_percent_encoded_into_the_query
0.00s setup    tests/test_deck.py::test_taking_the_points_out_leaves_the_prose_and_the_fences_alone
0.00s setup    tests/test_auth.py::test_editing_member_true_into_a_cookie_does_not_survive_the_signature
0.00s setup    tests/test_render.py::test_the_pitch_template_leaves_progress_to_its_tasks
0.00s setup    tests/test_auth.py::test_a_session_round_trips_through_the_cookie
0.00s setup    tests/test_auth.py::test_an_invitation_that_was_never_accepted_is_not_membership
0.00s setup    tests/test_auth.py::test_a_concealed_member_is_still_a_member
0.00s setup    tests/test_auth.py::test_a_grant_that_does_not_include_read_org_is_refused_here
0.00s teardown tests/test_auth.py::test_no_cookie_at_all_is_an_anonymous_reader
0.00s setup    tests/test_auth.py::test_no_cookie_at_all_is_an_anonymous_reader
0.00s setup    tests/test_auth.py::test_a_form_encoded_body_is_an_error_and_never_mistaken_for_a_token
0.00s teardown tests/test_render.py::test_a_nav_item_that_is_not_a_nav_item_is_refused
0.00s setup    tests/test_render.py::test_a_pitch_with_no_appetite_yet_is_not_accused_of_exceeding_it
0.00s setup    tests/test_auth.py::test_the_code_is_exchanged_for_a_token_at_githubs_token_endpoint
0.00s setup    tests/test_auth.py::test_a_person_who_is_not_in_the_org_is_identified_but_cannot_write
0.00s setup    tests/test_parse.py::test_parse_refuses_a_file_it_cannot_classify
0.00s setup    tests/test_parse.py::test_ancestors_of_an_unknown_id_is_empty
0.00s setup    tests/test_parse.py::test_size_weeks_keeps_a_stated_zero
0.00s teardown tests/test_render.py::test_every_identifier_a_reader_could_meet_has_a_word_for_it
0.00s setup    tests/test_auth.py::test_the_redirect_uri_is_percent_encoded_into_the_query
0.00s setup    tests/test_parse.py::test_size_weeks_reads_appetite_on_a_pitch_and_effort_on_a_task
0.00s setup    tests/test_parse.py::test_size_weeks_defaults_when_no_size_is_stated
0.00s setup    tests/test_auth.py::test_any_role_counts_as_membership
0.00s teardown tests/test_render.py::test_the_leading_heading_is_matched_on_words_and_not_on_bytes

# --- suite (graph) ---
9.39s setup    tests/test_graph_layout.py::test_the_corpus_is_worth_measuring
5.50s setup    tests/test_injection.py::test_no_marker_string_reaches_a_served_page_as_anything_but_text
5.01s call     tests/test_table.py::test_the_frozen_edge_is_a_pixel_a_browser_draws
4.40s setup    tests/test_injection.py::test_no_marker_string_reaches_a_static_page_as_anything_but_text
4.31s call     tests/test_table.py::test_the_check_creates_the_row_on_one_press_with_the_editor_still_open
4.24s call     tests/test_card.py::test_the_three_views_draw_the_same_card
2.94s call     tests/test_injection.py::test_no_marker_string_reaches_a_served_page_as_anything_but_text
2.48s call     tests/test_injection.py::test_the_json_a_page_ships_reads_back_and_can_end_nothing
2.35s setup    tests/test_graph_layout.py::test_a_records_children_are_drawn_near_it
2.30s call     tests/test_graph_layout.py::test_an_edge_that_crosses_a_card_is_drawn_under_it
2.30s call     tests/test_graph_layout.py::test_two_boxes_that_wait_on_each_other_are_ranked_by_the_majority
2.27s setup    tests/test_graph_layout.py::test_no_box_lies_across_another
2.26s setup    tests/test_graph_layout.py::test_no_card_is_drawn_inside_a_group_it_does_not_belong_to
2.25s setup    tests/test_graph_layout.py::test_the_arrows_read_the_way_the_layout_was_asked_for
2.18s call     tests/test_graph_layout.py::test_a_card_wears_both_its_marks_in_front_of_its_name
2.17s call     tests/test_graph_layout.py::test_a_card_stays_where_it_was_dragged
2.17s call     tests/test_graph_layout.py::test_the_grouping_holds_on_a_plan_larger_than_the_real_one
2.14s call     tests/test_injection.py::test_no_marker_string_reaches_a_static_page_as_anything_but_text
2.12s call     tests/test_graph_layout.py::test_the_two_key_rows_are_one_length_and_sit_on_the_drawing
2.02s call     tests/test_card.py::test_a_box_answers_for_its_label_and_not_for_its_acres
1.41s call     tests/test_table.py::test_the_draft_rows_marks_are_drawn
1.36s call     tests/test_table.py::test_the_create_button_is_reachable_from_anywhere_in_the_form
1.33s call     tests/test_table.py::test_a_revealed_cell_can_be_put_back
1.33s call     tests/test_card.py::test_a_pointer_passing_over_a_row_does_not_open_a_card
1.31s call     tests/test_table.py::test_an_expanded_column_is_a_way_of_reading_and_not_a_setting
1.24s call     tests/test_card.py::test_the_card_can_be_reached_and_stays_while_the_pointer_is_in_it
1.22s call     tests/test_card.py::test_one_card_holds_one_document
1.22s call     tests/test_card.py::test_a_nine_hundred_word_document_does_not_cover_the_table
1.21s call     tests/test_card.py::test_a_card_at_the_edge_of_the_window_stays_inside_it
1.21s call     tests/test_table.py::test_the_header_fits_at_the_width_the_fit_may_squeeze_it_to
1.20s call     tests/test_card.py::test_the_document_is_drawn_under_the_fields
1.20s call     tests/test_table.py::test_the_column_control_opens_the_column_and_closes_it
1.18s call     tests/test_card.py::test_the_card_arrives_in_one_piece
1.16s call     tests/test_table.py::test_a_drop_on_a_dead_connection_takes_its_own_sentence_back_down
1.13s call     tests/test_table.py::test_a_column_too_narrow_for_its_word_keeps_its_mark
1.12s call     tests/test_table.py::test_a_dragged_table_still_fits_the_window_it_is_looked_at_in
1.11s call     tests/test_table.py::test_the_badge_is_never_the_part_of_a_clamped_cell_that_gets_cut
1.09s call     tests/test_table.py::test_a_row_that_names_no_reviewer_shows_the_ones_under_it
1.08s call     tests/test_table.py::test_the_header_and_the_frozen_pair_hold_when_the_rows_are_tall
1.08s call     tests/test_status_gate.py::test_a_row_that_has_what_the_status_wants_is_not_asked
1.07s call     tests/test_status_gate.py::test_giving_up_on_the_question_changes_nothing
1.05s call     tests/test_status_gate.py::test_a_status_that_needs_a_date_asks_for_it
1.01s call     tests/test_cli.py::test_a_signal_to_the_entrypoint_reaches_the_server
0.82s call     tests/test_table.py::test_a_column_goes_only_when_the_one_before_it_was_not_enough
0.59s call     tests/test_cli.py::test_the_demo_signs_you_in_as_somebody_the_plan_names
0.44s call     tests/test_schedule.py::test_property_no_dependent_ever_starts_before_its_blocker_has_finished
0.40s setup    tests/test_injection.py::test_no_served_page_lets_a_field_become_markup
0.35s call     tests/test_schedule.py::test_property_a_worker_never_holds_two_overlapping_spans
0.35s call     tests/test_schedule.py::test_property_adding_an_item_that_shares_no_worker_and_no_ancestor_never_moves_that_items_span
0.32s call     tests/test_table.py::test_a_clamped_cell_says_what_it_is_hiding_before_it_says_how_to_edit_it
0.32s call     tests/test_table.py::test_the_default_fit_never_needs_a_horizontal_scrollbar
0.28s call     tests/test_card.py::test_a_refused_document_costs_the_document_and_nothing_else
0.27s call     tests/test_table.py::test_the_table_draws_its_rows_in_a_browser_that_refuses_storage
0.26s call     tests/test_cli.py::test_demo_builds_a_repository_the_server_can_actually_serve
0.26s call     tests/test_table.py::test_no_window_leaves_the_table_scrolling_sideways_by_choice[900]
0.26s call     tests/test_table.py::test_no_window_leaves_the_table_scrolling_sideways_by_choice[1393]
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[1440]
0.26s call     tests/test_table.py::test_no_window_leaves_the_table_scrolling_sideways_by_choice[1353]
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[1280]
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[1050]
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[1354]
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[1100]
0.25s call     tests/test_table.py::test_no_window_leaves_the_table_scrolling_sideways_by_choice[1500]
0.25s call     tests/test_table.py::test_no_window_leaves_the_table_scrolling_sideways_by_choice[1101]
0.23s call     tests/test_table.py::test_the_static_export_offers_no_editing_at_all
0.22s setup    tests/test_table.py::test_the_header_and_the_frozen_pair_hold_when_the_rows_are_tall
0.21s call     tests/test_table.py::test_a_problem_still_comes_first_and_a_long_list_is_capped
0.18s setup    tests/test_injection.py::test_the_table_draws_its_rows_without_letting_a_field_become_markup
0.18s call     tests/test_table.py::test_a_rendered_file_offers_no_row_to_type_into
0.18s setup    tests/test_injection.py::test_adding_somebody_whose_name_holds_a_quote_does_not_break_the_button
0.18s call     tests/test_injection.py::test_no_served_page_lets_a_field_become_markup
0.17s setup    tests/test_injection.py::test_the_combobox_popup_does_not_let_a_suggestion_become_markup[new
0.17s setup    tests/test_injection.py::test_the_table_cell_editor_does_not_let_a_stored_value_become_markup
0.17s call     tests/test_cli.py::test_render_writes_the_three_pages
0.17s setup    tests/test_injection.py::test_the_combobox_popup_does_not_let_a_suggestion_become_markup[cycle
0.17s setup    tests/test_injection.py::test_the_combobox_popup_does_not_let_a_suggestion_become_markup[table]
0.17s setup    tests/test_injection.py::test_the_hover_card_does_not_let_a_field_become_markup
0.17s setup    tests/test_injection.py::test_the_combobox_popup_does_not_let_a_suggestion_become_markup[one
0.17s setup    tests/test_injection.py::test_adding_somebody_to_a_cycle_does_not_let_the_name_become_markup
0.16s setup    tests/test_table.py::test_the_table_declares_which_columns_a_person_owns
0.15s call     tests/test_cli.py::test_the_demo_leaves_the_corpus_it_was_built_from_exactly_as_it_found_it
0.15s call     tests/test_table.py::test_what_the_server_refuses_a_row_with_is_shown_beside_it
0.15s call     tests/test_card.py::test_the_document_is_fetched_on_hover_and_not_shipped_with_the_rows
0.15s call     tests/test_card.py::test_the_card_says_the_things_a_row_does_not
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_cli.py::test_the_demo_repository_goes_when_the_server_does
0.14s call     tests/test_table.py::test_a_refused_create_gives_the_check_back
0.13s call     tests/test_card.py::test_a_rendered_file_draws_a_card_with_no_server_to_ask
0.13s call     tests/test_table.py::test_a_reparent_leaves_no_derived_column_stale
0.12s call     tests/test_table.py::test_the_kind_is_chosen_first_and_the_row_follows_from_it
0.12s call     tests/test_table.py::test_a_second_press_while_the_create_is_in_flight_makes_no_second_record
0.12s call     tests/test_table.py::test_the_count_says_how_many_rows_there_are_to_be_shown_of
0.12s setup    tests/test_injection.py::test_no_static_page_lets_a_field_become_markup
0.12s setup    tests/test_table.py::test_a_drop_that_breaks_containment_is_refused_before_it_is_sent
0.11s setup    tests/test_table.py::test_no_window_leaves_the_table_scrolling_sideways_by_choice[1500]
0.11s call     tests/test_table.py::test_the_created_row_is_re_read_rather_than_invented
0.11s setup    tests/test_table.py::test_a_revealed_cell_can_be_put_back
0.11s setup    tests/test_graph_layout.py::test_the_two_key_rows_are_one_length_and_sit_on_the_drawing
0.11s setup    tests/test_table.py::test_an_expanded_column_is_a_way_of_reading_and_not_a_setting
0.11s setup    tests/test_table.py::test_the_header_fits_at_the_width_the_fit_may_squeeze_it_to
0.11s call     tests/test_table.py::test_a_row_created_inline_goes_through_the_one_create_route
0.11s setup    tests/test_table.py::test_the_column_control_opens_the_column_and_closes_it
0.11s call     tests/test_table.py::test_a_row_with_no_title_is_never_sent
0.11s call     tests/test_table.py::test_a_half_filled_row_is_not_remembered_anywhere
0.11s setup    tests/test_card.py::test_a_pointer_passing_over_a_row_does_not_open_a_card
0.11s setup    tests/test_card.py::test_the_card_can_be_reached_and_stays_while_the_pointer_is_in_it
0.11s setup    tests/test_card.py::test_the_card_arrives_in_one_piece
0.11s setup    tests/test_card.py::test_a_card_at_the_edge_of_the_window_stays_inside_it
0.11s setup    tests/test_card.py::test_a_refused_document_costs_the_document_and_nothing_else
0.11s setup    tests/test_card.py::test_the_card_says_the_things_a_row_does_not
0.11s setup    tests/test_graph_layout.py::test_a_card_stays_where_it_was_dragged
0.11s setup    tests/test_card.py::test_one_card_holds_one_document
0.11s setup    tests/test_card.py::test_a_rendered_file_draws_a_card_with_no_server_to_ask
0.11s setup    tests/test_card.py::test_the_three_views_draw_the_same_card
0.11s setup    tests/test_card.py::test_a_box_answers_for_its_label_and_not_for_its_acres
0.11s setup    tests/test_card.py::test_a_nine_hundred_word_document_does_not_cover_the_table
0.11s setup    tests/test_card.py::test_the_document_is_drawn_under_the_fields
0.11s setup    tests/test_card.py::test_a_document_that_arrives_late_is_not_drawn_on_the_wrong_card
0.10s setup    tests/test_card.py::test_the_document_is_fetched_on_hover_and_not_shipped_with_the_rows
0.10s setup    tests/test_graph_layout.py::test_a_card_wears_both_its_marks_in_front_of_its_name
0.10s call     tests/test_cli.py::test_the_shipped_demo_corpus_validates_clean
0.10s call     tests/test_table.py::test_the_row_says_which_columns_it_cannot_be_typed_into_and_why
0.10s call     tests/test_table.py::test_a_redraw_in_the_middle_of_a_move_leaves_the_last_row_saying_what_it_says
0.10s call     tests/test_table.py::test_every_other_column_sorts_flat
0.10s call     tests/test_cli.py::test_the_demo_is_drawn_around_the_day_its_own_corpus_calls_today
0.10s call     tests/test_table.py::test_a_row_can_be_taken_out_of_what_holds_it
0.10s call     tests/test_table.py::test_the_id_sort_draws_the_plan_depth_first
0.10s setup    tests/test_table.py::test_the_kind_is_a_dropdown_and_switching_keeps_what_was_typed
0.10s setup    tests/test_table.py::test_the_save_uses_the_commit_the_page_was_rendered_at
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_a_row_can_be_moved_without_a_mouse
0.10s call     tests/test_table.py::test_a_drop_is_one_patch_of_one_field_through_the_save_path
0.10s call     tests/test_table.py::test_the_connector_that_ends_a_branch_is_the_last_row_drawn
0.09s call     tests/test_table.py::test_an_empty_plan_still_offers_the_row_that_would_end_it
0.09s call     tests/test_table.py::test_a_row_kept_for_context_is_still_a_record
0.09s call     tests/test_table.py::test_the_indent_never_takes_the_drop_target_with_it
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_blocker_that_is_done_is_not_a_blocker
0.09s call     tests/test_injection.py::test_the_combobox_popup_does_not_let_a_suggestion_become_markup[one
0.09s call     tests/test_table.py::test_a_drop_that_breaks_containment_is_refused_before_it_is_sent
0.09s call     tests/test_table.py::test_a_row_that_may_hold_it_says_so_before_the_mouse_arrives
0.09s call     tests/test_table.py::test_escape_leaves_the_row_where_it_was
0.09s call     tests/test_table.py::test_the_table_ends_in_a_row_that_makes_one
0.09s call     tests/test_table.py::test_a_row_that_belongs_to_nothing_is_never_offered_a_move
0.08s call     tests/test_cli.py::test_schedule_accepts_an_explicit_today
0.08s setup    tests/test_table.py::test_the_status_control_offers_every_status_and_not_only_the_ones_in_use
0.08s call     tests/test_cli.py::test_schedule_json_round_trips
0.08s call     tests/test_cli.py::test_check_exits_non_zero_when_the_repository_has_blockers
0.08s setup    tests/test_table.py::test_the_page_carries_the_commit_it_was_rendered_at
0.08s call     tests/test_schedule.py::test_the_cycle_records_the_goldens_are_derived_against
0.08s call     tests/test_schedule.py::test_the_seed_corpus_schedules_to_the_golden_timeline
0.08s call     tests/test_injection.py::test_the_combobox_popup_does_not_let_a_suggestion_become_markup[new
0.08s call     tests/test_schedule.py::test_the_seed_corpus_golden_overruns_and_flags
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_graph_layout.py::test_an_edge_that_crosses_a_card_is_drawn_under_it
0.07s call     tests/test_injection.py::test_the_table_cell_editor_does_not_let_a_stored_value_become_markup
0.07s call     tests/test_table.py::test_the_popup_a_cell_opens_hangs_off_the_body_and_not_off_the_cell
0.07s call     tests/test_injection.py::test_the_combobox_popup_does_not_let_a_suggestion_become_markup[table]
0.06s call     tests/test_injection.py::test_the_table_draws_its_rows_without_letting_a_field_become_markup
0.06s call     tests/test_table.py::test_the_reveal_line_cannot_smuggle_markup_into_the_cell
0.06s call     tests/test_table.py::test_a_window_wider_than_the_plan_gives_the_slack_to_tags
0.06s call     tests/test_injection.py::test_no_page_is_assembled_by_substitution
0.06s call     tests/test_injection.py::test_no_static_page_lets_a_field_become_markup
0.06s setup    tests/test_injection.py::test_the_fixture_really_is_hostile
0.05s call     tests/test_injection.py::test_the_combobox_popup_does_not_let_a_suggestion_become_markup[cycle
0.05s call     tests/test_injection.py::test_adding_somebody_whose_name_holds_a_quote_does_not_break_the_button
0.05s call     tests/test_injection.py::test_adding_somebody_to_a_cycle_does_not_let_the_name_become_markup
0.05s call     tests/test_injection.py::test_the_hover_card_does_not_let_a_field_become_markup
0.04s call     tests/test_cli.py::test_a_plan_that_reaches_the_end_of_the_calendar_still_renders
0.04s call     tests/test_table.py::test_a_record_created_from_the_merged_page_round_trips[project]
0.04s call     tests/test_table.py::test_a_record_created_from_the_merged_page_round_trips[issue]
0.04s call     tests/test_table.py::test_a_record_created_from_the_merged_page_round_trips[pitch]
0.04s call     tests/test_table.py::test_a_record_created_from_the_merged_page_round_trips[product]
0.04s call     tests/test_table.py::test_two_tabs_editing_one_cell_is_a_409_that_writes_nothing
0.04s call     tests/test_table.py::test_a_record_created_from_the_merged_page_round_trips[task]
0.03s call     tests/test_table.py::test_editing_another_row_from_the_same_page_is_invisible
0.03s call     tests/test_table.py::test_a_record_created_from_the_merged_page_round_trips[note]
0.03s call     tests/test_table.py::test_a_page_that_never_advances_its_base_collides_with_itself
0.03s call     tests/test_table.py::test_the_create_form_offers_the_three_kinds_and_nothing_else
0.03s call     tests/test_table.py::test_a_create_racing_another_write_is_still_one_commit
0.03s setup    tests/test_table.py::test_the_status_gate_is_written_on_the_controls_themselves
0.03s setup    tests/test_table.py::test_a_dropdown_on_either_form_offers_words_and_stores_identifiers
0.03s setup    tests/test_table.py::test_a_template_never_overwrites_something_somebody_typed
0.03s setup    tests/test_table.py::test_creating_is_the_detail_page_with_nothing_in_it
0.03s setup    tests/test_table.py::test_the_create_form_has_somewhere_to_put_the_server_refusal
0.03s setup    tests/test_table.py::test_every_reference_on_the_create_form_is_offered_and_not_remembered
0.03s setup    tests/test_table.py::test_the_create_checks_the_status_gate_before_it_posts
0.03s setup    tests/test_table.py::test_no_derived_column_can_be_edited_at_all
0.03s setup    tests/test_table.py::test_the_kind_picker_offers_every_rung_and_only_rungs
0.03s setup    tests/test_table.py::test_the_create_button_is_reachable_from_anywhere_in_the_form
0.03s setup    tests/test_table.py::test_the_create_form_writes_only_fields_a_person_owns
0.03s setup    tests/test_table.py::test_a_new_pitch_starts_from_the_teams_own_shaping_template
0.03s call     tests/test_table.py::test_the_narrow_layout_drops_the_columns_that_are_lookups
0.03s setup    tests/test_table.py::test_the_columns_and_the_cells_agree_on_their_order
0.03s setup    tests/test_table.py::test_the_form_says_which_fields_the_chosen_status_demands
0.03s setup    tests/test_table.py::test_every_control_on_the_create_form_has_a_name
0.03s setup    tests/test_table.py::test_a_redraw_in_the_middle_of_a_move_leaves_the_last_row_saying_what_it_says
0.03s setup    tests/test_table.py::test_the_check_creates_the_row_on_one_press_with_the_editor_still_open
0.03s setup    tests/test_table.py::test_the_create_form_names_neither_the_id_nor_the_path
0.03s setup    tests/test_table.py::test_the_gates_are_the_validator_s_own_and_not_a_second_copy
0.03s setup    tests/test_table.py::test_escape_leaves_the_row_where_it_was
0.03s setup    tests/test_table.py::test_a_column_too_narrow_for_its_word_keeps_its_mark
0.03s setup    tests/test_table.py::test_a_drop_on_a_dead_connection_takes_its_own_sentence_back_down
0.03s setup    tests/test_table.py::test_no_window_leaves_the_table_scrolling_sideways_by_choice[1091]
0.03s setup    tests/test_table.py::test_assignees_is_a_column_and_a_filter_and_a_value
0.03s setup    tests/test_table.py::test_a_cell_can_be_edited_without_a_mouse
0.03s setup    tests/test_table.py::test_no_window_leaves_the_table_scrolling_sideways_by_choice[900]
0.03s setup    tests/test_table.py::test_the_frozen_edge_is_painted_from_the_scroll_position
0.03s setup    tests/test_table.py::test_the_reveal_line_cannot_smuggle_markup_into_the_cell
0.03s setup    tests/test_table.py::test_a_problem_still_comes_first_and_a_long_list_is_capped
0.03s call     tests/test_table.py::test_the_page_never_reports_its_own_write_to_itself
0.03s setup    tests/test_table.py::test_no_window_leaves_the_table_scrolling_sideways_by_choice[1366]
0.03s setup    tests/test_table.py::test_a_drop_is_one_patch_of_one_field_through_the_save_path
0.03s setup    tests/test_table.py::test_a_row_with_no_title_is_never_sent
0.03s setup    tests/test_table.py::test_the_editor_discards_on_escape_and_commits_on_tab
0.03s setup    tests/test_table.py::test_a_problem_marks_the_row_and_the_cell_that_caused_it
0.03s setup    tests/test_table.py::test_no_window_leaves_the_table_scrolling_sideways_by_choice[1280]
0.03s setup    tests/test_table.py::test_the_fit_is_measured_again_once_the_real_typeface_has_landed
0.03s setup    tests/test_table.py::test_no_window_leaves_the_table_scrolling_sideways_by_choice[2560]
0.03s setup    tests/test_table.py::test_the_server_refusal_is_shown_and_not_swallowed
0.03s setup    tests/test_table.py::test_a_clamped_cell_says_what_it_is_hiding_before_it_says_how_to_edit_it
0.03s setup    tests/test_table.py::test_a_sortable_header_is_a_button_that_says_which_way_it_sorts
0.03s setup    tests/test_table.py::test_the_route_the_table_re_reads_is_the_payload_it_was_drawn_from
0.03s setup    tests/test_table.py::test_the_popup_a_cell_opens_hangs_off_the_body_and_not_off_the_cell
0.03s setup    tests/test_table.py::test_the_bold_column_is_the_one_being_sorted_by
0.03s setup    tests/test_table.py::test_a_dragged_table_still_fits_the_window_it_is_looked_at_in
0.03s setup    tests/test_table.py::test_the_table_sizes_itself_to_its_contents_and_the_window
0.03s setup    tests/test_table.py::test_a_write_refreshes_the_count_and_the_markers_in_place
0.03s setup    tests/test_table.py::test_the_kind_is_chosen_first_and_the_row_follows_from_it
0.03s setup    tests/test_table.py::test_a_refused_create_gives_the_check_back
0.03s setup    tests/test_table.py::test_the_row_a_drop_would_land_in_is_named_beside_the_cursor
0.03s setup    tests/test_table.py::test_a_row_that_belongs_to_nothing_is_never_offered_a_move
0.03s setup    tests/test_table.py::test_a_second_press_while_the_create_is_in_flight_makes_no_second_record
0.03s setup    tests/test_table.py::test_a_column_is_dragged_in_the_header_and_a_row_in_the_body
0.03s setup    tests/test_table.py::test_no_window_leaves_the_table_scrolling_sideways_by_choice[1440]
0.03s setup    tests/test_table.py::test_the_frozen_edge_is_a_pixel_a_browser_draws
0.03s setup    tests/test_table.py::test_no_kind_is_given_a_rule_of_its_own
0.03s setup    tests/test_table.py::test_editing_the_table_pulled_in_no_library
0.03s setup    tests/test_table.py::test_the_header_and_the_two_identity_columns_stay_put
0.03s setup    tests/test_table.py::test_the_rule_the_page_refuses_with_is_the_model_s
0.03s setup    tests/test_table.py::test_the_tags_cell_is_one_line_with_the_rest_behind_a_count
0.03s setup    tests/test_table.py::test_no_window_leaves_the_table_scrolling_sideways_by_choice[1050]
0.03s setup    tests/test_table.py::test_no_window_leaves_the_table_scrolling_sideways_by_choice[1353]
0.03s setup    tests/test_table.py::test_the_badge_is_never_the_part_of_a_clamped_cell_that_gets_cut
0.03s setup    tests/test_table.py::test_no_window_leaves_the_table_scrolling_sideways_by_choice[1354]
0.03s setup    tests/test_table.py::test_only_a_cell_with_something_in_the_way_is_tinted
0.03s setup    tests/test_table.py::test_the_table_ends_in_a_row_that_makes_one
0.03s setup    tests/test_table.py::test_a_row_says_which_record_it_is_and_a_cell_says_which_field
0.03s setup    tests/test_table.py::test_the_row_says_which_columns_it_cannot_be_typed_into_and_why
0.03s setup    tests/test_table.py::test_a_window_wider_than_the_plan_gives_the_slack_to_tags
0.03s setup    tests/test_table.py::test_a_row_that_may_hold_it_says_so_before_the_mouse_arrives
0.03s setup    tests/test_table.py::test_a_column_goes_only_when_the_one_before_it_was_not_enough
0.03s setup    tests/test_table.py::test_a_row_can_be_taken_out_of_what_holds_it
0.03s setup    tests/test_table.py::test_no_window_leaves_the_table_scrolling_sideways_by_choice[1100]
0.03s setup    tests/test_table.py::test_the_id_is_shown_and_is_never_a_control
0.03s setup    tests/test_table.py::test_a_status_is_a_chip_and_the_id_cell_holds_only_the_id
0.03s setup    tests/test_table.py::test_the_grouping_of_problems_is_written_once
0.03s setup    tests/test_table.py::test_no_window_leaves_the_table_scrolling_sideways_by_choice[1600]
0.03s setup    tests/test_table.py::test_an_editable_cell_shows_it_and_a_derived_one_says_why_not
0.03s setup    tests/test_table.py::test_a_reparent_leaves_no_derived_column_stale
0.03s setup    tests/test_table.py::test_no_window_leaves_the_table_scrolling_sideways_by_choice[1393]
0.03s setup    tests/test_table.py::test_no_window_leaves_the_table_scrolling_sideways_by_choice[1101]
0.03s call     tests/test_table.py::test_the_create_page_is_the_record_page_in_a_mode
0.03s setup    tests/test_table.py::test_an_inline_edit_can_never_erase_a_shaping_document
0.02s setup    tests/test_table.py::test_a_row_can_be_moved_without_a_mouse
0.02s setup    tests/test_table.py::test_the_table_offers_a_way_to_create_a_record
0.02s setup    tests/test_table.py::test_no_window_leaves_the_table_scrolling_sideways_by_choice[1920]
0.02s setup    tests/test_table.py::test_a_row_created_inline_goes_through_the_one_create_route
0.02s setup    tests/test_table.py::test_the_count_says_how_many_rows_there_are_to_be_shown_of
0.02s setup    tests/test_table.py::test_every_identifier_a_filter_offers_is_shown_as_a_word
0.02s setup    tests/test_table.py::test_what_the_server_refuses_a_row_with_is_shown_beside_it
0.02s setup    tests/test_table.py::test_a_half_filled_row_is_not_remembered_anywhere
0.02s setup    tests/test_table.py::test_the_search_box_is_not_the_tenth_filter
0.02s setup    tests/test_table.py::test_the_blocking_count_is_a_link_that_pluralises_and_mutes_at_zero
0.02s setup    tests/test_table.py::test_a_committed_save_advances_the_page_base_commit
0.02s setup    tests/test_table.py::test_an_empty_table_says_which_of_the_three_empties_it_is
0.02s setup    tests/test_table.py::test_the_default_fit_never_needs_a_horizontal_scrollbar
0.02s setup    tests/test_table.py::test_the_narrow_layout_drops_the_columns_that_are_lookups
0.02s setup    tests/test_table.py::test_the_created_row_is_re_read_rather_than_invented
0.02s setup    tests/test_table.py::test_the_page_never_reports_its_own_write_to_itself
0.02s setup    tests/test_table.py::test_a_column_header_is_the_label_map_s_word_for_the_field
0.02s setup    tests/test_table.py::test_the_editor_a_cell_opens_says_what_it_is_editing
0.02s setup    tests/test_table.py::test_the_suggestion_popup_announces_itself
0.02s setup    tests/test_table.py::test_a_conflict_is_never_written_into_an_editable_cell
0.02s setup    tests/test_table.py::test_a_status_column_sorts_the_way_work_moves
0.02s setup    tests/test_table.py::test_clearing_the_filters_is_a_button_and_never_a_form_field
0.02s setup    tests/test_table.py::test_one_edit_sends_exactly_one_field
0.02s setup    tests/test_table.py::test_the_table_draws_its_rows_in_a_browser_that_refuses_storage
0.02s call     tests/test_table.py::test_no_template_comment_reaches_the_page[/graph]
0.02s call     tests/test_table.py::test_a_row_created_inline_lands_as_a_commit_with_the_right_kind_and_author
0.02s setup    tests/test_table.py::test_no_template_comment_reaches_the_page[/people]
0.02s setup    tests/test_table.py::test_an_empty_plan_still_offers_the_row_that_would_end_it
0.02s setup    tests/test_table.py::test_a_row_created_inline_lands_as_a_commit_with_the_right_kind_and_author
0.02s call     tests/test_table.py::test_the_new_control_creates_through_the_api_and_the_server_mints_the_id
0.02s setup    tests/test_table.py::test_no_template_comment_reaches_the_page[/graph]
0.02s setup    tests/test_table.py::test_a_create_racing_another_write_is_still_one_commit
0.02s setup    tests/test_table.py::test_editing_another_row_from_the_same_page_is_invisible
0.02s setup    tests/test_table.py::test_a_field_only_one_kind_has_is_absent_from_the_others
0.02s setup    tests/test_table.py::test_an_id_sent_by_the_client_is_ignored_rather_than_honoured
0.02s setup    tests/test_table.py::test_no_template_comment_reaches_the_page[/]
0.02s setup    tests/test_table.py::test_a_record_created_from_the_merged_page_round_trips[product]
0.02s setup    tests/test_table.py::test_a_page_that_never_advances_its_base_collides_with_itself
0.02s setup    tests/test_table.py::test_no_template_comment_reaches_the_page[/timeline]
0.02s setup    tests/test_table.py::test_a_blocker_that_is_done_is_not_a_blocker
0.02s call     tests/test_injection.py::test_every_html_get_route_is_in_the_census
0.02s setup    tests/test_table.py::test_a_record_created_from_the_merged_page_round_trips[project]
0.02s setup    tests/test_table.py::test_no_template_comment_reaches_the_page[/cycles]
0.02s setup    tests/test_table.py::test_two_tabs_editing_one_cell_is_a_409_that_writes_nothing
0.02s setup    tests/test_table.py::test_a_record_created_from_the_merged_page_round_trips[task]
0.02s call     tests/test_table.py::test_no_template_comment_reaches_the_page[/new]
0.02s setup    tests/test_table.py::test_a_record_created_from_the_merged_page_round_trips[note]
0.02s setup    tests/test_table.py::test_a_create_missing_its_gated_fields_comes_back_as_problems
0.02s setup    tests/test_table.py::test_a_create_that_waives_review_is_accepted
0.02s setup    tests/test_table.py::test_the_create_page_is_the_record_page_in_a_mode
0.02s setup    tests/test_table.py::test_the_new_control_creates_through_the_api_and_the_server_mints_the_id
0.02s setup    tests/test_table.py::test_the_server_refuses_a_field_the_kind_does_not_have
0.02s setup    tests/test_table.py::test_no_template_comment_reaches_the_page[/new]
0.02s setup    tests/test_table.py::test_a_record_created_from_the_merged_page_round_trips[pitch]
0.02s call     tests/test_table.py::test_one_cell_edit_is_one_commit_of_one_line
0.02s setup    tests/test_table.py::test_a_record_created_from_the_merged_page_round_trips[issue]
0.02s setup    tests/test_table.py::test_one_cell_edit_is_one_commit_of_one_line
0.02s setup    tests/test_table.py::test_the_create_form_offers_the_three_kinds_and_nothing_else
0.01s call     tests/test_table.py::test_creating_is_the_detail_page_with_nothing_in_it
0.01s call     tests/test_table.py::test_a_field_only_one_kind_has_is_absent_from_the_others
0.01s call     tests/test_table.py::test_a_conflict_is_never_written_into_an_editable_cell
0.01s call     tests/test_table.py::test_a_create_that_waives_review_is_accepted
0.01s call     tests/test_table.py::test_a_dropdown_on_either_form_offers_words_and_stores_identifiers
0.01s call     tests/test_table.py::test_an_id_sent_by_the_client_is_ignored_rather_than_honoured
0.01s setup    tests/test_table.py::test_every_other_column_sorts_flat
0.01s call     tests/test_table.py::test_the_create_checks_the_status_gate_before_it_posts
0.01s call     tests/test_table.py::test_a_title_somebody_typed_never_becomes_markup
0.01s call     tests/test_table.py::test_the_table_offers_a_way_to_create_a_record
0.01s call     tests/test_table.py::test_a_create_missing_its_gated_fields_comes_back_as_problems
0.01s call     tests/test_table.py::test_a_row_says_which_record_it_is_and_a_cell_says_which_field
0.01s call     tests/test_table.py::test_no_template_comment_reaches_the_page[/timeline]
0.01s call     tests/test_table.py::test_no_template_comment_reaches_the_page[/people]
0.01s call     tests/test_table.py::test_the_grouping_of_problems_is_written_once
0.01s call     tests/test_table.py::test_one_edit_sends_exactly_one_field
0.01s call     tests/test_table.py::test_no_template_comment_reaches_the_page[/]
0.01s call     tests/test_injection.py::test_the_fixture_really_is_hostile
0.01s call     tests/test_table.py::test_no_template_comment_reaches_the_page[/cycles]
0.01s call     tests/test_table.py::test_a_sortable_header_is_a_button_that_says_which_way_it_sorts
0.01s call     tests/test_table.py::test_the_blocking_count_names_the_population_its_link_opens
0.01s call     tests/test_injection.py::test_no_template_marks_a_value_safe
0.01s setup    tests/test_table.py::test_a_filtered_table_keeps_the_tree_and_counts_only_the_answers
0.01s setup    tests/test_status_gate.py::test_giving_up_on_the_question_changes_nothing
0.01s call     tests/test_table.py::test_a_committed_save_advances_the_page_base_commit
0.01s setup    tests/test_table.py::test_a_row_kept_for_context_is_still_a_record
0.01s teardown tests/test_injection.py::test_no_vendored_library_can_end_the_block_it_is_written_into
0.01s setup    tests/test_table.py::test_the_indent_never_takes_the_drop_target_with_it
0.01s setup    tests/test_table.py::test_the_connector_that_ends_a_branch_is_the_last_row_drawn
0.01s call     tests/test_table.py::test_a_status_is_a_chip_and_the_id_cell_holds_only_the_id
0.01s setup    tests/test_table.py::test_the_id_sort_draws_the_plan_depth_first
0.01s setup    tests/test_status_gate.py::test_a_row_that_has_what_the_status_wants_is_not_asked
0.01s call     tests/test_schedule.py::test_a_size_that_only_just_fits_is_still_walked_exactly
0.01s setup    tests/test_status_gate.py::test_a_status_that_needs_a_date_asks_for_it
0.00s call     tests/test_table.py::test_a_column_is_dragged_in_the_header_and_a_row_in_the_body
0.00s call     tests/test_injection.py::test_no_vendored_library_can_end_the_block_it_is_written_into
0.00s call     tests/test_table.py::test_every_control_on_the_create_form_has_a_name
0.00s call     tests/test_table.py::test_every_identifier_a_filter_offers_is_shown_as_a_word
0.00s setup    tests/test_status_gate.py::test_the_gate_the_table_asks_from_is_the_gate_the_server_enforces
0.00s call     tests/test_table.py::test_a_cell_can_be_edited_without_a_mouse
0.00s call     tests/test_table.py::test_the_blocking_count_is_a_link_that_pluralises_and_mutes_at_zero
0.00s call     tests/test_table.py::test_clearing_the_filters_is_a_button_and_never_a_form_field
0.00s call     tests/test_table.py::test_the_server_refusal_is_shown_and_not_swallowed
0.00s call     tests/test_table.py::test_the_tags_cell_is_one_line_with_the_rest_behind_a_count
0.00s call     tests/test_table.py::test_a_problem_marks_the_row_and_the_cell_that_caused_it
0.00s call     tests/test_table.py::test_the_editor_discards_on_escape_and_commits_on_tab
0.00s call     tests/test_table.py::test_the_suggestion_popup_announces_itself
0.00s call     tests/test_table.py::test_an_empty_table_says_which_of_the_three_empties_it_is
0.00s call     tests/test_table.py::test_a_write_refreshes_the_count_and_the_markers_in_place
0.00s call     tests/test_table.py::test_an_editable_cell_shows_it_and_a_derived_one_says_why_not
0.00s call     tests/test_table.py::test_the_editor_a_cell_opens_says_what_it_is_editing
0.00s call     tests/test_table.py::test_a_column_header_is_the_label_map_s_word_for_the_field
0.00s call     tests/test_table.py::test_the_rule_the_page_refuses_with_is_the_model_s
0.00s call     tests/test_table.py::test_the_header_and_the_two_identity_columns_stay_put
0.00s call     tests/test_config.py::test_load_config_merges_the_three_seed_files
0.00s call     tests/test_table.py::test_no_derived_column_can_be_edited_at_all
0.00s call     tests/test_table.py::test_an_inline_edit_can_never_erase_a_shaping_document
0.00s call     tests/test_table.py::test_the_save_uses_the_commit_the_page_was_rendered_at
0.00s call     tests/test_schedule.py::test_configured_holidays_do_not_count
0.00s call     tests/test_config.py::test_every_cycle_used_by_the_seed_corpus_has_boundaries
0.00s call     tests/test_cli.py::test_check_reports_warnings_without_failing
0.00s call     tests/test_cli.py::test_check_exits_zero_when_only_warnings_remain
0.00s call     tests/test_table.py::test_the_route_the_table_re_reads_is_the_payload_it_was_drawn_from
0.00s call     tests/test_config.py::test_a_cycle_record_supersedes_the_dates_in_config
0.00s call     tests/test_cli.py::test_the_container_says_where_it_is_running
0.00s call     tests/test_injection.py::test_every_page_carries_exactly_one_escaper
0.00s call     tests/test_table.py::test_assignees_is_a_column_and_a_filter_and_a_value
0.00s call     tests/test_injection.py::test_no_title_can_inline_a_library_a_second_time
0.00s call     tests/test_table.py::test_the_server_refuses_a_field_the_kind_does_not_have
0.00s call     tests/test_table.py::test_the_table_declares_which_columns_a_person_owns
0.00s call     tests/test_table.py::test_the_kind_is_a_dropdown_and_switching_keeps_what_was_typed
0.00s call     tests/test_table.py::test_every_reference_on_the_create_form_is_offered_and_not_remembered
0.00s teardown tests/test_table.py::test_the_row_a_drop_would_land_in_is_named_beside_the_cursor
0.00s call     tests/test_table.py::test_the_columns_and_the_cells_agree_on_their_order
0.00s call     tests/test_table.py::test_the_status_gate_is_written_on_the_controls_themselves
0.00s teardown tests/test_table.py::test_a_blocker_that_is_done_is_not_a_blocker
0.00s teardown tests/test_table.py::test_a_record_created_from_the_merged_page_round_trips[product]
0.00s teardown tests/test_table.py::test_a_record_created_from_the_merged_page_round_trips[pitch]
0.00s teardown tests/test_table.py::test_two_tabs_editing_one_cell_is_a_409_that_writes_nothing
0.00s teardown tests/test_table.py::test_a_reparent_leaves_no_derived_column_stale
0.00s teardown tests/test_table.py::test_a_record_created_from_the_merged_page_round_trips[task]
0.00s teardown tests/test_table.py::test_a_record_created_from_the_merged_page_round_trips[issue]
0.00s teardown tests/test_table.py::test_a_record_created_from_the_merged_page_round_trips[project]
0.00s call     tests/test_cli.py::test_an_unknown_subcommand_fails_rather_than_doing_something
0.00s teardown tests/test_table.py::test_a_create_racing_another_write_is_still_one_commit
0.00s teardown tests/test_table.py::test_a_refused_create_gives_the_check_back
0.00s teardown tests/test_table.py::test_a_create_that_waives_review_is_accepted
0.00s teardown tests/test_table.py::test_a_record_created_from_the_merged_page_round_trips[note]
0.00s teardown tests/test_table.py::test_a_page_that_never_advances_its_base_collides_with_itself
0.00s teardown tests/test_table.py::test_the_grouping_of_problems_is_written_once
0.00s teardown tests/test_table.py::test_the_check_creates_the_row_on_one_press_with_the_editor_still_open
0.00s teardown tests/test_table.py::test_no_window_leaves_the_table_scrolling_sideways_by_choice[1050]
0.00s teardown tests/test_table.py::test_editing_another_row_from_the_same_page_is_invisible
0.00s teardown tests/test_table.py::test_a_second_press_while_the_create_is_in_flight_makes_no_second_record
0.00s teardown tests/test_table.py::test_a_clamped_cell_says_what_it_is_hiding_before_it_says_how_to_edit_it
0.00s teardown tests/test_table.py::test_the_page_never_reports_its_own_write_to_itself
0.00s teardown tests/test_table.py::test_a_redraw_in_the_middle_of_a_move_leaves_the_last_row_saying_what_it_says
0.00s teardown tests/test_table.py::test_one_cell_edit_is_one_commit_of_one_line
0.00s teardown tests/test_table.py::test_a_row_can_be_taken_out_of_what_holds_it
0.00s teardown tests/test_table.py::test_a_half_filled_row_is_not_remembered_anywhere
0.00s teardown tests/test_table.py::test_the_table_declares_which_columns_a_person_owns
0.00s teardown tests/test_table.py::test_a_drop_on_a_dead_connection_takes_its_own_sentence_back_down
0.00s teardown tests/test_table.py::test_a_row_created_inline_lands_as_a_commit_with_the_right_kind_and_author
0.00s teardown tests/test_table.py::test_the_narrow_layout_drops_the_columns_that_are_lookups
0.00s teardown tests/test_table.py::test_the_create_checks_the_status_gate_before_it_posts
0.00s teardown tests/test_table.py::test_the_header_and_the_two_identity_columns_stay_put
0.00s teardown tests/test_table.py::test_what_the_server_refuses_a_row_with_is_shown_beside_it
0.00s teardown tests/test_table.py::test_no_window_leaves_the_table_scrolling_sideways_by_choice[1091]
0.00s teardown tests/test_table.py::test_an_empty_plan_still_offers_the_row_that_would_end_it
0.00s teardown tests/test_table.py::test_the_new_control_creates_through_the_api_and_the_server_mints_the_id
0.00s teardown tests/test_table.py::test_a_column_too_narrow_for_its_word_keeps_its_mark
0.00s teardown tests/test_table.py::test_the_bold_column_is_the_one_being_sorted_by
0.00s teardown tests/test_table.py::test_a_drop_that_breaks_containment_is_refused_before_it_is_sent
0.00s teardown tests/test_table.py::test_no_derived_column_can_be_edited_at_all
0.00s teardown tests/test_table.py::test_the_row_says_which_columns_it_cannot_be_typed_into_and_why
0.00s teardown tests/test_table.py::test_no_window_leaves_the_table_scrolling_sideways_by_choice[1440]
0.00s teardown tests/test_table.py::test_a_dragged_table_still_fits_the_window_it_is_looked_at_in
0.00s teardown tests/test_table.py::test_the_badge_is_never_the_part_of_a_clamped_cell_that_gets_cut
0.00s call     tests/test_cli.py::test_the_demo_refuses_a_port_that_is_taken_before_it_says_where_to_look
0.00s call     tests/test_table.py::test_a_template_never_overwrites_something_somebody_typed
0.00s teardown tests/test_table.py::test_the_reveal_line_cannot_smuggle_markup_into_the_cell
0.00s teardown tests/test_table.py::test_the_kind_is_chosen_first_and_the_row_follows_from_it
0.00s teardown tests/test_table.py::test_the_frozen_edge_is_a_pixel_a_browser_draws
0.00s teardown tests/test_table.py::test_escape_leaves_the_row_where_it_was
0.00s teardown tests/test_table.py::test_the_editor_discards_on_escape_and_commits_on_tab
0.00s teardown tests/test_table.py::test_every_identifier_a_filter_offers_is_shown_as_a_word
0.00s teardown tests/test_table.py::test_no_window_leaves_the_table_scrolling_sideways_by_choice[1100]
0.00s teardown tests/test_table.py::test_the_default_fit_never_needs_a_horizontal_scrollbar
0.00s teardown tests/test_table.py::test_no_template_comment_reaches_the_page[/graph]
0.00s teardown tests/test_table.py::test_no_window_leaves_the_table_scrolling_sideways_by_choice[1366]
0.00s teardown tests/test_table.py::test_a_row_can_be_moved_without_a_mouse
0.00s teardown tests/test_table.py::test_the_editor_a_cell_opens_says_what_it_is_editing
0.00s teardown tests/test_table.py::test_a_row_created_inline_goes_through_the_one_create_route
0.00s teardown tests/test_table.py::test_no_window_leaves_the_table_scrolling_sideways_by_choice[1600]
0.00s teardown tests/test_table.py::test_a_drop_is_one_patch_of_one_field_through_the_save_path
0.00s teardown tests/test_table.py::test_the_count_says_how_many_rows_there_are_to_be_shown_of
0.00s teardown tests/test_table.py::test_every_reference_on_the_create_form_is_offered_and_not_remembered
0.00s teardown tests/test_table.py::test_a_cell_can_be_edited_without_a_mouse
0.00s teardown tests/test_table.py::test_a_row_with_no_title_is_never_sent
0.00s teardown tests/test_table.py::test_a_new_pitch_starts_from_the_teams_own_shaping_template
0.00s teardown tests/test_table.py::test_no_template_comment_reaches_the_page[/new]
0.00s teardown tests/test_table.py::test_an_inline_edit_can_never_erase_a_shaping_document
0.00s call     tests/test_cli.py::test_serve_is_reachable_from_the_command_line
0.00s teardown tests/test_table.py::test_a_problem_marks_the_row_and_the_cell_that_caused_it
0.00s teardown tests/test_table.py::test_the_rule_the_page_refuses_with_is_the_model_s
0.00s teardown tests/test_table.py::test_a_problem_still_comes_first_and_a_long_list_is_capped
0.00s teardown tests/test_table.py::test_a_row_that_may_hold_it_says_so_before_the_mouse_arrives
0.00s teardown tests/test_table.py::test_no_window_leaves_the_table_scrolling_sideways_by_choice[1393]
0.00s teardown tests/test_table.py::test_only_a_cell_with_something_in_the_way_is_tinted
0.00s teardown tests/test_table.py::test_a_create_missing_its_gated_fields_comes_back_as_problems
0.00s teardown tests/test_table.py::test_the_save_uses_the_commit_the_page_was_rendered_at
0.00s teardown tests/test_table.py::test_no_window_leaves_the_table_scrolling_sideways_by_choice[1500]
0.00s teardown tests/test_table.py::test_a_status_column_sorts_the_way_work_moves
0.00s teardown tests/test_table.py::test_an_id_sent_by_the_client_is_ignored_rather_than_honoured
0.00s teardown tests/test_table.py::test_the_create_form_names_neither_the_id_nor_the_path
0.00s teardown tests/test_table.py::test_the_status_control_offers_every_status_and_not_only_the_ones_in_use
0.00s teardown tests/test_table.py::test_no_window_leaves_the_table_scrolling_sideways_by_choice[1353]
0.00s teardown tests/test_table.py::test_no_window_leaves_the_table_scrolling_sideways_by_choice[1920]
0.00s teardown tests/test_table.py::test_the_popup_a_cell_opens_hangs_off_the_body_and_not_off_the_cell
0.00s teardown tests/test_table.py::test_the_created_row_is_re_read_rather_than_invented
0.00s teardown tests/test_table.py::test_the_suggestion_popup_announces_itself
0.00s teardown tests/test_table.py::test_the_status_gate_is_written_on_the_controls_themselves
0.00s teardown tests/test_table.py::test_a_window_wider_than_the_plan_gives_the_slack_to_tags
0.00s teardown tests/test_table.py::test_no_window_leaves_the_table_scrolling_sideways_by_choice[2560]
0.00s teardown tests/test_table.py::test_no_window_leaves_the_table_scrolling_sideways_by_choice[900]
0.00s teardown tests/test_table.py::test_a_column_goes_only_when_the_one_before_it_was_not_enough
0.00s teardown tests/test_table.py::test_the_server_refusal_is_shown_and_not_swallowed
0.00s teardown tests/test_table.py::test_every_control_on_the_create_form_has_a_name
0.00s teardown tests/test_table.py::test_the_gates_are_the_validator_s_own_and_not_a_second_copy
0.00s teardown tests/test_table.py::test_an_editable_cell_shows_it_and_a_derived_one_says_why_not
0.00s teardown tests/test_table.py::test_no_window_leaves_the_table_scrolling_sideways_by_choice[1280]
0.00s teardown tests/test_table.py::test_a_conflict_is_never_written_into_an_editable_cell
0.00s teardown tests/test_table.py::test_a_row_says_which_record_it_is_and_a_cell_says_which_field
0.00s teardown tests/test_table.py::test_a_row_that_belongs_to_nothing_is_never_offered_a_move
0.00s teardown tests/test_table.py::test_no_window_leaves_the_table_scrolling_sideways_by_choice[1101]
0.00s teardown tests/test_table.py::test_the_blocking_count_is_a_link_that_pluralises_and_mutes_at_zero
0.00s teardown tests/test_table.py::test_the_table_ends_in_a_row_that_makes_one
0.00s teardown tests/test_table.py::test_the_create_button_is_reachable_from_anywhere_in_the_form
0.00s teardown tests/test_table.py::test_the_table_sizes_itself_to_its_contents_and_the_window
0.00s teardown tests/test_table.py::test_creating_is_the_detail_page_with_nothing_in_it
0.00s teardown tests/test_table.py::test_no_window_leaves_the_table_scrolling_sideways_by_choice[1354]
0.00s call     tests/test_table.py::test_the_create_form_writes_only_fields_a_person_owns
0.00s teardown tests/test_table.py::test_the_table_draws_its_rows_in_a_browser_that_refuses_storage
0.00s teardown tests/test_table.py::test_the_columns_and_the_cells_agree_on_their_order
0.00s call     tests/test_cli.py::test_serve_listens_where_cloud_run_requires
0.00s call     tests/test_table.py::test_a_new_pitch_starts_from_the_teams_own_shaping_template
0.00s teardown tests/test_table.py::test_an_empty_table_says_which_of_the_three_empties_it_is
0.00s teardown tests/test_table.py::test_a_sortable_header_is_a_button_that_says_which_way_it_sorts
0.00s teardown tests/test_table.py::test_the_kind_picker_offers_every_rung_and_only_rungs
0.00s teardown tests/test_table.py::test_a_template_never_overwrites_something_somebody_typed
0.00s teardown tests/test_table.py::test_the_tags_cell_is_one_line_with_the_rest_behind_a_count
0.00s teardown tests/test_table.py::test_a_field_only_one_kind_has_is_absent_from_the_others
0.00s teardown tests/test_table.py::test_a_column_header_is_the_label_map_s_word_for_the_field
0.00s teardown tests/test_table.py::test_no_template_comment_reaches_the_page[/timeline]
0.00s teardown tests/test_table.py::test_the_create_page_is_the_record_page_in_a_mode
0.00s teardown tests/test_table.py::test_a_column_is_dragged_in_the_header_and_a_row_in_the_body
0.00s teardown tests/test_table.py::test_the_create_form_writes_only_fields_a_person_owns
0.00s teardown tests/test_table.py::test_the_page_carries_the_commit_it_was_rendered_at
0.00s call     tests/test_table.py::test_the_table_sizes_itself_to_its_contents_and_the_window
0.00s teardown tests/test_table.py::test_the_create_form_has_somewhere_to_put_the_server_refusal
0.00s teardown tests/test_table.py::test_assignees_is_a_column_and_a_filter_and_a_value
0.00s teardown tests/test_table.py::test_the_frozen_edge_is_painted_from_the_scroll_position
0.00s teardown tests/test_table.py::test_the_route_the_table_re_reads_is_the_payload_it_was_drawn_from
0.00s teardown tests/test_table.py::test_the_search_box_is_not_the_tenth_filter
0.00s teardown tests/test_table.py::test_a_dropdown_on_either_form_offers_words_and_stores_identifiers
0.00s teardown tests/test_table.py::test_a_committed_save_advances_the_page_base_commit
0.00s teardown tests/test_table.py::test_editing_the_table_pulled_in_no_library
0.00s teardown tests/test_table.py::test_a_write_refreshes_the_count_and_the_markers_in_place
0.00s call     tests/test_table.py::test_the_gates_are_the_validator_s_own_and_not_a_second_copy
0.00s teardown tests/test_table.py::test_the_fit_is_measured_again_once_the_real_typeface_has_landed
0.00s teardown tests/test_table.py::test_no_template_comment_reaches_the_page[/cycles]
0.00s teardown tests/test_table.py::test_a_status_is_a_chip_and_the_id_cell_holds_only_the_id
0.00s teardown tests/test_table.py::test_no_template_comment_reaches_the_page[/]
0.00s teardown tests/test_table.py::test_clearing_the_filters_is_a_button_and_never_a_form_field
0.00s teardown tests/test_table.py::test_no_template_comment_reaches_the_page[/people]
0.00s teardown tests/test_table.py::test_the_table_offers_a_way_to_create_a_record
0.00s teardown tests/test_table.py::test_the_form_says_which_fields_the_chosen_status_demands
0.00s teardown tests/test_table.py::test_the_kind_is_a_dropdown_and_switching_keeps_what_was_typed
0.00s call     tests/test_table.py::test_the_form_says_which_fields_the_chosen_status_demands
0.00s teardown tests/test_table.py::test_the_id_is_shown_and_is_never_a_control
0.00s teardown tests/test_table.py::test_one_edit_sends_exactly_one_field
0.00s teardown tests/test_table.py::test_the_create_form_offers_the_three_kinds_and_nothing_else
0.00s teardown tests/test_table.py::test_no_kind_is_given_a_rule_of_its_own
0.00s call     tests/test_status_gate.py::test_the_gate_the_table_asks_from_is_the_gate_the_server_enforces
0.00s call     tests/test_table.py::test_a_status_column_sorts_the_way_work_moves
0.00s setup    tests/test_cli.py::test_check_reports_warnings_without_failing
0.00s setup    tests/test_cli.py::test_the_vendored_static_directory_is_found_by_an_env_var
0.00s setup    tests/test_cli.py::test_the_container_says_where_it_is_running
0.00s setup    tests/test_cli.py::test_a_plan_that_reaches_the_end_of_the_calendar_still_renders
0.00s setup    tests/test_cli.py::test_a_signal_to_the_entrypoint_reaches_the_server
0.00s setup    tests/test_cli.py::test_check_exits_zero_when_only_warnings_remain
0.00s setup    tests/test_injection.py::test_every_html_get_route_is_in_the_census
0.00s call     tests/test_cli.py::test_the_writers_lock_is_not_copied_into_the_demo_repository
0.00s setup    tests/test_config.py::test_load_config_falls_back_to_defaults_with_no_config_directory
0.00s setup    tests/test_cli.py::test_the_writers_lock_is_not_copied_into_the_demo_repository
0.00s teardown tests/test_table.py::test_the_server_refuses_a_field_the_kind_does_not_have
0.00s setup    tests/test_table.py::test_the_draft_rows_marks_are_drawn
0.00s call     tests/test_injection.py::test_the_marker_corpus_really_holds_the_markers
0.00s setup    tests/test_cli.py::test_render_writes_the_three_pages
0.00s call     tests/test_table.py::test_the_id_is_shown_and_is_never_a_control
0.00s setup    tests/test_table.py::test_a_rendered_file_offers_no_row_to_type_into
0.00s setup    tests/test_table.py::test_a_row_that_names_no_reviewer_shows_the_ones_under_it
0.00s call     tests/test_cli.py::test_the_forwarded_scheme_is_trusted_only_where_it_was_configured
0.00s setup    tests/test_cli.py::test_a_file_that_is_not_a_plan_file_is_not_copied_either
0.00s call     tests/test_table.py::test_the_frozen_edge_is_painted_from_the_scroll_position
0.00s setup    tests/test_config.py::test_a_cycle_record_supersedes_the_dates_in_config
0.00s setup    tests/test_graph_layout.py::test_two_boxes_that_wait_on_each_other_are_ranked_by_the_majority
0.00s call     tests/test_table.py::test_the_bold_column_is_the_one_being_sorted_by
0.00s call     tests/test_table.py::test_editing_the_table_pulled_in_no_library
0.00s setup    tests/test_table.py::test_the_static_export_offers_no_editing_at_all
0.00s call     tests/test_table.py::test_the_create_form_names_neither_the_id_nor_the_path
0.00s call     tests/test_schedule.py::test_step7_one_item_per_worker_at_a_time_but_unowned_work_is_unlimited
0.00s call     tests/test_schedule.py::test_step9_finishing_after_the_cycle_builds_records_the_overrun_in_weeks
0.00s call     tests/test_table.py::test_only_a_cell_with_something_in_the_way_is_tinted
0.00s teardown tests/test_config.py::test_a_cycle_window_runs_from_the_betting_table_to_the_next_one
0.00s call     tests/test_cli.py::test_a_file_that_is_not_a_plan_file_is_not_copied_either
0.00s call     tests/test_table.py::test_the_kind_picker_offers_every_rung_and_only_rungs
0.00s call     tests/test_table.py::test_no_kind_is_given_a_rule_of_its_own
0.00s call     tests/test_schedule.py::test_two_things_one_person_is_already_doing_are_drawn_at_once
0.00s call     tests/test_table.py::test_the_search_box_is_not_the_tenth_filter
0.00s call     tests/test_schedule.py::test_a_pitch_level_dependency_delays_the_tasks_inside_the_dependent_pitch
0.00s call     tests/test_table.py::test_the_page_carries_the_commit_it_was_rendered_at
0.00s call     tests/test_table.py::test_the_status_control_offers_every_status_and_not_only_the_ones_in_use
0.00s call     tests/test_schedule.py::test_availability_stretches_the_work_of_whoever_is_slower
0.00s call     tests/test_schedule.py::test_a_dependency_is_inherited_down_the_whole_chain_not_just_one_level
0.00s call     tests/test_schedule.py::test_a_loop_that_only_inheritance_closes_costs_those_records_and_no_others
0.00s call     tests/test_table.py::test_the_create_form_has_somewhere_to_put_the_server_refusal
0.00s call     tests/test_schedule.py::test_an_inherited_blocker_is_named_in_the_explanation
0.00s call     tests/test_schedule.py::test_step5_ordering_is_by_priority_then_id
0.00s call     tests/test_cli.py::test_the_vendored_static_directory_is_found_by_an_env_var
0.00s call     tests/test_schedule.py::test_somebody_nobody_rated_works_at_the_nominal_rate
0.00s call     tests/test_table.py::test_the_fit_is_measured_again_once_the_real_typeface_has_landed
0.00s call     tests/test_schedule.py::test_regression_children_are_ordered_before_their_parent
0.00s call     tests/test_schedule.py::test_a_size_is_person_weeks_and_the_people_on_it_divide_it
0.00s call     tests/test_schedule.py::test_regression_a_parent_does_not_double_book_the_owner_of_its_only_child
0.00s call     tests/test_schedule.py::test_an_owner_who_is_also_an_assignee_is_one_person
0.00s call     tests/test_schedule.py::test_step8_a_parent_spans_from_its_first_child_to_its_last
0.00s call     tests/test_schedule.py::test_an_overrun_is_measured_against_build_and_not_against_cool_down
0.00s teardown tests/test_table.py::test_the_id_sort_draws_the_plan_depth_first
0.00s setup    tests/test_cli.py::test_check_exits_non_zero_when_the_repository_has_blockers
0.00s call     tests/test_schedule.py::test_a_worker_booked_to_the_end_of_the_calendar_does_not_spin
0.00s call     tests/test_schedule.py::test_a_record_too_large_for_the_calendar_is_unscheduled_and_says_why
0.00s call     tests/test_schedule.py::test_step6_a_leaf_waits_for_today_its_assignment_date_and_its_blockers
0.00s teardown tests/test_graph_layout.py::test_the_grouping_holds_on_a_plan_larger_than_the_real_one
0.00s call     tests/test_schedule.py::test_step2_a_dependency_cycle_leaves_its_members_and_descendants_unscheduled
0.00s call     tests/test_schedule.py::test_regression_depending_on_an_ancestor_is_rejected_and_degrades_gracefully
0.00s call     tests/test_schedule.py::test_a_done_date_at_the_end_of_the_calendar_costs_its_dependent_and_nothing_else
0.00s call     tests/test_schedule.py::test_step1_shelved_records_are_outside_the_graph_and_get_no_span
0.00s call     tests/test_schedule.py::test_regression_a_task_and_a_pitch_of_the_same_size_take_the_same_time
0.00s call     tests/test_schedule.py::test_a_size_that_is_not_a_number_is_one_bad_row[nan]
0.00s call     tests/test_schedule.py::test_a_worker_bound_start_is_explained_by_naming_the_worker
0.00s call     tests/test_schedule.py::test_a_size_that_is_not_a_number_is_one_bad_row[inf]
0.00s setup    tests/test_cli.py::test_schedule_accepts_an_explicit_today
0.00s setup    tests/test_cli.py::test_schedule_json_round_trips
0.00s call     tests/test_schedule.py::test_work_in_progress_starts_when_it_started_and_not_today
0.00s call     tests/test_schedule.py::test_a_blocker_bound_start_is_explained_by_naming_the_blocker
0.00s setup    tests/test_cli.py::test_the_demo_repository_goes_when_the_server_does
0.00s call     tests/test_schedule.py::test_step7_assignees_consume_capacity_and_are_not_unowned
0.00s call     tests/test_schedule.py::test_a_project_with_pitches_is_still_their_rollup
0.00s call     tests/test_schedule.py::test_a_project_with_no_pitches_draws_nothing
0.00s setup    tests/test_cli.py::test_the_shipped_demo_corpus_validates_clean
0.00s call     tests/test_schedule.py::test_step3_a_done_parent_stays_historical_even_with_a_live_child
0.00s call     tests/test_schedule.py::test_step5_a_cycle_closed_by_a_containment_edge_does_not_raise
0.00s call     tests/test_config.py::test_load_config_falls_back_to_defaults_with_no_config_directory
0.00s setup    tests/test_cli.py::test_demo_builds_a_repository_the_server_can_actually_serve
0.00s setup    tests/test_cli.py::test_the_demo_refuses_a_port_that_is_taken_before_it_says_where_to_look
0.00s setup    tests/test_cli.py::test_an_unknown_subcommand_fails_rather_than_doing_something
0.00s call     tests/test_schedule.py::test_regression_done_work_neither_occupies_the_future_nor_consumes_capacity
0.00s teardown tests/test_cli.py::test_the_demo_repository_goes_when_the_server_does
0.00s call     tests/test_schedule.py::test_unowned_work_is_one_notional_person_rather_than_a_division_by_zero
0.00s call     tests/test_schedule.py::test_step9_a_cycle_with_no_configured_dates_is_not_an_overrun
0.00s call     tests/test_schedule.py::test_step4_duration_is_the_stated_size_at_nominal_availability
0.00s teardown tests/test_cli.py::test_demo_builds_a_repository_the_server_can_actually_serve
0.00s call     tests/test_schedule.py::test_step6_a_past_assignment_date_does_not_pull_work_into_the_past
0.00s call     tests/test_config.py::test_a_cycle_stores_its_two_meetings_and_derives_the_rest
0.00s call     tests/test_config.py::test_the_build_is_measured_in_working_weeks_so_a_holiday_shortens_it
0.00s call     tests/test_schedule.py::test_step4_a_missing_size_falls_back_to_the_default_and_is_marked_estimated
0.00s call     tests/test_graph_layout.py::test_the_arrows_read_the_way_the_layout_was_asked_for
0.00s teardown tests/test_cli.py::test_a_plan_that_reaches_the_end_of_the_calendar_still_renders
0.00s call     tests/test_graph_layout.py::test_no_box_lies_across_another
0.00s call     tests/test_schedule.py::test_work_that_starts_today_needs_no_explanation
0.00s teardown tests/test_cli.py::test_schedule_accepts_an_explicit_today
0.00s teardown tests/test_cli.py::test_check_exits_non_zero_when_the_repository_has_blockers
0.00s setup    tests/test_injection.py::test_no_title_can_inline_a_library_a_second_time
0.00s call     tests/test_table.py::test_the_new_row_offers_the_fields_that_kind_has_and_no_others
0.00s teardown tests/test_card.py::test_the_document_is_drawn_under_the_fields
0.00s teardown tests/test_card.py::test_a_rendered_file_draws_a_card_with_no_server_to_ask
0.00s call     tests/test_config.py::test_the_cool_down_is_the_gap_to_the_next_betting_table_however_long_it_is
0.00s call     tests/test_config.py::test_a_review_before_its_own_betting_table_costs_that_cycle_and_no_others
0.00s setup    tests/test_schedule.py::test_a_size_that_is_not_a_number_is_one_bad_row[inf]
0.00s setup    tests/test_schedule.py::test_the_cycle_records_the_goldens_are_derived_against
0.00s call     tests/test_schedule.py::test_step3_done_work_is_a_historical_point_marker_or_no_span_at_all
0.00s teardown tests/test_graph_layout.py::test_the_two_key_rows_are_one_length_and_sit_on_the_drawing
0.00s teardown tests/test_cli.py::test_the_shipped_demo_corpus_validates_clean
0.00s teardown tests/test_cli.py::test_schedule_json_round_trips
0.00s teardown tests/test_card.py::test_a_box_answers_for_its_label_and_not_for_its_acres
0.00s teardown tests/test_card.py::test_the_card_arrives_in_one_piece
0.00s call     tests/test_config.py::test_a_cycle_window_runs_from_the_betting_table_to_the_next_one
0.00s teardown tests/test_card.py::test_the_card_can_be_reached_and_stays_while_the_pointer_is_in_it
0.00s teardown tests/test_injection.py::test_no_static_page_lets_a_field_become_markup
0.00s call     tests/test_schedule.py::test_a_week_is_five_working_days_ending_on_the_fifth
0.00s teardown tests/test_status_gate.py::test_a_status_that_needs_a_date_asks_for_it
0.00s teardown tests/test_table.py::test_the_header_fits_at_the_width_the_fit_may_squeeze_it_to
0.00s setup    tests/test_schedule.py::test_the_seed_corpus_schedules_to_the_golden_timeline
0.00s teardown tests/test_card.py::test_the_three_views_draw_the_same_card
0.00s teardown tests/test_card.py::test_the_card_says_the_things_a_row_does_not
0.00s call     tests/test_config.py::test_a_cycle_that_names_no_review_meeting_assumes_one_and_says_so
0.00s setup    tests/test_schedule.py::test_a_size_that_is_not_a_number_is_one_bad_row[nan]
0.00s teardown tests/test_table.py::test_the_header_and_the_frozen_pair_hold_when_the_rows_are_tall
0.00s call     tests/test_graph_layout.py::test_the_corpus_is_worth_measuring
0.00s teardown tests/test_graph_layout.py::test_two_boxes_that_wait_on_each_other_are_ranked_by_the_majority
0.00s teardown tests/test_graph_layout.py::test_the_corpus_is_worth_measuring
0.00s teardown tests/test_card.py::test_one_card_holds_one_document
0.00s call     tests/test_config.py::test_a_cycle_with_nothing_after_it_assumes_its_cool_down_and_says_so
0.00s setup    tests/test_schedule.py::test_the_seed_corpus_golden_overruns_and_flags
0.00s teardown tests/test_schedule.py::test_the_seed_corpus_schedules_to_the_golden_timeline
0.00s teardown tests/test_injection.py::test_no_served_page_lets_a_field_become_markup
0.00s teardown tests/test_card.py::test_a_refused_document_costs_the_document_and_nothing_else
0.00s teardown tests/test_card.py::test_a_document_that_arrives_late_is_not_drawn_on_the_wrong_card
0.00s call     tests/test_graph_layout.py::test_a_records_children_are_drawn_near_it
0.00s teardown tests/test_injection.py::test_the_combobox_popup_does_not_let_a_suggestion_become_markup[table]
0.00s teardown tests/test_cli.py::test_a_signal_to_the_entrypoint_reaches_the_server
0.00s teardown tests/test_injection.py::test_the_json_a_page_ships_reads_back_and_can_end_nothing
0.00s teardown tests/test_card.py::test_a_card_at_the_edge_of_the_window_stays_inside_it
0.00s call     tests/test_graph_layout.py::test_no_card_is_drawn_inside_a_group_it_does_not_belong_to
0.00s teardown tests/test_status_gate.py::test_a_row_that_has_what_the_status_wants_is_not_asked
0.00s call     tests/test_schedule.py::test_a_cool_down_longer_than_the_window_does_not_invert_the_build
0.00s call     tests/test_config.py::test_capacity_is_availability_times_the_build_weeks
0.00s teardown tests/test_card.py::test_the_document_is_fetched_on_hover_and_not_shipped_with_the_rows
0.00s setup    tests/test_cli.py::test_serve_listens_where_cloud_run_requires
0.00s teardown tests/test_status_gate.py::test_giving_up_on_the_question_changes_nothing
0.00s teardown tests/test_injection.py::test_adding_somebody_whose_name_holds_a_quote_does_not_break_the_button
0.00s teardown tests/test_injection.py::test_the_hover_card_does_not_let_a_field_become_markup
0.00s teardown tests/test_card.py::test_a_nine_hundred_word_document_does_not_cover_the_table
0.00s teardown tests/test_cli.py::test_render_writes_the_three_pages
0.00s teardown tests/test_card.py::test_a_pointer_passing_over_a_row_does_not_open_a_card
0.00s teardown tests/test_schedule.py::test_the_cycle_records_the_goldens_are_derived_against
0.00s teardown tests/test_injection.py::test_the_combobox_popup_does_not_let_a_suggestion_become_markup[new
0.00s teardown tests/test_injection.py::test_the_combobox_popup_does_not_let_a_suggestion_become_markup[one
0.00s teardown tests/test_injection.py::test_the_combobox_popup_does_not_let_a_suggestion_become_markup[cycle
0.00s teardown tests/test_status_gate.py::test_the_gate_the_table_asks_from_is_the_gate_the_server_enforces
0.00s setup    tests/test_cli.py::test_the_demo_leaves_the_corpus_it_was_built_from_exactly_as_it_found_it
0.00s teardown tests/test_injection.py::test_adding_somebody_to_a_cycle_does_not_let_the_name_become_markup
0.00s setup    tests/test_cli.py::test_the_forwarded_scheme_is_trusted_only_where_it_was_configured
0.00s teardown tests/test_injection.py::test_no_template_marks_a_value_safe
0.00s call     tests/test_config.py::test_a_cycle_dated_at_the_end_of_the_calendar_resolves_rather_than_raising
0.00s teardown tests/test_cli.py::test_check_reports_warnings_without_failing
0.00s teardown tests/test_cli.py::test_an_unknown_subcommand_fails_rather_than_doing_something
0.00s teardown tests/test_cli.py::test_the_demo_signs_you_in_as_somebody_the_plan_names
0.00s teardown tests/test_schedule.py::test_property_adding_an_item_that_shares_no_worker_and_no_ancestor_never_moves_that_items_span
0.00s teardown tests/test_injection.py::test_the_table_draws_its_rows_without_letting_a_field_become_markup
0.00s teardown tests/test_graph_layout.py::test_a_card_stays_where_it_was_dragged
0.00s teardown tests/test_table.py::test_the_column_control_opens_the_column_and_closes_it
0.00s teardown tests/test_cli.py::test_the_demo_is_drawn_around_the_day_its_own_corpus_calls_today
0.00s teardown tests/test_table.py::test_an_expanded_column_is_a_way_of_reading_and_not_a_setting
0.00s teardown tests/test_table.py::test_the_static_export_offers_no_editing_at_all
0.00s teardown tests/test_table.py::test_every_other_column_sorts_flat
0.00s teardown tests/test_cli.py::test_the_demo_leaves_the_corpus_it_was_built_from_exactly_as_it_found_it
0.00s teardown tests/test_table.py::test_a_rendered_file_offers_no_row_to_type_into
0.00s teardown tests/test_table.py::test_a_revealed_cell_can_be_put_back
0.00s teardown tests/test_graph_layout.py::test_the_arrows_read_the_way_the_layout_was_asked_for
0.00s teardown tests/test_schedule.py::test_the_seed_corpus_golden_overruns_and_flags
0.00s teardown tests/test_injection.py::test_the_fixture_really_is_hostile
0.00s teardown tests/test_injection.py::test_the_table_cell_editor_does_not_let_a_stored_value_become_markup
0.00s teardown tests/test_graph_layout.py::test_a_card_wears_both_its_marks_in_front_of_its_name
0.00s teardown tests/test_table.py::test_the_connector_that_ends_a_branch_is_the_last_row_drawn
0.00s teardown tests/test_table.py::test_a_row_kept_for_context_is_still_a_record
0.00s teardown tests/test_table.py::test_the_draft_rows_marks_are_drawn
0.00s setup    tests/test_schedule.py::test_configured_holidays_do_not_count
0.00s teardown tests/test_graph_layout.py::test_an_edge_that_crosses_a_card_is_drawn_under_it
0.00s call     tests/test_cli.py::test_a_plan_with_no_cycles_falls_back_to_the_real_today
0.00s teardown tests/test_schedule.py::test_property_no_dependent_ever_starts_before_its_blocker_has_finished
0.00s teardown tests/test_table.py::test_the_indent_never_takes_the_drop_target_with_it
0.00s teardown tests/test_table.py::test_a_row_that_names_no_reviewer_shows_the_ones_under_it
0.00s teardown tests/test_schedule.py::test_two_things_one_person_is_already_doing_are_drawn_at_once
0.00s teardown tests/test_table.py::test_a_filtered_table_keeps_the_tree_and_counts_only_the_answers
0.00s teardown tests/test_cli.py::test_the_demo_refuses_a_port_that_is_taken_before_it_says_where_to_look
0.00s teardown tests/test_injection.py::test_no_marker_string_reaches_a_served_page_as_anything_but_text
0.00s setup    tests/test_config.py::test_every_cycle_used_by_the_seed_corpus_has_boundaries
0.00s teardown tests/test_cli.py::test_the_container_says_where_it_is_running
0.00s teardown tests/test_graph_layout.py::test_no_box_lies_across_another
0.00s call     tests/test_schedule.py::test_weekends_do_not_count_and_a_weekend_start_rolls_forward
0.00s teardown tests/test_injection.py::test_no_page_is_assembled_by_substitution
0.00s setup    tests/test_cli.py::test_the_demo_signs_you_in_as_somebody_the_plan_names
0.00s teardown tests/test_graph_layout.py::test_no_card_is_drawn_inside_a_group_it_does_not_belong_to
0.00s call     tests/test_schedule.py::test_fractional_weeks_round_up_to_a_whole_day
0.00s setup    tests/test_config.py::test_problem_carries_the_rule_version_that_introduced_the_rule
0.00s teardown tests/test_injection.py::test_no_title_can_inline_a_library_a_second_time
0.00s setup    tests/test_cli.py::test_the_demo_is_drawn_around_the_day_its_own_corpus_calls_today
0.00s setup    tests/test_config.py::test_load_config_merges_the_three_seed_files
0.00s setup    tests/test_schedule.py::test_work_in_progress_starts_when_it_started_and_not_today
0.00s teardown tests/test_schedule.py::test_property_a_worker_never_holds_two_overlapping_spans
0.00s setup    tests/test_schedule.py::test_unowned_work_is_one_notional_person_rather_than_a_division_by_zero
0.00s teardown tests/test_cli.py::test_check_exits_zero_when_only_warnings_remain
0.00s teardown tests/test_schedule.py::test_fractional_weeks_round_up_to_a_whole_day
0.00s teardown tests/test_injection.py::test_every_html_get_route_is_in_the_census
0.00s teardown tests/test_cli.py::test_the_vendored_static_directory_is_found_by_an_env_var
0.00s teardown tests/test_graph_layout.py::test_a_records_children_are_drawn_near_it
0.00s teardown tests/test_schedule.py::test_a_size_is_person_weeks_and_the_people_on_it_divide_it
0.00s teardown tests/test_config.py::test_config_defaults_stand_alone
0.00s teardown tests/test_cli.py::test_serve_listens_where_cloud_run_requires
0.00s teardown tests/test_injection.py::test_no_marker_string_reaches_a_static_page_as_anything_but_text
0.00s teardown tests/test_cli.py::test_the_forwarded_scheme_is_trusted_only_where_it_was_configured
0.00s teardown tests/test_cli.py::test_the_writers_lock_is_not_copied_into_the_demo_repository
0.00s call     tests/test_config.py::test_config_defaults_stand_alone
0.00s setup    tests/test_table.py::test_the_blocking_count_names_the_population_its_link_opens
0.00s teardown tests/test_schedule.py::test_step6_a_past_assignment_date_does_not_pull_work_into_the_past
0.00s teardown tests/test_schedule.py::test_a_project_with_pitches_is_still_their_rollup
0.00s teardown tests/test_schedule.py::test_a_size_that_is_not_a_number_is_one_bad_row[inf]
0.00s call     tests/test_schedule.py::test_a_size_too_large_for_the_calendar_stops_at_the_last_day_it_can_name
0.00s teardown tests/test_schedule.py::test_regression_a_parent_does_not_double_book_the_owner_of_its_only_child
0.00s teardown tests/test_cli.py::test_a_plan_with_no_cycles_falls_back_to_the_real_today
0.00s call     tests/test_config.py::test_a_date_stops_at_the_end_of_the_calendar_rather_than_raising
0.00s teardown tests/test_schedule.py::test_configured_holidays_do_not_count
0.00s call     tests/test_config.py::test_problem_carries_the_rule_version_that_introduced_the_rule
0.00s teardown tests/test_schedule.py::test_step9_finishing_after_the_cycle_builds_records_the_overrun_in_weeks
0.00s teardown tests/test_schedule.py::test_step4_duration_is_the_stated_size_at_nominal_availability
0.00s teardown tests/test_schedule.py::test_a_dependency_is_inherited_down_the_whole_chain_not_just_one_level
0.00s teardown tests/test_schedule.py::test_step8_a_parent_spans_from_its_first_child_to_its_last
0.00s setup    tests/test_table.py::test_a_title_somebody_typed_never_becomes_markup
0.00s teardown tests/test_schedule.py::test_a_size_that_is_not_a_number_is_one_bad_row[nan]
0.00s teardown tests/test_config.py::test_load_config_merges_the_three_seed_files
0.00s setup    tests/test_schedule.py::test_property_a_worker_never_holds_two_overlapping_spans
0.00s call     tests/test_config.py::test_a_length_that_is_not_a_number_saturates_instead_of_raising
0.00s teardown tests/test_cli.py::test_a_file_that_is_not_a_plan_file_is_not_copied_either
0.00s teardown tests/test_config.py::test_a_length_that_is_not_a_number_saturates_instead_of_raising
0.00s teardown tests/test_config.py::test_load_config_falls_back_to_defaults_with_no_config_directory
0.00s teardown tests/test_schedule.py::test_a_worker_booked_to_the_end_of_the_calendar_does_not_spin
0.00s teardown tests/test_schedule.py::test_a_record_too_large_for_the_calendar_is_unscheduled_and_says_why
0.00s teardown tests/test_config.py::test_every_cycle_used_by_the_seed_corpus_has_boundaries
0.00s setup    tests/test_schedule.py::test_property_adding_an_item_that_shares_no_worker_and_no_ancestor_never_moves_that_items_span
0.00s setup    tests/test_schedule.py::test_step3_done_work_is_a_historical_point_marker_or_no_span_at_all
0.00s setup    tests/test_schedule.py::test_a_week_is_five_working_days_ending_on_the_fifth
0.00s teardown tests/test_schedule.py::test_an_inherited_blocker_is_named_in_the_explanation
0.00s setup    tests/test_schedule.py::test_an_overrun_is_measured_against_build_and_not_against_cool_down
0.00s setup    tests/test_schedule.py::test_step8_a_parent_spans_from_its_first_child_to_its_last
0.00s teardown tests/test_config.py::test_a_cycle_record_supersedes_the_dates_in_config
0.00s setup    tests/test_injection.py::test_every_page_carries_exactly_one_escaper
0.00s teardown tests/test_cli.py::test_serve_is_reachable_from_the_command_line
0.00s teardown tests/test_schedule.py::test_a_cool_down_longer_than_the_window_does_not_invert_the_build
0.00s teardown tests/test_schedule.py::test_a_done_date_at_the_end_of_the_calendar_costs_its_dependent_and_nothing_else
0.00s teardown tests/test_schedule.py::test_a_project_with_no_pitches_draws_nothing
0.00s setup    tests/test_cli.py::test_serve_is_reachable_from_the_command_line
0.00s teardown tests/test_schedule.py::test_a_pitch_level_dependency_delays_the_tasks_inside_the_dependent_pitch
0.00s teardown tests/test_schedule.py::test_step1_shelved_records_are_outside_the_graph_and_get_no_span
0.00s setup    tests/test_injection.py::test_no_vendored_library_can_end_the_block_it_is_written_into
0.00s setup    tests/test_schedule.py::test_a_cool_down_longer_than_the_window_does_not_invert_the_build
0.00s setup    tests/test_cli.py::test_a_plan_with_no_cycles_falls_back_to_the_real_today
0.00s teardown tests/test_schedule.py::test_a_size_that_only_just_fits_is_still_walked_exactly
0.00s teardown tests/test_config.py::test_the_cool_down_is_the_gap_to_the_next_betting_table_however_long_it_is
0.00s teardown tests/test_schedule.py::test_a_week_is_five_working_days_ending_on_the_fifth
0.00s teardown tests/test_schedule.py::test_regression_depending_on_an_ancestor_is_rejected_and_degrades_gracefully
0.00s teardown tests/test_schedule.py::test_step7_assignees_consume_capacity_and_are_not_unowned
0.00s teardown tests/test_injection.py::test_the_marker_corpus_really_holds_the_markers
0.00s teardown tests/test_schedule.py::test_availability_stretches_the_work_of_whoever_is_slower
0.00s teardown tests/test_schedule.py::test_an_owner_who_is_also_an_assignee_is_one_person
0.00s teardown tests/test_table.py::test_a_title_somebody_typed_never_becomes_markup
0.00s teardown tests/test_schedule.py::test_step2_a_dependency_cycle_leaves_its_members_and_descendants_unscheduled
0.00s teardown tests/test_schedule.py::test_regression_a_task_and_a_pitch_of_the_same_size_take_the_same_time
0.00s teardown tests/test_schedule.py::test_work_that_starts_today_needs_no_explanation
0.00s teardown tests/test_injection.py::test_every_page_carries_exactly_one_escaper
0.00s teardown tests/test_schedule.py::test_step7_one_item_per_worker_at_a_time_but_unowned_work_is_unlimited
0.00s setup    tests/test_injection.py::test_the_json_a_page_ships_reads_back_and_can_end_nothing
0.00s teardown tests/test_schedule.py::test_a_blocker_bound_start_is_explained_by_naming_the_blocker
0.00s teardown tests/test_schedule.py::test_regression_children_are_ordered_before_their_parent
0.00s teardown tests/test_schedule.py::test_unowned_work_is_one_notional_person_rather_than_a_division_by_zero
0.00s teardown tests/test_schedule.py::test_an_overrun_is_measured_against_build_and_not_against_cool_down
0.00s teardown tests/test_schedule.py::test_a_size_too_large_for_the_calendar_stops_at_the_last_day_it_can_name
0.00s teardown tests/test_schedule.py::test_step6_a_leaf_waits_for_today_its_assignment_date_and_its_blockers
0.00s teardown tests/test_schedule.py::test_step4_a_missing_size_falls_back_to_the_default_and_is_marked_estimated
0.00s teardown tests/test_schedule.py::test_step5_ordering_is_by_priority_then_id
0.00s teardown tests/test_schedule.py::test_step5_a_cycle_closed_by_a_containment_edge_does_not_raise
0.00s setup    tests/test_table.py::test_the_new_row_offers_the_fields_that_kind_has_and_no_others
0.00s teardown tests/test_schedule.py::test_step3_a_done_parent_stays_historical_even_with_a_live_child
0.00s teardown tests/test_schedule.py::test_a_worker_bound_start_is_explained_by_naming_the_worker
0.00s teardown tests/test_schedule.py::test_weekends_do_not_count_and_a_weekend_start_rolls_forward
0.00s teardown tests/test_schedule.py::test_step3_done_work_is_a_historical_point_marker_or_no_span_at_all
0.00s teardown tests/test_schedule.py::test_a_loop_that_only_inheritance_closes_costs_those_records_and_no_others
0.00s teardown tests/test_schedule.py::test_regression_done_work_neither_occupies_the_future_nor_consumes_capacity
0.00s teardown tests/test_schedule.py::test_somebody_nobody_rated_works_at_the_nominal_rate
0.00s setup    tests/test_schedule.py::test_regression_a_parent_does_not_double_book_the_owner_of_its_only_child
0.00s teardown tests/test_schedule.py::test_step9_a_cycle_with_no_configured_dates_is_not_an_overrun
0.00s setup    tests/test_schedule.py::test_a_record_too_large_for_the_calendar_is_unscheduled_and_says_why
0.00s setup    tests/test_config.py::test_a_cycle_stores_its_two_meetings_and_derives_the_rest
0.00s setup    tests/test_injection.py::test_no_template_marks_a_value_safe
0.00s teardown tests/test_schedule.py::test_work_in_progress_starts_when_it_started_and_not_today
0.00s setup    tests/test_injection.py::test_the_marker_corpus_really_holds_the_markers
0.00s teardown tests/test_table.py::test_the_blocking_count_names_the_population_its_link_opens
0.00s setup    tests/test_schedule.py::test_a_size_too_large_for_the_calendar_stops_at_the_last_day_it_can_name
0.00s setup    tests/test_schedule.py::test_a_worker_booked_to_the_end_of_the_calendar_does_not_spin
0.00s setup    tests/test_schedule.py::test_step1_shelved_records_are_outside_the_graph_and_get_no_span
0.00s setup    tests/test_config.py::test_a_cycle_that_names_no_review_meeting_assumes_one_and_says_so
0.00s setup    tests/test_config.py::test_a_cycle_with_nothing_after_it_assumes_its_cool_down_and_says_so
0.00s setup    tests/test_schedule.py::test_a_dependency_is_inherited_down_the_whole_chain_not_just_one_level
0.00s teardown tests/test_config.py::test_a_cycle_with_nothing_after_it_assumes_its_cool_down_and_says_so
0.00s setup    tests/test_schedule.py::test_step2_a_dependency_cycle_leaves_its_members_and_descendants_unscheduled
0.00s setup    tests/test_schedule.py::test_a_done_date_at_the_end_of_the_calendar_costs_its_dependent_and_nothing_else
0.00s teardown tests/test_config.py::test_a_cycle_stores_its_two_meetings_and_derives_the_rest
0.00s setup    tests/test_schedule.py::test_a_project_with_pitches_is_still_their_rollup
0.00s setup    tests/test_schedule.py::test_a_blocker_bound_start_is_explained_by_naming_the_blocker
0.00s setup    tests/test_schedule.py::test_an_inherited_blocker_is_named_in_the_explanation
0.00s setup    tests/test_schedule.py::test_weekends_do_not_count_and_a_weekend_start_rolls_forward
0.00s setup    tests/test_schedule.py::test_step9_finishing_after_the_cycle_builds_records_the_overrun_in_weeks
0.00s teardown tests/test_config.py::test_problem_carries_the_rule_version_that_introduced_the_rule
0.00s setup    tests/test_schedule.py::test_somebody_nobody_rated_works_at_the_nominal_rate
0.00s teardown tests/test_config.py::test_a_cycle_that_names_no_review_meeting_assumes_one_and_says_so
0.00s setup    tests/test_schedule.py::test_availability_stretches_the_work_of_whoever_is_slower
0.00s setup    tests/test_schedule.py::test_a_loop_that_only_inheritance_closes_costs_those_records_and_no_others
0.00s setup    tests/test_schedule.py::test_step7_one_item_per_worker_at_a_time_but_unowned_work_is_unlimited
0.00s teardown tests/test_config.py::test_the_build_is_measured_in_working_weeks_so_a_holiday_shortens_it
0.00s setup    tests/test_config.py::test_a_cycle_dated_at_the_end_of_the_calendar_resolves_rather_than_raising
0.00s setup    tests/test_schedule.py::test_a_pitch_level_dependency_delays_the_tasks_inside_the_dependent_pitch
0.00s setup    tests/test_schedule.py::test_two_things_one_person_is_already_doing_are_drawn_at_once
0.00s setup    tests/test_schedule.py::test_step7_assignees_consume_capacity_and_are_not_unowned
0.00s setup    tests/test_injection.py::test_no_page_is_assembled_by_substitution
0.00s setup    tests/test_schedule.py::test_a_size_that_only_just_fits_is_still_walked_exactly
0.00s setup    tests/test_schedule.py::test_a_project_with_no_pitches_draws_nothing
0.00s setup    tests/test_config.py::test_a_date_stops_at_the_end_of_the_calendar_rather_than_raising
0.00s setup    tests/test_schedule.py::test_regression_depending_on_an_ancestor_is_rejected_and_degrades_gracefully
0.00s setup    tests/test_schedule.py::test_regression_done_work_neither_occupies_the_future_nor_consumes_capacity
0.00s setup    tests/test_schedule.py::test_step4_a_missing_size_falls_back_to_the_default_and_is_marked_estimated
0.00s setup    tests/test_config.py::test_the_build_is_measured_in_working_weeks_so_a_holiday_shortens_it
0.00s setup    tests/test_config.py::test_capacity_is_availability_times_the_build_weeks
0.00s setup    tests/test_schedule.py::test_an_owner_who_is_also_an_assignee_is_one_person
0.00s setup    tests/test_config.py::test_a_cycle_window_runs_from_the_betting_table_to_the_next_one
0.00s teardown tests/test_config.py::test_a_cycle_dated_at_the_end_of_the_calendar_resolves_rather_than_raising
0.00s setup    tests/test_schedule.py::test_a_size_is_person_weeks_and_the_people_on_it_divide_it
0.00s setup    tests/test_schedule.py::test_step4_duration_is_the_stated_size_at_nominal_availability
0.00s setup    tests/test_config.py::test_config_defaults_stand_alone
0.00s setup    tests/test_config.py::test_the_cool_down_is_the_gap_to_the_next_betting_table_however_long_it_is
0.00s setup    tests/test_schedule.py::test_step5_ordering_is_by_priority_then_id
0.00s teardown tests/test_config.py::test_capacity_is_availability_times_the_build_weeks
0.00s setup    tests/test_schedule.py::test_step6_a_leaf_waits_for_today_its_assignment_date_and_its_blockers
0.00s setup    tests/test_schedule.py::test_regression_a_task_and_a_pitch_of_the_same_size_take_the_same_time
0.00s teardown tests/test_config.py::test_a_review_before_its_own_betting_table_costs_that_cycle_and_no_others
0.00s setup    tests/test_config.py::test_a_review_before_its_own_betting_table_costs_that_cycle_and_no_others
0.00s setup    tests/test_schedule.py::test_property_no_dependent_ever_starts_before_its_blocker_has_finished
0.00s setup    tests/test_schedule.py::test_regression_children_are_ordered_before_their_parent
0.00s setup    tests/test_schedule.py::test_fractional_weeks_round_up_to_a_whole_day
0.00s setup    tests/test_schedule.py::test_work_that_starts_today_needs_no_explanation
0.00s setup    tests/test_schedule.py::test_step6_a_past_assignment_date_does_not_pull_work_into_the_past
0.00s setup    tests/test_schedule.py::test_step9_a_cycle_with_no_configured_dates_is_not_an_overrun
0.00s setup    tests/test_config.py::test_a_length_that_is_not_a_number_saturates_instead_of_raising
0.00s setup    tests/test_schedule.py::test_a_worker_bound_start_is_explained_by_naming_the_worker
0.00s setup    tests/test_schedule.py::test_step5_a_cycle_closed_by_a_containment_edge_does_not_raise
0.00s setup    tests/test_schedule.py::test_step3_a_done_parent_stays_historical_even_with_a_live_child
0.00s teardown tests/test_table.py::test_the_new_row_offers_the_fields_that_kind_has_and_no_others
0.00s teardown tests/test_config.py::test_a_date_stops_at_the_end_of_the_calendar_rather_than_raising

# --- suite (coedit) ---
6.77s call     tests/test_coedit.py::test_an_edit_across_an_emoji_reaches_the_room_through_the_adapter[a
4.15s call     tests/test_coedit.py::test_a_commit_never_deletes_what_was_typed_during_it
4.14s call     tests/test_coedit.py::test_one_member_who_stops_reading_freezes_nobody
4.09s call     tests/test_coedit.py::test_a_room_emptied_by_an_eviction_is_still_committed
4.03s call     tests/test_coedit.py::test_a_socket_re_reads_the_session_it_was_opened_with
2.73s call     tests/test_coedit.py::test_what_is_held_for_a_member_who_never_reads_is_bounded
2.47s call     tests/test_coedit.py::test_two_editors_in_one_room_over_a_body_with_crlf_in_it_settle_on_one_document
2.03s call     tests/test_coedit.py::test_a_write_that_fails_is_a_refusal_and_not_an_escape
2.02s call     tests/test_coedit.py::test_the_timer_survives_a_failure_the_tuple_does_not_name
2.02s call     tests/test_coedit.py::test_a_refused_room_tries_again_on_the_next_window
1.61s call     tests/test_seats.py::test_a_seat_band_lands_on_the_right_line_on_the_second_surface
1.42s call     tests/test_coedit.py::test_undo_never_takes_back_something_somebody_else_typed
1.38s call     tests/test_coedit.py::test_a_substitution_over_a_whole_document_is_announced_before_it_is_sent
1.38s call     tests/test_seats.py::test_typing_above_somebody_does_not_move_their_band_on_the_second_surface
1.37s call     tests/test_coedit.py::test_opening_the_second_surface_changes_no_byte_of_the_document
1.36s call     tests/test_coedit.py::test_a_tab_that_is_only_watching_the_second_surface_is_credited_zero_characters
1.36s call     tests/test_coedit.py::test_backspacing_a_whole_glyph_in_the_second_surface_leaves_both_copies_agreeing[one
1.34s call     tests/test_coedit.py::test_an_edit_in_the_second_surface_reaches_the_room_as_the_character_it_was[a
1.34s call     tests/test_coedit.py::test_backspacing_a_whole_glyph_in_the_second_surface_leaves_both_copies_agreeing[one
1.33s call     tests/test_coedit.py::test_an_edit_in_the_second_surface_reaches_the_room_as_the_character_it_was[a
1.33s call     tests/test_coedit.py::test_backspacing_a_whole_glyph_in_the_second_surface_leaves_both_copies_agreeing[one
1.32s call     tests/test_seats.py::test_the_second_surface_draws_where_everybody_is
1.31s call     tests/test_coedit.py::test_an_edit_in_the_second_surface_reaches_the_room_as_the_character_it_was[the
1.31s call     tests/test_seats.py::test_a_seat_band_lands_on_the_right_line_at_a_width_that_wraps
1.31s call     tests/test_coedit.py::test_an_edit_in_the_second_surface_reaches_the_room_as_the_character_it_was[an
1.30s call     tests/test_coedit.py::test_an_edit_in_the_second_surface_reaches_the_room_as_the_character_it_was[an
1.30s call     tests/test_seats.py::test_a_login_cannot_write_css_into_the_band_it_is_drawn_in
1.29s call     tests/test_coedit.py::test_an_edit_in_the_second_surface_reaches_the_room_as_the_character_it_was[backspacing
1.18s call     tests/test_coedit.py::test_the_history_buttons_answer_the_keyboard_and_say_when_a_stack_is_empty
1.17s teardown tests/test_coedit.py::test_a_room_emptied_by_an_eviction_is_still_committed
1.16s call     tests/test_seats.py::test_somebody_elses_keystroke_leaves_the_numbers_counting_the_document_there_is_now
1.16s call     tests/test_seats.py::test_two_people_get_two_colours_and_two_places
1.16s call     tests/test_seats.py::test_the_next_session_is_one_seat_not_two
1.15s call     tests/test_coedit.py::test_an_edit_across_an_emoji_reaches_the_room_through_the_adapter[an
1.15s teardown tests/test_coedit.py::test_what_is_held_for_a_member_who_never_reads_is_bounded
1.15s teardown tests/test_coedit.py::test_one_member_who_stops_reading_freezes_nobody
1.14s call     tests/test_payload.py::test_a_size_somebody_hand_edited_does_not_empty_the_table[.inf]
1.14s call     tests/test_coedit.py::test_an_edit_across_an_emoji_reaches_the_room_through_the_adapter[the
1.14s call     tests/test_coedit.py::test_an_edit_across_an_emoji_reaches_the_room_through_the_adapter[backspacing
1.14s call     tests/test_seats.py::test_nobody_is_drawn_a_band_for_themselves
1.13s call     tests/test_seats.py::test_typing_above_somebody_does_not_move_their_band
1.13s call     tests/test_payload.py::test_a_size_somebody_hand_edited_does_not_empty_the_table[-.inf]
1.12s call     tests/test_seats.py::test_the_room_draws_a_band_where_somebody_else_is
1.12s call     tests/test_coedit.py::test_somebody_elses_keystroke_is_reflected_and_never_sent_back
1.11s call     tests/test_coedit.py::test_an_edit_across_an_emoji_reaches_the_room_through_the_adapter[a
1.10s call     tests/test_payload.py::test_a_size_somebody_hand_edited_does_not_empty_the_table[.nan]
1.10s call     tests/test_coedit.py::test_a_carriage_return_in_a_room_is_a_thing_the_box_cannot_hold
1.10s call     tests/test_coedit.py::test_undo_in_a_room_gives_back_your_own_last_thing_on_the_textarea
1.09s call     tests/test_seats.py::test_a_reader_holds_no_seat
1.08s call     tests/test_coedit.py::test_an_edit_across_an_emoji_reaches_the_room_through_the_adapter[an
1.08s call     tests/test_coedit.py::test_an_edit_across_an_emoji_reaches_the_room_through_the_adapter[a
1.07s call     tests/test_seats.py::test_this_tab_says_where_it_is_sitting
1.05s call     tests/test_coedit.py::test_a_real_browser_opens_the_socket_under_this_policy_and_draws_the_room
1.00s call     tests/test_web.py::test_a_record_page_goes_back_to_the_view_a_real_browser_came_from
0.94s call     tests/test_coedit.py::test_a_draft_against_a_room_that_has_moved_is_reported_and_not_thrown_away
0.79s call     tests/test_web.py::test_one_save_does_not_stop_the_rest_of_the_process
0.75s call     tests/test_coedit.py::test_a_restored_draft_survives_the_welcome_and_is_offered_to_the_room
0.40s call     tests/test_coedit.py::test_a_member_who_is_behind_but_still_reading_is_not_given_up_on
0.30s call     tests/test_coedit.py::test_a_member_who_never_reads_is_given_up_on
0.21s call     tests/test_writes.py::test_every_page_that_writes_reads_a_conflict_the_same_way[graph]
0.21s call     tests/test_coedit.py::test_the_page_stops_saving_when_the_room_says_there_was_nothing_to_save
0.20s call     tests/test_writes.py::test_every_page_that_writes_says_the_whole_sentence_a_forked_plan_answers[graph]
0.20s teardown tests/test_web.py::test_a_record_page_goes_back_to_the_view_a_real_browser_came_from
0.18s call     tests/test_writes.py::test_the_two_list_forms_say_it_too
0.14s call     tests/test_validate.py::test_check_over_the_seed_corpus_prints_exactly_the_validated_problems
0.14s call     tests/test_coedit.py::test_the_static_export_carries_no_socket
0.13s teardown tests/test_web.py::test_a_delete_tells_the_open_pages_which_record_went
0.13s teardown tests/test_web.py::test_a_write_is_broadcast_to_everybody_watching
0.13s call     tests/test_web.py::test_only_the_named_are_in_a_cycle
0.13s call     tests/test_web.py::test_every_route_says_which_nav_item_it_is
0.12s call     tests/test_coedit.py::test_an_edit_across_an_emoji_reaches_the_room_as_the_character_it_was[a
0.12s call     tests/test_coedit.py::test_an_edit_across_an_emoji_reaches_the_room_as_the_character_it_was[backspacing
0.12s call     tests/test_coedit.py::test_the_served_detail_page_carries_the_room_and_no_other_page_does
0.12s call     tests/test_coedit.py::test_an_edit_across_an_emoji_reaches_the_room_as_the_character_it_was[the
0.12s teardown tests/test_coedit.py::test_a_restored_draft_survives_the_welcome_and_is_offered_to_the_room
0.12s teardown tests/test_coedit.py::test_a_draft_against_a_room_that_has_moved_is_reported_and_not_thrown_away
0.12s call     tests/test_coedit.py::test_saving_in_a_room_leaves_the_read_view_showing_what_was_saved
0.12s call     tests/test_web.py::test_an_icon_is_one_of_the_ones_the_picker_offers
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_coedit.py::test_an_edit_across_an_emoji_reaches_the_room_as_the_character_it_was[an
0.12s teardown tests/test_coedit.py::test_a_commit_never_deletes_what_was_typed_during_it
0.12s setup    tests/test_coedit.py::test_one_member_who_stops_reading_freezes_nobody
0.12s setup    tests/test_web.py::test_a_record_that_merely_depends_on_this_one_keeps_its_file
0.11s call     tests/test_coedit.py::test_what_the_room_said_about_a_save_survives_the_reload
0.11s setup    tests/test_web.py::test_a_record_whose_filename_carries_a_slug_is_still_found
0.11s setup    tests/test_coedit.py::test_two_sessions_converge_on_the_same_text
0.11s call     tests/test_coedit.py::test_the_parsed_editing_surface_answers_the_body_the_server_rendered
0.11s call     tests/test_writes.py::test_every_page_that_writes_says_the_whole_sentence_a_forked_plan_answers[detail]
0.11s call     tests/test_coedit.py::test_a_socket_that_keeps_dropping_gives_up_even_when_nobody_says_why
0.11s setup    tests/test_web.py::test_a_request_body_that_is_not_json_is_refused_rather_than_raised[POST-/api/preview]
0.11s teardown tests/test_coedit.py::test_a_real_browser_opens_the_socket_under_this_policy_and_draws_the_room
0.11s call     tests/test_coedit.py::test_a_socket_the_server_turns_away_is_not_asked_again
0.11s setup    tests/test_web.py::test_a_cycle_number_no_save_would_accept_is_not_a_page[-1]
0.10s call     tests/test_coedit.py::test_the_page_degrades_to_todays_editor_when_the_socket_never_opens
0.10s call     tests/test_writes.py::test_every_page_that_writes_reads_a_conflict_the_same_way[detail]
0.10s call     tests/test_web.py::test_the_parse_cache_survives_readers_arriving_at_once
0.10s call     tests/test_payload.py::test_no_page_ships_a_data_block_that_is_not_json[render_graph-.inf]
0.10s setup    tests/test_web.py::test_a_base_this_repository_never_had_is_refused_rather_than_raised[]
0.10s setup    tests/test_writes.py::test_a_server_fault_gives_the_cycle_page_back
0.10s call     tests/test_writes.py::test_the_tables_conflict_banner_goes_when_the_next_save_lands
0.10s call     tests/test_writes.py::test_a_conflict_creating_a_record_is_not_printed_as_refused
0.09s setup    tests/test_web.py::test_no_page_declares_one_name_twice[/deck/37]
0.09s call     tests/test_writes.py::test_every_page_that_writes_says_the_whole_sentence_a_forked_plan_answers[new]
0.09s call     tests/test_writes.py::test_every_page_that_writes_reads_a_conflict_the_same_way[new]
0.09s setup    tests/test_seats.py::test_the_room_draws_a_band_where_somebody_else_is
0.09s setup    tests/test_seats.py::test_a_login_cannot_write_css_into_the_band_it_is_drawn_in
0.09s call     tests/test_coedit.py::test_a_restart_loses_nothing_that_was_committed
0.09s setup    tests/test_seats.py::test_the_second_surface_draws_where_everybody_is
0.09s setup    tests/test_seats.py::test_the_next_session_is_one_seat_not_two
0.09s setup    tests/test_seats.py::test_two_people_get_two_colours_and_two_places
0.09s setup    tests/test_seats.py::test_nobody_is_drawn_a_band_for_themselves
0.09s setup    tests/test_seats.py::test_a_reader_holds_no_seat
0.09s setup    tests/test_seats.py::test_typing_above_somebody_does_not_move_their_band_on_the_second_surface
0.09s setup    tests/test_seats.py::test_typing_above_somebody_does_not_move_their_band
0.09s setup    tests/test_seats.py::test_this_tab_says_where_it_is_sitting
0.09s setup    tests/test_seats.py::test_somebody_elses_keystroke_leaves_the_numbers_counting_the_document_there_is_now
0.09s setup    tests/test_seats.py::test_a_seat_band_lands_on_the_right_line_on_the_second_surface
0.09s setup    tests/test_seats.py::test_a_seat_band_lands_on_the_right_line_at_a_width_that_wraps
0.09s call     tests/test_coedit.py::test_the_two_implementations_agree_about_a_body_that_is_not_ascii
0.09s call     tests/test_writes.py::test_every_page_that_writes_reads_a_conflict_the_same_way[table]
0.08s call     tests/test_writes.py::test_every_page_that_writes_says_the_whole_sentence_a_forked_plan_answers[table]
0.08s call     tests/test_web.py::test_health_clears_itself_when_the_fork_does_and_needs_no_restart
0.08s call     tests/test_writes.py::test_a_save_addresses_the_row_it_was_pressed_on
0.07s call     tests/test_writes.py::test_a_refused_pick_leaves_the_list_open_with_the_reason_beside_it
0.07s call     tests/test_validate.py::test_the_seed_corpus_reports_exactly_this_problem_set
0.07s call     tests/test_web.py::test_health_counts_the_commits_that_are_only_on_this_disk
0.07s call     tests/test_web.py::test_health_says_no_when_this_disk_and_the_plan_have_forked
0.07s call     tests/test_writes.py::test_a_pick_made_with_the_keyboard_is_sent_stored_and_shown
0.07s call     tests/test_writes.py::test_the_listbox_opens_moves_under_the_arrows_and_closes_on_escape
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_coedit.py::test_a_room_emptied_by_an_eviction_is_still_committed
0.07s setup    tests/test_coedit.py::test_an_overlap_is_still_the_same_refusal_it_has_always_been
0.07s setup    tests/test_coedit.py::test_a_commit_never_deletes_what_was_typed_during_it
0.07s setup    tests/test_coedit.py::test_what_is_held_for_a_member_who_never_reads_is_bounded
0.06s setup    tests/test_coedit.py::test_a_draft_against_a_room_that_has_moved_is_reported_and_not_thrown_away
0.06s setup    tests/test_coedit.py::test_a_real_browser_opens_the_socket_under_this_policy_and_draws_the_room
0.06s call     tests/test_writes.py::test_a_forked_plan_gives_the_page_back_and_says_why
0.06s call     tests/test_web.py::test_every_write_route_answers_a_sentence_when_the_plan_has_forked
0.06s call     tests/test_writes.py::test_the_words_the_server_refused_with_are_the_words_on_the_page
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_an_availability_that_is_not_a_number_is_refused_rather_than_dropped[0]
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_a_conflict_saving_the_setup_says_what_moved
0.06s call     tests/test_writes.py::test_a_server_fault_gives_the_cycle_page_back
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_a_conflict_on_a_bet_says_what_moved
0.06s call     tests/test_writes.py::test_the_same_refusal_twice_is_still_read_out
0.06s call     tests/test_writes.py::test_every_page_that_writes_says_the_whole_sentence_a_forked_plan_answers[cycle]
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_an_availability_that_is_not_a_number_is_refused_rather_than_dropped[]
0.06s call     tests/test_writes.py::test_an_availability_that_is_not_a_number_is_refused_rather_than_dropped[half]
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_writes.py::test_every_page_that_writes_reads_a_conflict_the_same_way[cycle]
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_web.py::test_a_write_is_broadcast_to_everybody_watching
0.05s setup    tests/test_web.py::test_every_write_route_answers_a_sentence_when_the_plan_has_forked
0.05s call     tests/test_payload.py::test_every_page_still_serves_when_a_file_carries_such_a_size[.nan]
0.05s setup    tests/test_web.py::test_the_refused_write_says_what_to_do_and_the_room_still_says_its_half
0.05s call     tests/test_writes.py::test_every_page_that_writes_says_the_whole_sentence_a_forked_plan_answers[cycles]
0.05s setup    tests/test_web.py::test_a_forked_plan_is_not_spelled_as_the_code_the_pages_read_as_a_conflict
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_web.py::test_a_save_to_a_record_neither_side_touched_is_refused_in_words
0.05s call     tests/test_writes.py::test_every_page_that_writes_reads_a_conflict_the_same_way[cycles]
0.05s call     tests/test_web.py::test_a_committed_size_larger_than_the_calendar_leaves_every_page_readable
0.05s call     tests/test_web.py::test_a_delete_tells_the_open_pages_which_record_went
0.05s call     tests/test_web.py::test_a_committed_parent_that_names_nothing_leaves_every_page_readable
0.05s call     tests/test_coedit.py::test_the_servers_update_lands_in_the_vendored_yjs
0.05s call     tests/test_coedit.py::test_the_vendored_yjs_and_the_server_write_the_same_seed
0.05s call     tests/test_coedit.py::test_an_update_from_the_vendored_yjs_lands_in_the_servers_document
0.04s call     tests/test_web.py::test_an_edited_record_is_read_again_rather_than_remembered
0.04s call     tests/test_web.py::test_a_record_the_server_could_not_read_back_is_never_committed[owner-value0]
0.04s call     tests/test_web.py::test_a_write_is_seen_by_the_very_next_read
0.04s call     tests/test_web.py::test_nothing_edits_a_record_after_it_has_been_parsed
0.04s call     tests/test_web.py::test_a_save_cannot_make_a_record_wait_for_itself
0.04s call     tests/test_web.py::test_every_write_answer_says_whether_the_commit_reached_the_remote
0.04s call     tests/test_remote.py::test_a_write_that_has_returned_is_already_in_the_remote
0.04s call     tests/test_web.py::test_the_health_route_never_reaches_the_network
0.04s call     tests/test_web.py::test_a_carried_item_cannot_be_re_stamped_from_the_cycle_page
0.04s call     tests/test_web.py::test_a_cycle_record_longer_than_the_calendar_leaves_every_page_readable
0.04s call     tests/test_web.py::test_every_write_a_page_makes_is_announced_before_and_after_it[/graph]
0.04s call     tests/test_web.py::test_the_refused_write_says_what_to_do_and_the_room_still_says_its_half
0.04s call     tests/test_web.py::test_no_page_declares_one_name_twice[/graph]
0.04s call     tests/test_web.py::test_a_cycle_card_says_the_bet_against_the_capacity
0.04s call     tests/test_web.py::test_every_cycle_the_plan_names_is_on_the_index
0.04s call     tests/test_web.py::test_all_five_kinds_are_read_through_the_one_cache
0.04s call     tests/test_web.py::test_two_people_changing_different_fields_of_one_record_are_merged
0.04s call     tests/test_web.py::test_a_record_the_server_could_not_read_back_is_never_committed[assigned_on-six]
0.04s call     tests/test_web.py::test_the_content_stays_public_when_nobody_is_signed_in
0.04s call     tests/test_web.py::test_a_record_the_server_could_not_read_back_is_never_committed[title-5]
0.04s call     tests/test_web.py::test_the_index_is_redrawn_when_the_day_moves
0.04s call     tests/test_web.py::test_a_record_the_server_could_not_read_back_is_never_committed[parent-3]
0.04s call     tests/test_web.py::test_a_record_the_server_could_not_read_back_is_never_committed[tags-value8]
0.04s call     tests/test_web.py::test_a_record_the_server_could_not_read_back_is_never_committed[assigned_on-7]
0.04s call     tests/test_web.py::test_a_record_the_server_could_not_read_back_is_never_committed[owner-value1]
0.04s call     tests/test_web.py::test_a_record_the_server_could_not_read_back_is_never_committed[created_schema_version-x]
0.04s call     tests/test_web.py::test_a_record_the_server_could_not_read_back_is_never_committed[title-value2]
0.04s call     tests/test_web.py::test_a_record_the_server_could_not_read_back_is_never_committed[assigned_on-]
0.04s call     tests/test_coedit.py::test_an_overlap_is_still_the_same_refusal_it_has_always_been
0.04s call     tests/test_web.py::test_a_record_the_server_could_not_read_back_is_never_committed[tags-value7]
0.03s setup    tests/test_web.py::test_a_write_is_broadcast_to_everybody_watching
0.03s call     tests/test_web.py::test_a_reader_is_offered_no_door_they_cannot_walk_through
0.03s setup    tests/test_web.py::test_a_delete_tells_the_open_pages_which_record_went
0.03s setup    tests/test_web.py::test_a_record_page_goes_back_to_the_view_a_real_browser_came_from
0.03s call     tests/test_web.py::test_the_refusal_names_the_chain_and_not_merely_the_record
0.03s call     tests/test_web.py::test_a_served_page_navigates_by_route_and_not_by_filename
0.03s call     tests/test_web.py::test_no_conflict_marker_ever_reaches_the_browser
0.03s call     tests/test_web.py::test_a_genuine_collision_is_a_409_that_writes_nothing
0.03s call     tests/test_web.py::test_no_page_declares_one_name_twice[/new?kind=task]
0.03s call     tests/test_web.py::test_the_preview_shows_what_the_page_will_show
0.03s call     tests/test_web.py::test_no_page_declares_one_name_twice[/detail/task-c00001]
0.03s call     tests/test_web.py::test_a_stale_base_whose_file_nobody_touched_is_retried_silently
0.03s call     tests/test_web.py::test_a_stored_image_is_drawn_and_a_remote_one_is_not
0.03s call     tests/test_web.py::test_the_cycle_page_shows_load_against_capacity
0.03s call     tests/test_web.py::test_a_warmed_server_builds_one_index_for_the_first_burst_not_one_each
0.03s call     tests/test_web.py::test_no_write_route_escapes_the_refusal
0.03s call     tests/test_web.py::test_a_pr_reference_is_linked_in_prose_and_left_alone_everywhere_else
0.03s call     tests/test_web.py::test_a_writer_is_offered_the_door
0.03s setup    tests/test_writes.py::test_a_save_addresses_the_row_it_was_pressed_on
0.03s call     tests/test_web.py::test_the_proposal_ignores_a_cycle_that_only_a_record_mentions
0.03s call     tests/test_web.py::test_a_record_that_merely_depends_on_this_one_keeps_its_file
0.03s call     tests/test_coedit.py::test_a_commit_made_in_git_arrives_whole_in_a_body_written_in_house_style
0.03s call     tests/test_web.py::test_a_commit_message_still_names_the_fields_a_save_moved
0.03s call     tests/test_web.py::test_a_deleted_record_is_gone_from_every_page_that_drew_it
0.03s call     tests/test_remote.py::test_a_write_that_loses_the_race_runs_again_and_lands
0.03s call     tests/test_remote.py::test_a_push_rejected_by_a_moved_remote_is_retried_once
0.03s call     tests/test_coedit.py::test_a_paste_the_api_would_accept_fits_down_the_socket
0.03s call     tests/test_coedit.py::test_a_commit_made_in_git_arrives_in_the_room_as_text
0.03s call     tests/test_web.py::test_two_reads_of_one_commit_build_the_index_once
0.03s call     tests/test_web.py::test_a_record_is_parsed_once_however_many_commits_leave_it_alone
0.02s call     tests/test_coedit.py::test_a_commit_never_deletes_what_was_typed_during_it_by_construction
0.02s call     tests/test_web.py::test_every_write_a_page_makes_is_announced_before_and_after_it[/new?kind=task]
0.02s call     tests/test_coedit.py::test_two_sessions_converge_on_the_same_text
0.02s call     tests/test_socket_offer.py::test_a_member_is
0.02s call     tests/test_web.py::test_both_editors_send_the_title_they_are_previewing
0.02s call     tests/test_web.py::test_every_write_a_page_makes_is_announced_before_and_after_it[/detail/task-c00001]
0.02s call     tests/test_web.py::test_an_honest_dependency_still_lands
0.02s call     tests/test_web.py::test_a_nonsense_window_falls_back_instead_of_failing
0.02s call     tests/test_coedit.py::test_nothing_reaches_a_socket_before_its_welcome
0.02s call     tests/test_web.py::test_shelved_work_is_taken_with_it_rather_than_left_behind
0.02s setup    tests/test_web.py::test_the_health_route_never_reaches_the_network
0.02s call     tests/test_coedit.py::test_a_save_lands_as_one_commit_authored_by_whoever_wrote_the_most
0.02s call     tests/test_coedit.py::test_a_frame_the_room_cannot_take_is_said_out_loud
0.02s call     tests/test_coedit.py::test_a_joiner_who_is_told_to_reload_does_not_swallow_a_commit_made_in_git
0.02s setup    tests/test_web.py::test_health_clears_itself_when_the_fork_does_and_needs_no_restart
0.02s call     tests/test_socket_offer.py::test_a_reader_is_not_offered_a_socket
0.02s call     tests/test_web.py::test_the_detail_page_says_which_record_it_is_looking_at
0.02s setup    tests/test_web.py::test_health_counts_the_commits_that_are_only_on_this_disk
0.02s setup    tests/test_web.py::test_health_says_no_when_this_disk_and_the_plan_have_forked
0.02s call     tests/test_socket_offer.py::test_a_dev_run_offers_the_socket_it_would_accept
0.02s call     tests/test_remote.py::test_a_push_rejected_by_a_moved_remote_retries_on_top_of_it
0.02s call     tests/test_coedit.py::test_a_room_will_not_write_somebody_elses_name_into_its_own_trailers
0.02s call     tests/test_web.py::test_clearing_an_icon_says_so_in_the_record_rather_than_deleting_it
0.02s call     tests/test_payload.py::test_the_index_route_answers_rather_than_faulting_on_such_a_size[.inf]
0.02s call     tests/test_web.py::test_a_delete_over_somebody_elses_edit_is_refused_rather_than_merged
0.02s call     tests/test_web.py::test_a_save_to_a_record_neither_side_touched_is_refused_in_words
0.02s call     tests/test_remote.py::test_a_write_answered_200_is_a_write_that_reached_the_remote
0.02s call     tests/test_web.py::test_a_field_name_cannot_write_its_own_commit_trailer
0.02s call     tests/test_socket_offer.py::test_a_reader_can_still_read_the_whole_record
0.02s call     tests/test_web.py::test_a_forked_plan_is_not_spelled_as_the_code_the_pages_read_as_a_conflict
0.02s call     tests/test_coedit.py::test_a_room_opens_holding_exactly_what_the_page_is_showing
0.02s call     tests/test_web.py::test_a_field_the_record_can_hold_is_still_written
0.02s setup    tests/test_coedit.py::test_backspacing_a_whole_glyph_in_the_second_surface_leaves_both_copies_agreeing[one
0.02s call     tests/test_payload.py::test_the_index_route_answers_rather_than_faulting_on_such_a_size[.nan]
0.02s call     tests/test_coedit.py::test_a_reconnection_to_a_room_seeded_at_the_same_commit_is_silent
0.02s setup    tests/test_web.py::test_nothing_edits_a_record_after_it_has_been_parsed
0.02s call     tests/test_remote.py::test_a_push_rejected_onto_a_real_collision_refuses_and_leaves_nothing_behind
0.02s setup    tests/test_web.py::test_every_write_a_page_makes_is_announced_before_and_after_it[/cycles]
0.02s call     tests/test_web.py::test_a_commit_message_names_only_fields_this_server_knows
0.02s call     tests/test_web.py::test_a_record_whose_filename_carries_a_slug_is_still_found
0.02s call     tests/test_payload.py::test_the_index_route_answers_rather_than_faulting_on_such_a_size[-.inf]
0.02s call     tests/test_remote.py::test_an_upload_reaches_the_remote_like_every_other_commit
0.02s setup    tests/test_web.py::test_a_cycle_field_the_record_cannot_hold_is_refused_not_raised[fields2-starts_on]
0.02s call     tests/test_web.py::test_logging_out_ends_the_ability_to_write
0.02s call     tests/test_web.py::test_a_save_against_the_current_head_is_committed
0.02s setup    tests/test_web.py::test_two_reads_of_one_commit_build_the_index_once
0.02s setup    tests/test_coedit.py::test_a_commit_the_room_made_is_not_somebody_else_changing_it
0.02s setup    tests/test_coedit.py::test_an_edit_across_an_emoji_reaches_the_room_through_the_adapter[a
0.02s setup    tests/test_web.py::test_no_page_declares_one_name_twice[/timeline]
0.02s setup    tests/test_web.py::test_a_record_the_server_could_not_read_back_is_never_committed[title-5]
0.02s setup    tests/test_coedit.py::test_a_socket_that_keeps_dropping_gives_up_even_when_nobody_says_why
0.02s setup    tests/test_web.py::test_a_record_the_server_could_not_read_back_is_never_committed[created_schema_version-x]
0.02s setup    tests/test_web.py::test_a_save_cannot_file_a_record_under_its_own_child
0.02s setup    tests/test_web.py::test_a_request_that_is_not_an_object_is_refused_rather_than_raised["a
0.02s setup    tests/test_coedit.py::test_somebody_elses_keystroke_is_reflected_and_never_sent_back
0.02s setup    tests/test_web.py::test_an_edited_record_is_read_again_rather_than_remembered
0.02s setup    tests/test_web.py::test_a_committed_size_larger_than_the_calendar_leaves_every_page_readable
0.02s setup    tests/test_web.py::test_fields_that_are_not_a_map_are_refused_rather_than_raised[POST-/api/record]
0.02s setup    tests/test_web.py::test_a_record_the_server_could_not_read_back_is_never_committed[tags-value8]
0.02s setup    tests/test_web.py::test_a_save_without_a_real_base_commit_is_refused_at_both_doors["0000000000000000000000000000000000000000"-PATCH-/api/record/task-c00001]
0.02s setup    tests/test_web.py::test_the_preview_shows_what_the_page_will_show
0.02s setup    tests/test_web.py::test_a_writer_is_offered_the_door
0.02s setup    tests/test_web.py::test_a_session_login_no_file_can_be_named_for_writes_nothing[aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa]
0.02s setup    tests/test_coedit.py::test_an_edit_in_the_second_surface_reaches_the_room_as_the_character_it_was[a
0.02s call     tests/test_web.py::test_healthz_reports_the_commit_being_served
0.02s setup    tests/test_web.py::test_a_receipt_the_cycle_page_draws_is_a_receipt_it_announces
0.02s setup    tests/test_web.py::test_nothing_in_the_request_can_name_somebody_else
0.02s setup    tests/test_web.py::test_a_cycle_field_the_record_cannot_hold_is_refused_not_raised[fields6-not
0.02s setup    tests/test_web.py::test_a_request_that_is_not_an_object_is_refused_rather_than_raised[null-POST-/api/preview]
0.02s setup    tests/test_web.py::test_a_preview_of_something_that_is_not_text_still_answers
0.02s setup    tests/test_web.py::test_the_preview_renders_with_the_page_s_own_markdown
0.02s setup    tests/test_web.py::test_a_request_that_is_not_an_object_is_refused_rather_than_raised[[]-POST-/api/record]
0.02s setup    tests/test_web.py::test_login_binds_a_fresh_state_to_the_browser
0.02s setup    tests/test_web.py::test_a_save_without_a_real_base_commit_is_refused_at_both_doors[7-PATCH-/api/record/task-c00001]
0.02s call     tests/test_coedit.py::test_a_status_the_kind_does_not_speak_is_refused_at_the_socket_too
0.02s setup    tests/test_web.py::test_a_field_the_client_did_not_send_is_not_rewritten
0.02s setup    tests/test_web.py::test_an_icon_the_page_cannot_draw_is_refused_rather_than_stored[../config/defaults]
0.02s call     tests/test_coedit.py::test_the_last_person_out_commits
0.02s setup    tests/test_web.py::test_an_oversized_body_is_refused_at_the_door
0.02s setup    tests/test_web.py::test_a_request_that_is_not_an_object_is_refused_rather_than_raised[5-PATCH-/api/record/task-c00001]
0.02s setup    tests/test_web.py::test_healthz_reports_the_commit_being_served
0.02s setup    tests/test_web.py::test_a_request_that_is_not_an_object_is_refused_rather_than_raised[5-PUT-/api/icon]
0.02s setup    tests/test_web.py::test_the_people_page_offers_the_picker_only_to_whoever_may_use_it
0.02s setup    tests/test_web.py::test_the_upload_route_takes_images_and_nothing_else
0.02s setup    tests/test_web.py::test_logging_out_ends_the_ability_to_write
0.02s setup    tests/test_web.py::test_a_save_without_a_real_base_commit_is_refused_at_both_doors[null-PATCH-/api/record/task-c00001]
0.02s setup    tests/test_web.py::test_every_cycle_the_plan_names_is_on_the_index
0.02s setup    tests/test_web.py::test_a_detail_route_serves_one_record_and_not_the_whole_corpus
0.02s setup    tests/test_web.py::test_a_create_is_not_refused_over_a_warning
0.02s setup    tests/test_web.py::test_an_icon_is_written_to_the_record_named_for_the_session
0.02s setup    tests/test_web.py::test_a_session_login_no_file_can_be_named_for_writes_nothing[../../etc/passwd]
0.02s setup    tests/test_web.py::test_an_icon_the_page_cannot_draw_is_refused_rather_than_stored[dragon]
0.02s setup    tests/test_coedit.py::test_saving_in_a_room_leaves_the_read_view_showing_what_was_saved
0.02s setup    tests/test_coedit.py::test_an_edit_across_an_emoji_reaches_the_room_as_the_character_it_was[an
0.02s setup    tests/test_web.py::test_a_cycle_is_created_and_then_updated_in_place
0.02s setup    tests/test_web.py::test_the_detail_page_says_which_record_it_is_looking_at
0.02s call     tests/test_coedit.py::test_a_save_carries_the_fields_from_the_form_and_the_body_from_the_room
0.02s setup    tests/test_web.py::test_a_cycle_record_reaches_the_pages_it_is_for
0.02s setup    tests/test_web.py::test_the_health_check_is_reachable_at_a_path_that_is_ours
0.02s setup    tests/test_web.py::test_a_create_records_its_author_like_any_other_write
0.02s setup    tests/test_web.py::test_the_page_a_stranger_reads_has_no_live_region_to_lose
0.02s setup    tests/test_coedit.py::test_undo_never_takes_back_something_somebody_else_typed
0.02s setup    tests/test_web.py::test_a_save_onto_a_record_deleted_in_git_never_writes_it_back[owner-bo]
0.02s setup    tests/test_web.py::test_a_signed_in_non_member_is_refused_at_the_write
0.02s setup    tests/test_web.py::test_a_cycle_longer_than_the_calendar_is_refused_and_writes_nothing
0.02s setup    tests/test_coedit.py::test_two_editors_in_one_room_over_a_body_with_crlf_in_it_settle_on_one_document
0.02s call     tests/test_web.py::test_a_create_mints_the_id_and_files_it_by_kind
0.02s call     tests/test_web.py::test_a_plan_that_already_holds_a_loop_still_loads
0.02s setup    tests/test_web.py::test_an_id_that_is_not_an_id_never_becomes_a_path[..%2F..%2Fconfig%2Fdefaults]
0.02s setup    tests/test_coedit.py::test_an_edit_across_an_emoji_reaches_the_room_through_the_adapter[the
0.02s setup    tests/test_web.py::test_an_id_that_is_not_an_id_never_becomes_a_path[task-c0001]
0.02s setup    tests/test_web.py::test_a_saved_body_replaces_the_body_and_nothing_else
0.02s call     tests/test_coedit.py::test_a_save_with_nothing_to_commit_is_answered
0.02s setup    tests/test_web.py::test_a_rule_newer_than_the_record_reaches_the_client_as_a_warning
0.02s setup    tests/test_web.py::test_the_unsaved_count_and_the_receipt_count_the_same_thing
0.02s setup    tests/test_web.py::test_the_parse_cache_survives_readers_arriving_at_once
0.02s setup    tests/test_coedit.py::test_the_parsed_editing_surface_answers_the_body_the_server_rendered
0.02s setup    tests/test_coedit.py::test_an_edit_across_an_emoji_reaches_the_room_through_the_adapter[an
0.02s setup    tests/test_web.py::test_every_write_a_page_makes_is_announced_before_and_after_it[/table]
0.02s call     tests/test_coedit.py::test_a_save_the_model_could_not_read_back_is_refused_and_writes_nothing
0.02s setup    tests/test_coedit.py::test_a_frame_the_room_cannot_take_is_said_out_loud
0.02s call     tests/test_web.py::test_a_create_is_not_refused_over_a_warning
0.02s setup    tests/test_web.py::test_a_commit_message_names_only_fields_this_server_knows
0.02s setup    tests/test_web.py::test_a_genuine_collision_is_a_409_that_writes_nothing
0.02s setup    tests/test_web.py::test_a_size_that_is_not_a_number_is_refused_at_both_doors[nan]
0.02s setup    tests/test_web.py::test_a_record_the_server_could_not_read_back_is_never_committed[tags-value7]
0.02s setup    tests/test_web.py::test_the_glyph_that_takes_somebody_out_of_a_cycle_says_so_and_asks
0.02s setup    tests/test_web.py::test_every_view_is_served_as_a_page[/]
0.02s setup    tests/test_web.py::test_every_route_says_which_nav_item_it_is
0.02s call     tests/test_remote.py::test_local_main_is_only_ever_ahead_of_the_remote_never_divergent
0.02s setup    tests/test_web.py::test_every_view_is_served_as_a_page[/timeline]
0.02s call     tests/test_web.py::test_a_save_onto_a_record_deleted_in_git_never_writes_it_back[parent-proj-a10000]
0.02s setup    tests/test_web.py::test_a_record_the_server_could_not_read_back_is_never_committed[assigned_on-7]
0.02s setup    tests/test_coedit.py::test_an_edit_across_an_emoji_reaches_the_room_as_the_character_it_was[a
0.02s setup    tests/test_web.py::test_a_served_page_navigates_by_route_and_not_by_filename
0.02s setup    tests/test_coedit.py::test_a_client_seeded_at_another_commit_is_told_to_reload
0.02s setup    tests/test_web.py::test_a_base_this_repository_never_had_is_refused_rather_than_raised[not-a-sha]
0.02s setup    tests/test_coedit.py::test_an_edit_across_an_emoji_reaches_the_room_as_the_character_it_was[backspacing
0.02s setup    tests/test_web.py::test_the_corner_knows_a_member_from_somebody_who_only_signed_in
0.02s setup    tests/test_web.py::test_no_page_declares_one_name_twice[/detail/task-c00001]
0.02s setup    tests/test_web.py::test_a_record_the_server_could_not_read_back_is_never_committed[title-value2]
0.02s setup    tests/test_coedit.py::test_a_seat_that_is_not_a_number_is_not_a_seat
0.02s setup    tests/test_web.py::test_a_record_the_server_could_not_read_back_is_never_committed[assigned_on-six]
0.02s setup    tests/test_web.py::test_a_record_the_server_could_not_read_back_is_never_committed[parent-3]
0.02s setup    tests/test_web.py::test_a_record_the_server_could_not_read_back_is_never_committed[assigned_on-]
0.02s setup    tests/test_web.py::test_a_request_body_that_is_not_json_is_refused_rather_than_raised[PUT-/api/icon]
0.02s setup    tests/test_coedit.py::test_a_refused_room_tries_again_on_the_next_window
0.02s setup    tests/test_web.py::test_a_record_the_server_could_not_read_back_is_never_committed[owner-value1]
0.02s setup    tests/test_web.py::test_the_index_json_carries_the_plan_the_spans_and_the_problems
0.02s call     tests/test_web.py::test_no_page_declares_one_name_twice[/detail]
0.02s setup    tests/test_coedit.py::test_an_edit_across_an_emoji_reaches_the_room_through_the_adapter[backspacing
0.02s setup    tests/test_web.py::test_a_size_that_is_not_a_number_is_refused_at_both_doors[inf]
0.02s setup    tests/test_coedit.py::test_a_substitution_over_a_whole_document_is_announced_before_it_is_sent
0.02s setup    tests/test_web.py::test_a_write_is_seen_by_the_very_next_read
0.02s setup    tests/test_web.py::test_every_write_a_page_makes_is_announced_before_and_after_it[/graph]
0.02s setup    tests/test_coedit.py::test_a_carriage_return_in_a_room_is_a_thing_the_box_cannot_hold
0.02s setup    tests/test_web.py::test_every_view_is_served_as_a_page[/graph]
0.02s call     tests/test_web.py::test_a_save_onto_a_record_deleted_in_git_never_writes_it_back[owner-bo]
0.02s setup    tests/test_coedit.py::test_nothing_reaches_a_socket_before_its_welcome
0.02s setup    tests/test_web.py::test_the_preview_still_refuses_html
0.02s setup    tests/test_coedit.py::test_a_socket_the_server_turns_away_is_not_asked_again
0.01s setup    tests/test_web.py::test_a_field_the_record_can_hold_is_still_written
0.01s setup    tests/test_coedit.py::test_the_page_degrades_to_todays_editor_when_the_socket_never_opens
0.01s setup    tests/test_web.py::test_an_anonymous_visitor_cannot_write
0.01s setup    tests/test_web.py::test_a_pr_reference_is_linked_in_prose_and_left_alone_everywhere_else
0.01s setup    tests/test_web.py::test_deleting_a_record_deletes_everything_filed_under_it
0.01s setup    tests/test_coedit.py::test_an_edit_across_an_emoji_reaches_the_room_as_the_character_it_was[the
0.01s setup    tests/test_web.py::test_shelved_work_is_taken_with_it_rather_than_left_behind
0.01s setup    tests/test_web.py::test_a_date_the_record_can_hold_is_written_in_the_spelling_the_corpus_uses
0.01s setup    tests/test_web.py::test_a_delete_takes_the_file_out_of_the_plan_and_leaves_it_in_the_history
0.01s setup    tests/test_coedit.py::test_the_history_buttons_answer_the_keyboard_and_say_when_a_stack_is_empty
0.01s setup    tests/test_web.py::test_no_page_declares_one_name_twice[/detail]
0.01s setup    tests/test_coedit.py::test_an_edit_in_the_second_surface_reaches_the_room_as_the_character_it_was[an
0.01s setup    tests/test_web.py::test_a_create_the_server_could_not_read_back_says_which_field[fields3-reviewers]
0.01s setup    tests/test_web.py::test_the_refusal_names_the_chain_and_not_merely_the_record
0.01s setup    tests/test_web.py::test_the_bet_table_wears_no_class_the_page_cannot_draw
0.01s setup    tests/test_web.py::test_a_sentence_somebody_wrote_about_themselves_survives_a_pick
0.01s setup    tests/test_web.py::test_a_done_date_at_the_end_of_the_calendar_leaves_a_timeline_you_can_open
0.01s call     tests/test_web.py::test_the_graph_still_carries_its_libraries_inline
0.01s setup    tests/test_coedit.py::test_what_the_room_said_about_a_save_survives_the_reload
0.01s setup    tests/test_web.py::test_a_plan_that_already_holds_a_loop_still_loads
0.01s setup    tests/test_web.py::test_the_confirmation_is_binding
0.01s setup    tests/test_web.py::test_a_save_onto_a_record_deleted_in_git_never_writes_it_back[parent-proj-a10000]
0.01s setup    tests/test_web.py::test_two_files_with_the_same_bytes_are_two_records
0.01s setup    tests/test_coedit.py::test_an_edit_across_an_emoji_reaches_the_room_as_the_character_it_was[an
0.01s setup    tests/test_web.py::test_a_request_that_is_not_an_object_is_refused_rather_than_raised["a
0.01s setup    tests/test_coedit.py::test_a_room_whose_record_is_gone_says_to_copy_the_document_out
0.01s setup    tests/test_web.py::test_a_create_the_server_could_not_read_back_says_which_field[fields4-tags]
0.01s setup    tests/test_web.py::test_a_cycle_record_longer_than_the_calendar_leaves_every_page_readable
0.01s setup    tests/test_web.py::test_a_record_is_parsed_once_however_many_commits_leave_it_alone
0.01s setup    tests/test_coedit.py::test_the_last_person_out_commits
0.01s setup    tests/test_web.py::test_the_bet_lists_what_to_pick_up_before_what_is_running
0.01s setup    tests/test_web.py::test_the_service_says_which_version_it_is_running
0.01s setup    tests/test_web.py::test_a_stored_image_is_drawn_and_a_remote_one_is_not
0.01s setup    tests/test_web.py::test_a_save_without_a_real_base_commit_is_refused_at_both_doors["zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz"-PUT-/api/cycle/3]
0.01s setup    tests/test_coedit.py::test_an_edit_in_the_second_surface_reaches_the_room_as_the_character_it_was[backspacing
0.01s setup    tests/test_web.py::test_a_request_that_is_not_an_object_is_refused_rather_than_raised[[]-POST-/api/preview]
0.01s call     tests/test_coedit.py::test_a_stranger_is_refused_the_socket_and_told_why
0.01s setup    tests/test_web.py::test_a_request_that_is_not_an_object_is_refused_rather_than_raised[null-PUT-/api/cycle/3]
0.01s setup    tests/test_web.py::test_an_icon_request_with_no_icon_in_it_is_not_a_clear
0.01s setup    tests/test_web.py::test_the_author_can_never_be_supplied_by_the_client
0.01s setup    tests/test_web.py::test_a_create_the_server_could_not_read_back_says_which_field[fields0-title]
0.01s setup    tests/test_web.py::test_a_person_record_is_one_directory_deep_and_no_deeper
0.01s setup    tests/test_web.py::test_an_uploaded_image_comes_back_byte_for_byte
0.01s setup    tests/test_web.py::test_an_icon_the_page_cannot_draw_is_refused_rather_than_stored[sun
0.01s setup    tests/test_web.py::test_starting_a_cycle_asks_before_it_writes
0.01s setup    tests/test_web.py::test_a_cycle_number_no_save_would_accept_is_not_a_page[10000]
0.01s setup    tests/test_web.py::test_a_base_this_repository_never_had_is_refused_rather_than_raised[0000000000000000000000000000000000000000]
0.01s setup    tests/test_coedit.py::test_opening_the_second_surface_changes_no_byte_of_the_document
0.01s call     tests/test_web.py::test_two_files_with_the_same_bytes_are_two_records
0.01s setup    tests/test_web.py::test_the_whole_subtree_goes_however_deep_it_is
0.01s setup    tests/test_web.py::test_a_save_without_a_real_base_commit_is_refused_at_both_doors[__MISSING__-PUT-/api/cycle/3]
0.01s setup    tests/test_web.py::test_a_request_that_is_not_an_object_is_refused_rather_than_raised[5-POST-/api/preview]
0.01s setup    tests/test_coedit.py::test_an_edit_in_the_second_surface_reaches_the_room_as_the_character_it_was[the
0.01s setup    tests/test_web.py::test_a_file_that_will_not_parse_is_not_remembered_as_an_answer
0.01s setup    tests/test_coedit.py::test_an_edit_across_an_emoji_reaches_the_room_as_the_character_it_was[a
0.01s setup    tests/test_web.py::test_a_request_that_is_not_an_object_is_refused_rather_than_raised[null-PATCH-/api/record/task-c00001]
0.01s setup    tests/test_web.py::test_an_honest_dependency_still_lands
0.01s setup    tests/test_web.py::test_a_session_login_no_file_can_be_named_for_writes_nothing[a/b]
0.01s setup    tests/test_web.py::test_a_save_without_a_real_base_commit_is_refused_at_both_doors[""-PUT-/api/cycle/3]
0.01s setup    tests/test_web.py::test_a_deleted_record_is_gone_from_every_page_that_drew_it
0.01s setup    tests/test_web.py::test_fields_that_are_not_a_map_are_refused_rather_than_raised[PATCH-/api/record/task-c00001]
0.01s setup    tests/test_coedit.py::test_a_tab_that_is_only_watching_the_second_surface_is_credited_zero_characters
0.01s setup    tests/test_web.py::test_a_save_without_a_real_base_commit_is_refused_at_both_doors[null-PUT-/api/cycle/3]
0.01s setup    tests/test_web.py::test_the_create_form_is_not_another_cycle_in_the_list
0.01s setup    tests/test_web.py::test_a_delete_of_something_that_is_not_there_is_a_404
0.01s setup    tests/test_web.py::test_a_cycle_card_says_the_bet_against_the_capacity
0.01s setup    tests/test_web.py::test_a_delete_over_somebody_elses_edit_is_refused_rather_than_merged
0.01s setup    tests/test_coedit.py::test_undo_in_a_room_gives_back_your_own_last_thing_on_the_textarea
0.01s setup    tests/test_remote.py::test_push_refuses_to_resolve_a_divergence_by_itself
0.01s setup    tests/test_coedit.py::test_backspacing_a_whole_glyph_in_the_second_surface_leaves_both_copies_agreeing[one
0.01s setup    tests/test_web.py::test_a_request_body_that_is_not_json_is_refused_rather_than_raised[PATCH-/api/record/task-c00001]
0.01s setup    tests/test_web.py::test_a_request_that_is_not_an_object_is_refused_rather_than_raised[[]-PUT-/api/icon]
0.01s setup    tests/test_web.py::test_a_record_that_does_not_read_is_not_written_over_and_costs_one_person
0.01s setup    tests/test_web.py::test_a_cycle_field_the_record_cannot_hold_is_refused_not_raised[fields1-starts_on]
0.01s setup    tests/test_web.py::test_clearing_an_icon_says_so_in_the_record_rather_than_deleting_it
0.01s setup    tests/test_web.py::test_fields_that_are_not_a_map_are_refused_rather_than_raised[PUT-/api/cycle/3]
0.01s setup    tests/test_web.py::test_there_is_no_icon_route_that_takes_a_name[/api/icon/bo]
0.01s setup    tests/test_web.py::test_no_page_declares_one_name_twice[/]
0.01s setup    tests/test_web.py::test_an_icon_is_one_of_the_ones_the_picker_offers
0.01s setup    tests/test_web.py::test_a_session_login_no_file_can_be_named_for_writes_nothing[ann
0.01s setup    tests/test_web.py::test_a_cycle_field_the_record_cannot_hold_is_refused_not_raised[fields7-'nan']
0.01s setup    tests/test_web.py::test_an_icon_the_page_cannot_draw_is_refused_rather_than_stored[icon6]
0.01s setup    tests/test_web.py::test_an_uploaded_image_is_named_by_its_contents
0.01s setup    tests/test_web.py::test_a_create_missing_its_status_gated_fields_is_refused
0.01s setup    tests/test_web.py::test_a_cycle_the_server_could_not_read_back_is_never_committed
0.01s setup    tests/test_web.py::test_a_carried_item_cannot_be_re_stamped_from_the_cycle_page
0.01s setup    tests/test_web.py::test_no_conflict_marker_ever_reaches_the_browser
0.01s setup    tests/test_coedit.py::test_a_save_carries_the_fields_from_the_form_and_the_body_from_the_room
0.01s setup    tests/test_web.py::test_an_icon_the_page_cannot_draw_is_refused_rather_than_stored[]
0.01s setup    tests/test_web.py::test_a_request_that_is_not_an_object_is_refused_rather_than_raised[5-POST-/api/record]
0.01s setup    tests/test_web.py::test_a_record_that_does_not_exist_is_a_404_and_not_an_empty_page
0.01s setup    tests/test_web.py::test_a_cookie_this_server_did_not_sign_is_nobody
0.01s setup    tests/test_web.py::test_an_icon_the_page_cannot_draw_is_refused_rather_than_stored[7]
0.01s setup    tests/test_web.py::test_the_cycle_page_puts_the_forecast_next_to_the_capacity
0.01s call     tests/test_coedit.py::test_a_join_folds_a_commit_in_at_the_boundary_where_two_index_spaces_meet
0.01s setup    tests/test_web.py::test_two_people_deleting_one_record_do_not_both_report_a_deletion
0.01s setup    tests/test_web.py::test_every_write_a_page_makes_is_announced_before_and_after_it[/new?kind=task]
0.01s setup    tests/test_web.py::test_an_icon_the_page_cannot_draw_is_refused_rather_than_stored[SUN]
0.01s setup    tests/test_web.py::test_a_request_that_is_not_an_object_is_refused_rather_than_raised[null-POST-/api/record]
0.01s setup    tests/test_web.py::test_a_cycle_number_no_save_would_accept_is_not_a_page[99999]
0.01s setup    tests/test_web.py::test_the_graph_still_carries_its_libraries_inline
0.01s setup    tests/test_web.py::test_the_commit_author_is_the_signed_in_user
0.01s setup    tests/test_web.py::test_a_save_against_the_current_head_is_committed
0.01s setup    tests/test_web.py::test_a_stranger_is_told_so_without_an_error
0.01s setup    tests/test_web.py::test_a_save_without_a_real_base_commit_is_refused_at_both_doors["zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz"-PATCH-/api/record/task-c00001]
0.01s setup    tests/test_web.py::test_a_create_the_server_could_not_read_back_says_which_field[fields5-created_schema_version]
0.01s setup    tests/test_web.py::test_a_second_person_picking_leaves_the_first_persons_record_alone
0.01s setup    tests/test_web.py::test_both_editors_send_the_title_they_are_previewing
0.01s setup    tests/test_web.py::test_a_save_without_a_real_base_commit_is_refused_at_both_doors[__MISSING__-PATCH-/api/record/task-c00001]
0.01s setup    tests/test_web.py::test_a_cycle_field_the_record_cannot_hold_is_refused_not_raised[fields8-starts_on]
0.01s setup    tests/test_web.py::test_a_save_without_a_real_base_commit_is_refused_at_both_doors["0000000000000000000000000000000000000000"-PUT-/api/cycle/3]
0.01s setup    tests/test_web.py::test_a_cycle_field_the_record_cannot_hold_is_refused_not_raised[fields0-starts_on]
0.01s setup    tests/test_web.py::test_picking_the_icon_you_already_have_is_not_a_commit
0.01s setup    tests/test_web.py::test_there_is_no_icon_route_that_takes_a_name[/api/icon/ann]
0.01s setup    tests/test_web.py::test_a_save_without_a_real_base_commit_is_refused_at_both_doors[""-PATCH-/api/record/task-c00001]
0.01s setup    tests/test_web.py::test_a_timeline_view_is_a_link
0.01s setup    tests/test_web.py::test_a_reader_who_cannot_write_is_shown_no_picker
0.01s setup    tests/test_web.py::test_an_asset_name_that_is_not_a_hash_never_becomes_a_path
0.01s setup    tests/test_coedit.py::test_the_served_detail_page_carries_the_room_and_no_other_page_does
0.01s setup    tests/test_web.py::test_a_cycle_field_the_record_cannot_hold_is_refused_not_raised[fields3-reviews_on]
0.01s setup    tests/test_web.py::test_a_refusal_has_somewhere_on_this_page_to_be_read
0.01s call     tests/test_web.py::test_the_glyph_that_takes_somebody_out_of_a_cycle_says_so_and_asks
0.01s setup    tests/test_web.py::test_a_create_the_server_could_not_read_back_says_which_field[fields2-assigned_on]
0.01s setup    tests/test_web.py::test_a_member_writes_as_themselves
0.01s setup    tests/test_coedit.py::test_a_draft_in_the_box_is_offered_to_a_room_that_has_not_moved
0.01s setup    tests/test_web.py::test_the_roster_is_not_touched_by_somebody_choosing_a_picture
0.01s setup    tests/test_web.py::test_the_bet_table_names_a_status_in_the_colour_every_other_page_uses
0.01s setup    tests/test_web.py::test_a_stranger_and_a_non_member_are_both_refused
0.01s setup    tests/test_web.py::test_a_committed_parent_that_names_nothing_leaves_every_page_readable
0.01s setup    tests/test_web.py::test_the_cycle_page_shows_load_against_capacity
0.01s setup    tests/test_web.py::test_a_record_the_server_could_not_read_back_is_never_committed[owner-value0]
0.01s setup    tests/test_web.py::test_a_save_cannot_make_a_record_wait_for_itself
0.01s setup    tests/test_web.py::test_a_stale_base_whose_file_nobody_touched_is_retried_silently
0.01s setup    tests/test_web.py::test_a_body_that_is_not_text_is_refused_rather_than_raised[PUT-/api/cycle/3]
0.01s setup    tests/test_web.py::test_the_cycle_page_says_what_is_unsaved_and_that_a_save_landed
0.01s setup    tests/test_web.py::test_the_proposal_ignores_a_cycle_that_only_a_record_mentions
0.01s setup    tests/test_web.py::test_a_request_that_is_not_an_object_is_refused_rather_than_raised[null-PUT-/api/icon]
0.01s setup    tests/test_web.py::test_a_body_that_is_not_text_is_refused_rather_than_raised[PATCH-/api/record/task-c00001]
0.01s setup    tests/test_web.py::test_a_cycle_field_the_record_cannot_hold_is_refused_not_raised[fields4-reviews_on]
0.01s setup    tests/test_web.py::test_a_commit_message_still_names_the_fields_a_save_moved
0.01s setup    tests/test_web.py::test_a_body_that_is_not_text_is_refused_rather_than_raised[POST-/api/record]
0.01s setup    tests/test_web.py::test_the_save_button_is_in_reach_of_the_whole_betting_table
0.01s setup    tests/test_web.py::test_a_save_without_a_real_base_commit_is_refused_at_both_doors[7-PUT-/api/cycle/3]
0.01s setup    tests/test_web.py::test_a_request_that_is_not_an_object_is_refused_rather_than_raised[[]-PATCH-/api/record/task-c00001]
0.01s setup    tests/test_web.py::test_a_session_login_no_file_can_be_named_for_writes_nothing[ann.md]
0.01s setup    tests/test_web.py::test_a_new_record_is_held_to_the_current_rules
0.01s setup    tests/test_web.py::test_a_partial_save_changes_only_the_lines_it_was_asked_to
0.01s setup    tests/test_web.py::test_an_anonymous_visitor_cannot_delete
0.01s setup    tests/test_web.py::test_a_session_cookie_is_one_a_browser_will_actually_store
0.01s call     tests/test_payload.py::test_no_page_ships_a_data_block_that_is_not_json[render_graph--.inf]
0.01s setup    tests/test_web.py::test_a_status_nobody_defined_is_refused_at_both_doors
0.01s setup    tests/test_web.py::test_there_is_no_icon_route_that_takes_a_name[/api/icon/config]
0.01s setup    tests/test_web.py::test_a_cycle_field_the_record_cannot_hold_is_refused_not_raised[fields5-'the
0.01s setup    tests/test_web.py::test_every_write_a_page_makes_is_announced_before_and_after_it[/cycle/1]
0.01s setup    tests/test_web.py::test_a_backwards_window_does_not_invert_the_drawing
0.01s setup    tests/test_web.py::test_every_control_on_the_cycle_page_has_a_name
0.01s setup    tests/test_web.py::test_one_decision_is_one_commit
0.01s setup    tests/test_web.py::test_a_create_the_server_could_not_read_back_says_which_field[fields1-title]
0.01s setup    tests/test_web.py::test_a_session_login_no_file_can_be_named_for_writes_nothing[-ann]
0.01s setup    tests/test_web.py::test_a_cycle_with_no_record_is_a_form_and_says_so
0.01s setup    tests/test_coedit.py::test_the_room_relays_where_each_person_is_sitting
0.01s setup    tests/test_web.py::test_a_create_mints_the_id_and_files_it_by_kind
0.01s setup    tests/test_web.py::test_an_id_that_is_not_an_id_never_becomes_a_path[]
0.01s setup    tests/test_web.py::test_no_page_declares_one_name_twice[/new?kind=task]
0.01s setup    tests/test_web.py::test_a_field_name_cannot_write_its_own_commit_trailer
0.01s setup    tests/test_web.py::test_every_view_is_served_as_a_page[/detail/task-c00001]
0.01s setup    tests/test_web.py::test_a_request_that_is_not_an_object_is_refused_rather_than_raised[5-PUT-/api/cycle/3]
0.01s setup    tests/test_web.py::test_a_forged_cookie_is_a_stranger_in_the_corner
0.01s setup    tests/test_web.py::test_a_callback_whose_state_does_not_match_is_abandoned
0.01s setup    tests/test_web.py::test_every_view_is_served_as_a_page[/detail]
0.01s setup    tests/test_web.py::test_only_the_named_are_in_a_cycle
0.01s setup    tests/test_web.py::test_a_request_that_is_not_an_object_is_refused_rather_than_raised[[]-PUT-/api/cycle/3]
0.01s setup    tests/test_remote.py::test_a_genuine_divergence_raises_instead_of_guessing
0.01s setup    tests/test_web.py::test_saving_a_record_that_does_not_exist_is_a_404
0.01s setup    tests/test_web.py::test_two_people_changing_different_fields_of_one_record_are_merged
0.01s setup    tests/test_web.py::test_a_request_body_that_is_not_json_is_refused_rather_than_raised[PUT-/api/cycle/3]
0.01s call     tests/test_web.py::test_the_bet_table_wears_no_class_the_page_cannot_draw
0.01s setup    tests/test_web.py::test_no_page_declares_one_name_twice[/graph]
0.01s setup    tests/test_web.py::test_a_nonsense_window_falls_back_instead_of_failing
0.01s setup    tests/test_web.py::test_no_page_declares_one_name_twice[/people]
0.01s setup    tests/test_web.py::test_a_sign_in_somebody_cancelled_says_so
0.01s setup    tests/test_web.py::test_an_id_that_is_not_an_id_never_becomes_a_path[task-zzzzzz]
0.01s setup    tests/test_coedit.py::test_a_save_with_nothing_to_commit_is_answered
0.01s setup    tests/test_web.py::test_an_id_that_is_not_an_id_never_becomes_a_path[tasks%2Ftask-c00001]
0.01s setup    tests/test_web.py::test_a_request_body_that_is_not_json_is_refused_rather_than_raised[POST-/api/record]
0.01s setup    tests/test_coedit.py::test_a_room_opens_holding_exactly_what_the_page_is_showing
0.01s setup    tests/test_web.py::test_the_index_json_keeps_the_fields_only_a_pitch_or_a_task_has
0.01s setup    tests/test_coedit.py::test_a_room_for_a_record_that_is_not_there_never_opens
0.01s setup    tests/test_web.py::test_an_id_that_is_not_an_id_never_becomes_a_path[not-an-id]
0.01s call     tests/test_web.py::test_a_save_cannot_file_a_record_under_its_own_child
0.01s setup    tests/test_coedit.py::test_a_save_the_model_could_not_read_back_is_refused_and_writes_nothing
0.01s setup    tests/test_web.py::test_the_table_renders_the_repository_as_it_is_right_now
0.01s setup    tests/test_web.py::test_every_write_a_page_makes_is_announced_before_and_after_it[/detail/task-c00001]
0.01s setup    tests/test_web.py::test_an_id_that_is_not_an_id_never_becomes_a_path[task-c00001%2F..%2F..%2Fconfig%2Fdefaults]
0.01s setup    tests/test_coedit.py::test_a_join_folds_a_commit_in_at_the_boundary_where_two_index_spaces_meet
0.01s call     tests/test_payload.py::test_no_page_ships_a_data_block_that_is_not_json[render_graph-.nan]
0.01s setup    tests/test_web.py::test_an_id_that_is_not_an_id_never_becomes_a_path[../config/defaults]
0.01s setup    tests/test_web.py::test_a_create_cannot_choose_its_own_kind_of_directory
0.01s setup    tests/test_web.py::test_who_you_are_does_not_carry_a_token
0.01s setup    tests/test_coedit.py::test_a_write_that_fails_is_a_refusal_and_not_an_escape
0.01s call     tests/test_web.py::test_a_member_writes_as_themselves
0.01s setup    tests/test_coedit.py::test_a_paste_the_api_would_accept_fits_down_the_socket
0.01s call     tests/test_web.py::test_a_partial_save_changes_only_the_lines_it_was_asked_to
0.01s setup    tests/test_web.py::test_every_write_answer_says_whether_the_commit_reached_the_remote
0.01s setup    tests/test_web.py::test_no_page_declares_one_name_twice[/cycles]
0.01s setup    tests/test_web.py::test_every_view_is_served_as_a_page[/table]
0.01s setup    tests/test_coedit.py::test_an_edit_in_the_second_surface_reaches_the_room_as_the_character_it_was[a
0.01s call     tests/test_web.py::test_health_answers_on_a_plan_that_has_no_commits_yet
0.01s setup    tests/test_coedit.py::test_a_second_tab_of_the_same_person_is_one_person
0.01s setup    tests/test_web.py::test_the_content_stays_public_when_nobody_is_signed_in
0.01s setup    tests/test_coedit.py::test_a_commit_made_in_git_arrives_in_the_room_as_text
0.01s call     tests/test_web.py::test_the_roster_is_not_touched_by_somebody_choosing_a_picture
0.01s setup    tests/test_coedit.py::test_a_reconnection_to_a_room_seeded_at_the_same_commit_is_silent
0.01s call     tests/test_web.py::test_an_oversized_body_is_refused_at_the_door
0.01s setup    tests/test_coedit.py::test_the_page_stops_saving_when_the_room_says_there_was_nothing_to_save
0.01s setup    tests/test_coedit.py::test_a_commit_made_in_git_arrives_whole_in_a_body_written_in_house_style
0.01s setup    tests/test_coedit.py::test_a_joiner_who_is_told_to_reload_does_not_swallow_a_commit_made_in_git
0.01s call     tests/test_web.py::test_a_person_record_is_one_directory_deep_and_no_deeper
0.01s setup    tests/test_coedit.py::test_the_timer_survives_a_failure_the_tuple_does_not_name
0.01s setup    tests/test_coedit.py::test_a_seat_goes_when_its_person_does
0.01s call     tests/test_web.py::test_a_signed_in_non_member_is_refused_at_the_write
0.01s setup    tests/test_coedit.py::test_the_presence_list_names_everybody_in_the_room
0.01s setup    tests/test_coedit.py::test_a_save_lands_as_one_commit_authored_by_whoever_wrote_the_most
0.01s setup    tests/test_coedit.py::test_a_room_will_not_write_somebody_elses_name_into_its_own_trailers
0.01s setup    tests/test_coedit.py::test_a_status_the_kind_does_not_speak_is_refused_at_the_socket_too
0.01s call     tests/test_web.py::test_every_write_a_page_makes_is_announced_before_and_after_it[/table]
0.01s call     tests/test_web.py::test_the_author_can_never_be_supplied_by_the_client
0.01s call     tests/test_web.py::test_a_field_the_client_did_not_send_is_not_rewritten
0.01s call     tests/test_web.py::test_every_view_is_served_as_a_page[/graph]
0.01s call     tests/test_web.py::test_a_cycle_record_reaches_the_pages_it_is_for
0.01s call     tests/test_web.py::test_the_commit_author_is_the_signed_in_user
0.01s call     tests/test_web.py::test_a_saved_body_replaces_the_body_and_nothing_else
0.01s call     tests/test_web.py::test_the_bet_lists_what_to_pick_up_before_what_is_running
0.01s call     tests/test_web.py::test_a_file_that_will_not_parse_is_not_remembered_as_an_answer
0.01s call     tests/test_web.py::test_a_detail_route_serves_one_record_and_not_the_whole_corpus
0.01s call     tests/test_web.py::test_the_bet_table_names_a_status_in_the_colour_every_other_page_uses
0.01s call     tests/test_web.py::test_every_control_on_the_cycle_page_has_a_name
0.01s call     tests/test_web.py::test_the_deployment_keeps_the_prefix_and_its_guarantee
0.01s call     tests/test_web.py::test_a_session_set_before_tls_is_still_a_session
0.01s call     tests/test_web.py::test_a_record_that_does_not_read_is_not_written_over_and_costs_one_person
0.01s call     tests/test_web.py::test_a_cycle_is_created_and_then_updated_in_place
0.01s call     tests/test_web.py::test_two_people_deleting_one_record_do_not_both_report_a_deletion
0.01s call     tests/test_coedit.py::test_a_commit_the_room_made_is_not_somebody_else_changing_it
0.01s call     tests/test_remote.py::test_the_next_write_lands_on_top_of_a_fetched_commit_not_over_it
0.01s call     tests/test_web.py::test_every_view_is_served_as_a_page[/detail]
0.01s call     tests/test_web.py::test_an_icon_request_with_no_icon_in_it_is_not_a_clear
0.01s call     tests/test_web.py::test_a_second_person_picking_leaves_the_first_persons_record_alone
0.01s call     tests/test_web.py::test_the_confirmation_is_binding
0.01s call     tests/test_coedit.py::test_a_second_tab_of_the_same_person_is_one_person
0.01s call     tests/test_coedit.py::test_a_seat_that_is_not_a_number_is_not_a_seat
0.01s call     tests/test_coedit.py::test_a_seat_goes_when_its_person_does
0.01s call     tests/test_coedit.py::test_the_room_relays_where_each_person_is_sitting
0.01s call     tests/test_web.py::test_no_page_declares_one_name_twice[/timeline]
0.01s call     tests/test_web.py::test_one_decision_is_one_commit
0.01s call     tests/test_coedit.py::test_the_presence_list_names_everybody_in_the_room
0.01s call     tests/test_web.py::test_a_create_the_server_could_not_read_back_says_which_field[fields2-assigned_on]
0.01s call     tests/test_web.py::test_no_page_declares_one_name_twice[/cycles]
0.01s setup    tests/test_remote.py::test_with_no_remote_a_write_behaves_exactly_as_it_does_today
0.01s call     tests/test_web.py::test_a_create_records_its_author_like_any_other_write
0.01s call     tests/test_web.py::test_a_create_the_server_could_not_read_back_says_which_field[fields5-created_schema_version]
0.01s call     tests/test_web.py::test_a_delete_takes_the_file_out_of_the_plan_and_leaves_it_in_the_history
0.01s call     tests/test_web.py::test_every_view_is_served_as_a_page[/detail/task-c00001]
0.01s call     tests/test_remote.py::test_a_write_while_unreachable_still_lands_on_the_one_before_it
0.01s setup    tests/test_remote.py::test_the_commit_the_remote_missed_is_still_there_to_push_afterwards
0.01s call     tests/test_web.py::test_no_page_declares_one_name_twice[/people]
0.01s setup    tests/test_remote.py::test_fetch_sees_a_commit_pushed_from_a_terminal
0.01s call     tests/test_web.py::test_every_view_is_served_as_a_page[/table]
0.01s call     tests/test_web.py::test_a_cookie_this_server_did_not_sign_is_nobody
0.01s setup    tests/test_remote.py::test_a_write_while_unreachable_still_lands_on_the_one_before_it
0.01s setup    tests/test_remote.py::test_fetch_reports_a_commit_once_and_then_stops
0.01s setup    tests/test_remote.py::test_the_audit_trail_survives_the_push_unaltered
0.01s setup    tests/test_remote.py::test_a_refused_write_pushes_nothing
0.01s setup    tests/test_remote.py::test_an_unreachable_remote_still_commits_and_admits_it_did_not_push
0.01s setup    tests/test_remote.py::test_pushing_an_already_pushed_commit_reports_nothing_to_do
0.01s setup    tests/test_remote.py::test_a_push_rejected_onto_a_real_collision_refuses_and_leaves_nothing_behind
0.01s setup    tests/test_remote.py::test_a_write_lands_in_the_remote_and_says_that_it_did
0.01s setup    tests/test_remote.py::test_the_next_write_lands_on_top_of_a_fetched_commit_not_over_it
0.01s setup    tests/test_remote.py::test_a_push_rejected_by_a_moved_remote_retries_on_top_of_it
0.01s call     tests/test_web.py::test_a_status_nobody_defined_is_refused_at_both_doors
0.01s setup    tests/test_remote.py::test_every_commit_the_remote_receives_has_exactly_one_parent
0.01s call     tests/test_web.py::test_a_new_record_is_held_to_the_current_rules
0.01s call     tests/test_web.py::test_no_page_declares_one_name_twice[/]
0.01s call     tests/test_web.py::test_every_write_a_page_makes_is_announced_before_and_after_it[/cycle/1]
0.01s call     tests/test_web.py::test_a_size_that_is_not_a_number_is_refused_at_both_doors[inf]
0.01s setup    tests/test_remote.py::test_a_write_that_has_returned_is_already_in_the_remote
0.01s setup    tests/test_remote.py::test_local_main_is_only_ever_ahead_of_the_remote_never_divergent
0.01s setup    tests/test_remote.py::test_with_no_remote_the_scoped_compare_and_swap_is_untouched
0.01s setup    tests/test_remote.py::test_with_no_remote_push_and_fetch_are_answers_not_errors
0.01s call     tests/test_web.py::test_deleting_a_record_deletes_everything_filed_under_it
0.01s call     tests/test_web.py::test_no_page_declares_one_name_twice[/deck/37]
0.01s call     tests/test_web.py::test_a_size_that_is_not_a_number_is_refused_at_both_doors[nan]
0.01s call     tests/test_web.py::test_the_whole_subtree_goes_however_deep_it_is
0.01s call     tests/test_web.py::test_the_app_exposes_the_flag_that_ends_its_event_streams
0.01s call     tests/test_remote.py::test_a_genuine_divergence_raises_instead_of_guessing
0.01s call     tests/test_web.py::test_the_runner_sets_that_flag_when_it_is_told_to_exit
0.01s call     tests/test_web.py::test_a_create_missing_its_status_gated_fields_is_refused
0.01s call     tests/test_web.py::test_a_create_the_server_could_not_read_back_says_which_field[fields0-title]
0.01s call     tests/test_web.py::test_a_create_the_server_could_not_read_back_says_which_field[fields3-reviewers]
0.01s call     tests/test_remote.py::test_every_commit_the_remote_receives_has_exactly_one_parent
0.01s call     tests/test_web.py::test_a_timeline_view_is_a_link
0.01s call     tests/test_web.py::test_a_create_the_server_could_not_read_back_says_which_field[fields4-tags]
0.01s call     tests/test_remote.py::test_with_no_remote_the_scoped_compare_and_swap_is_untouched
0.01s call     tests/test_web.py::test_a_create_the_server_could_not_read_back_says_which_field[fields1-title]
0.01s call     tests/test_remote.py::test_a_refused_write_pushes_nothing
0.01s call     tests/test_web.py::test_the_table_renders_the_repository_as_it_is_right_now
0.01s call     tests/test_web.py::test_a_cycle_number_no_save_would_accept_is_not_a_page[-1]
0.01s call     tests/test_web.py::test_picking_the_icon_you_already_have_is_not_a_commit
0.01s call     tests/test_web.py::test_the_cycle_page_says_what_is_unsaved_and_that_a_save_landed
0.01s call     tests/test_web.py::test_a_sentence_somebody_wrote_about_themselves_survives_a_pick
0.01s call     tests/test_web.py::test_a_cycle_number_no_save_would_accept_is_not_a_page[10000]
0.01s call     tests/test_web.py::test_the_save_button_is_in_reach_of_the_whole_betting_table
0.01s call     tests/test_coedit.py::test_the_yjs_bundle_inlines_as_a_classic_script
0.01s call     tests/test_web.py::test_a_cycle_number_no_save_would_accept_is_not_a_page[99999]
0.01s call     tests/test_remote.py::test_one_save_talks_to_the_remote_once
0.01s call     tests/test_web.py::test_the_people_page_offers_the_picker_only_to_whoever_may_use_it
0.01s call     tests/test_web.py::test_the_create_form_is_not_another_cycle_in_the_list
0.01s call     tests/test_remote.py::test_the_commit_the_remote_missed_is_still_there_to_push_afterwards
0.01s call     tests/test_web.py::test_the_unsaved_count_and_the_receipt_count_the_same_thing
0.01s call     tests/test_payload.py::test_no_page_ships_a_data_block_that_is_not_json[render_table--.inf]
0.01s call     tests/test_web.py::test_every_view_is_served_as_a_page[/timeline]
0.01s call     tests/test_web.py::test_a_receipt_the_cycle_page_draws_is_a_receipt_it_announces
0.01s call     tests/test_web.py::test_a_cycle_with_no_record_is_a_form_and_says_so
0.01s call     tests/test_web.py::test_every_view_is_served_as_a_page[/]
0.01s call     tests/test_web.py::test_every_write_a_page_makes_is_announced_before_and_after_it[/cycles]
0.01s call     tests/test_web.py::test_the_cycle_page_puts_the_forecast_next_to_the_capacity
0.01s call     tests/test_web.py::test_a_refusal_has_somewhere_on_this_page_to_be_read
0.01s call     tests/test_web.py::test_an_anonymous_visitor_cannot_write
0.01s call     tests/test_web.py::test_a_backwards_window_does_not_invert_the_drawing
0.01s call     tests/test_web.py::test_the_page_a_stranger_reads_has_no_live_region_to_lose
0.01s call     tests/test_web.py::test_starting_a_cycle_asks_before_it_writes
0.01s call     tests/test_web.py::test_a_reader_who_cannot_write_is_shown_no_picker
0.01s call     tests/test_payload.py::test_no_page_ships_a_data_block_that_is_not_json[render_table-.inf]
0.01s call     tests/test_writes.py::test_no_write_path_reads_a_key_a_conflict_does_not_carry
0.01s call     tests/test_web.py::test_an_icon_is_written_to_the_record_named_for_the_session
0.01s call     tests/test_web.py::test_an_uploaded_image_is_named_by_its_contents
0.01s call     tests/test_remote.py::test_fetch_sees_a_commit_pushed_from_a_terminal
0.01s call     tests/test_web.py::test_a_callback_whose_state_does_not_match_is_abandoned
0.01s call     tests/test_remote.py::test_pushing_an_already_pushed_commit_reports_nothing_to_do
0.01s call     tests/test_coedit.py::test_a_client_seeded_at_another_commit_is_told_to_reload
0.01s call     tests/test_payload.py::test_no_page_ships_a_data_block_that_is_not_json[render_table-.nan]
0.01s call     tests/test_remote.py::test_a_write_lands_in_the_remote_and_says_that_it_did
0.01s call     tests/test_web.py::test_an_anonymous_visitor_cannot_delete
0.01s call     tests/test_web.py::test_an_uploaded_image_comes_back_byte_for_byte
0.01s call     tests/test_web.py::test_a_date_the_record_can_hold_is_written_in_the_spelling_the_corpus_uses
0.01s call     tests/test_web.py::test_a_cycle_longer_than_the_calendar_is_refused_and_writes_nothing
0.01s call     tests/test_coedit.py::test_a_room_whose_record_is_gone_says_to_copy_the_document_out
0.01s call     tests/test_web.py::test_fields_that_are_not_a_map_are_refused_rather_than_raised[PATCH-/api/record/task-c00001]
0.01s call     tests/test_remote.py::test_fetch_reports_a_commit_once_and_then_stops
0.00s call     tests/test_remote.py::test_an_unreachable_remote_still_commits_and_admits_it_did_not_push
0.00s call     tests/test_web.py::test_the_upload_route_takes_images_and_nothing_else
0.00s call     tests/test_web.py::test_the_index_json_carries_the_plan_the_spans_and_the_problems
0.00s call     tests/test_remote.py::test_the_audit_trail_survives_the_push_unaltered
0.00s call     tests/test_web.py::test_a_rule_newer_than_the_record_reaches_the_client_as_a_warning
0.00s setup    tests/test_web.py::test_all_five_kinds_are_read_through_the_one_cache
0.00s call     tests/test_web.py::test_the_index_json_keeps_the_fields_only_a_pitch_or_a_task_has
0.00s call     tests/test_web.py::test_an_asset_name_that_is_not_a_hash_never_becomes_a_path
0.00s setup    tests/test_web.py::test_the_index_is_redrawn_when_the_day_moves
0.00s call     tests/test_web.py::test_a_record_that_does_not_exist_is_a_404_and_not_an_empty_page
0.00s setup    tests/test_web.py::test_the_app_exposes_the_flag_that_ends_its_event_streams
0.00s setup    tests/test_socket_offer.py::test_a_reader_is_not_offered_a_socket
0.00s call     tests/test_web.py::test_a_create_cannot_choose_its_own_kind_of_directory
0.00s setup    tests/test_web.py::test_the_runner_sets_that_flag_when_it_is_told_to_exit
0.00s setup    tests/test_web.py::test_the_deployment_keeps_the_prefix_and_its_guarantee
0.00s setup    tests/test_web.py::test_github_mode_refuses_to_start_on_a_development_default[the-default-signing-secret]
0.00s setup    tests/test_web.py::test_a_session_set_before_tls_is_still_a_session
0.00s setup    tests/test_web.py::test_the_server_reads_the_same_config_the_cli_does
0.00s setup    tests/test_web.py::test_github_mode_refuses_to_start_on_a_development_default[no-client-secret]
0.00s setup    tests/test_web.py::test_github_mode_refuses_to_start_on_a_development_default[no-client-id]
0.00s setup    tests/test_socket_offer.py::test_a_reader_can_still_read_the_whole_record
0.00s setup    tests/test_coedit.py::test_a_socket_re_reads_the_session_it_was_opened_with
0.00s setup    tests/test_web.py::test_a_warmed_server_builds_one_index_for_the_first_burst_not_one_each
0.00s call     tests/test_web.py::test_a_delete_of_something_that_is_not_there_is_a_404
0.00s call     tests/test_web.py::test_a_cycle_field_the_record_cannot_hold_is_refused_not_raised[fields8-starts_on]
0.00s setup    tests/test_web.py::test_a_reader_is_offered_no_door_they_cannot_walk_through
0.00s setup    tests/test_socket_offer.py::test_a_dev_run_offers_the_socket_it_would_accept
0.00s setup    tests/test_socket_offer.py::test_a_member_is
0.00s setup    tests/test_coedit.py::test_a_restart_loses_nothing_that_was_committed
0.00s setup    tests/test_coedit.py::test_a_stranger_is_refused_the_socket_and_told_why
0.00s call     tests/test_remote.py::test_push_refuses_to_resolve_a_divergence_by_itself
0.00s call     tests/test_coedit.py::test_a_room_for_a_record_that_is_not_there_never_opens
0.00s call     tests/test_web.py::test_a_session_cookie_is_one_a_browser_will_actually_store
0.00s call     tests/test_web.py::test_login_binds_a_fresh_state_to_the_browser
0.00s call     tests/test_web.py::test_the_preview_renders_with_the_page_s_own_markdown
0.00s call     tests/test_web.py::test_a_session_login_no_file_can_be_named_for_writes_nothing[../../etc/passwd]
0.00s call     tests/test_coedit.py::test_every_index_into_the_document_is_converted
0.00s call     tests/test_web.py::test_a_session_login_no_file_can_be_named_for_writes_nothing[ann
0.00s call     tests/test_web.py::test_a_sign_in_somebody_cancelled_says_so
0.00s call     tests/test_web.py::test_a_session_login_no_file_can_be_named_for_writes_nothing[ann.md]
0.00s call     tests/test_web.py::test_an_id_that_is_not_an_id_never_becomes_a_path[task-c0001]
0.00s call     tests/test_web.py::test_a_session_login_no_file_can_be_named_for_writes_nothing[a/b]
0.00s call     tests/test_web.py::test_a_session_login_no_file_can_be_named_for_writes_nothing[-ann]
0.00s call     tests/test_web.py::test_the_service_says_which_version_it_is_running
0.00s call     tests/test_web.py::test_an_id_that_is_not_an_id_never_becomes_a_path[task-zzzzzz]
0.00s call     tests/test_web.py::test_the_health_check_is_reachable_at_a_path_that_is_ours
0.00s call     tests/test_web.py::test_an_id_that_is_not_an_id_never_becomes_a_path[not-an-id]
0.00s call     tests/test_web.py::test_the_corner_knows_a_member_from_somebody_who_only_signed_in
0.00s call     tests/test_web.py::test_a_request_that_is_not_an_object_is_refused_rather_than_raised[5-POST-/api/record]
0.00s call     tests/test_web.py::test_a_stranger_and_a_non_member_are_both_refused
0.00s call     tests/test_web.py::test_an_id_that_is_not_an_id_never_becomes_a_path[]
0.00s call     tests/test_web.py::test_nothing_in_the_request_can_name_somebody_else
0.00s call     tests/test_web.py::test_saving_a_record_that_does_not_exist_is_a_404
0.00s call     tests/test_web.py::test_a_request_that_is_not_an_object_is_refused_rather_than_raised[[]-PUT-/api/icon]
0.00s call     tests/test_remote.py::test_with_no_remote_a_write_behaves_exactly_as_it_does_today
0.00s call     tests/test_web.py::test_a_request_that_is_not_an_object_is_refused_rather_than_raised[null-POST-/api/record]
0.00s call     tests/test_web.py::test_an_icon_the_page_cannot_draw_is_refused_rather_than_stored[dragon]
0.00s call     tests/test_web.py::test_a_base_this_repository_never_had_is_refused_rather_than_raised[]
0.00s call     tests/test_web.py::test_an_icon_the_page_cannot_draw_is_refused_rather_than_stored[icon6]
0.00s call     tests/test_web.py::test_a_save_without_a_real_base_commit_is_refused_at_both_doors[__MISSING__-PATCH-/api/record/task-c00001]
0.00s call     tests/test_web.py::test_a_cycle_the_server_could_not_read_back_is_never_committed
0.00s call     tests/test_web.py::test_fields_that_are_not_a_map_are_refused_rather_than_raised[POST-/api/record]
0.00s call     tests/test_web.py::test_an_icon_the_page_cannot_draw_is_refused_rather_than_stored[]
0.00s call     tests/test_web.py::test_a_request_body_that_is_not_json_is_refused_rather_than_raised[PATCH-/api/record/task-c00001]
0.00s call     tests/test_web.py::test_a_request_body_that_is_not_json_is_refused_rather_than_raised[PUT-/api/icon]
0.00s call     tests/test_web.py::test_a_save_without_a_real_base_commit_is_refused_at_both_doors[7-PATCH-/api/record/task-c00001]
0.00s call     tests/test_web.py::test_a_save_without_a_real_base_commit_is_refused_at_both_doors["0000000000000000000000000000000000000000"-PATCH-/api/record/task-c00001]
0.00s call     tests/test_web.py::test_an_icon_the_page_cannot_draw_is_refused_rather_than_stored[7]
0.00s call     tests/test_web.py::test_an_icon_the_page_cannot_draw_is_refused_rather_than_stored[sun
0.00s call     tests/test_web.py::test_a_session_login_no_file_can_be_named_for_writes_nothing[aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa]
0.00s call     tests/test_web.py::test_a_body_that_is_not_text_is_refused_rather_than_raised[POST-/api/record]
0.00s call     tests/test_web.py::test_a_request_that_is_not_an_object_is_refused_rather_than_raised[5-PUT-/api/icon]
0.00s call     tests/test_web.py::test_a_request_that_is_not_an_object_is_refused_rather_than_raised["a
0.00s call     tests/test_web.py::test_an_icon_the_page_cannot_draw_is_refused_rather_than_stored[SUN]
0.00s call     tests/test_web.py::test_an_icon_the_page_cannot_draw_is_refused_rather_than_stored[../config/defaults]
0.00s call     tests/test_web.py::test_a_request_that_is_not_an_object_is_refused_rather_than_raised[null-PUT-/api/icon]
0.00s call     tests/test_web.py::test_a_base_this_repository_never_had_is_refused_rather_than_raised[0000000000000000000000000000000000000000]
0.00s call     tests/test_web.py::test_a_save_without_a_real_base_commit_is_refused_at_both_doors[null-PATCH-/api/record/task-c00001]
0.00s call     tests/test_web.py::test_a_body_that_is_not_text_is_refused_rather_than_raised[PATCH-/api/record/task-c00001]
0.00s call     tests/test_web.py::test_a_request_that_is_not_an_object_is_refused_rather_than_raised[null-PATCH-/api/record/task-c00001]
0.00s call     tests/test_web.py::test_a_request_that_is_not_an_object_is_refused_rather_than_raised[[]-POST-/api/record]
0.00s call     tests/test_web.py::test_a_save_without_a_real_base_commit_is_refused_at_both_doors[""-PATCH-/api/record/task-c00001]
0.00s call     tests/test_web.py::test_a_cycle_field_the_record_cannot_hold_is_refused_not_raised[fields6-not
0.00s call     tests/test_web.py::test_a_base_this_repository_never_had_is_refused_rather_than_raised[not-a-sha]
0.00s call     tests/test_web.py::test_a_request_body_that_is_not_json_is_refused_rather_than_raised[POST-/api/record]
0.00s call     tests/test_web.py::test_a_cycle_field_the_record_cannot_hold_is_refused_not_raised[fields2-starts_on]
0.00s call     tests/test_web.py::test_a_cycle_field_the_record_cannot_hold_is_refused_not_raised[fields0-starts_on]
0.00s call     tests/test_web.py::test_a_request_that_is_not_an_object_is_refused_rather_than_raised[null-PUT-/api/cycle/3]
0.00s call     tests/test_web.py::test_fields_that_are_not_a_map_are_refused_rather_than_raised[PUT-/api/cycle/3]
0.00s call     tests/test_web.py::test_a_cycle_field_the_record_cannot_hold_is_refused_not_raised[fields3-reviews_on]
0.00s call     tests/test_web.py::test_a_request_that_is_not_an_object_is_refused_rather_than_raised[5-PATCH-/api/record/task-c00001]
0.00s call     tests/test_web.py::test_a_save_without_a_real_base_commit_is_refused_at_both_doors[__MISSING__-PUT-/api/cycle/3]
0.00s call     tests/test_web.py::test_a_cycle_field_the_record_cannot_hold_is_refused_not_raised[fields7-'nan']
0.00s call     tests/test_web.py::test_a_cycle_field_the_record_cannot_hold_is_refused_not_raised[fields1-starts_on]
0.00s call     tests/test_web.py::test_a_request_body_that_is_not_json_is_refused_rather_than_raised[POST-/api/preview]
0.00s call     tests/test_web.py::test_a_cycle_field_the_record_cannot_hold_is_refused_not_raised[fields4-reviews_on]
0.00s call     tests/test_web.py::test_a_save_without_a_real_base_commit_is_refused_at_both_doors["zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz"-PATCH-/api/record/task-c00001]
0.00s call     tests/test_web.py::test_a_request_that_is_not_an_object_is_refused_rather_than_raised[5-PUT-/api/cycle/3]
0.00s call     tests/test_web.py::test_a_cycle_field_the_record_cannot_hold_is_refused_not_raised[fields5-'the
0.00s call     tests/test_web.py::test_a_save_without_a_real_base_commit_is_refused_at_both_doors[7-PUT-/api/cycle/3]
0.00s call     tests/test_web.py::test_a_save_without_a_real_base_commit_is_refused_at_both_doors["0000000000000000000000000000000000000000"-PUT-/api/cycle/3]
0.00s call     tests/test_web.py::test_a_request_body_that_is_not_json_is_refused_rather_than_raised[PUT-/api/cycle/3]
0.00s call     tests/test_web.py::test_a_save_without_a_real_base_commit_is_refused_at_both_doors[null-PUT-/api/cycle/3]
0.00s call     tests/test_web.py::test_a_save_without_a_real_base_commit_is_refused_at_both_doors["zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz"-PUT-/api/cycle/3]
0.00s call     tests/test_web.py::test_a_save_without_a_real_base_commit_is_refused_at_both_doors[""-PUT-/api/cycle/3]
0.00s call     tests/test_web.py::test_a_body_that_is_not_text_is_refused_rather_than_raised[PUT-/api/cycle/3]
0.00s call     tests/test_web.py::test_the_server_reads_the_same_config_the_cli_does
0.00s call     tests/test_web.py::test_a_request_that_is_not_an_object_is_refused_rather_than_raised[[]-PUT-/api/cycle/3]
0.00s call     tests/test_web.py::test_an_id_that_is_not_an_id_never_becomes_a_path[tasks%2Ftask-c00001]
0.00s call     tests/test_web.py::test_an_id_that_is_not_an_id_never_becomes_a_path[task-c00001%2F..%2F..%2Fconfig%2Fdefaults]
0.00s call     tests/test_web.py::test_an_id_that_is_not_an_id_never_becomes_a_path[../config/defaults]
0.00s call     tests/test_web.py::test_an_id_that_is_not_an_id_never_becomes_a_path[..%2F..%2Fconfig%2Fdefaults]
0.00s call     tests/test_web.py::test_a_request_that_is_not_an_object_is_refused_rather_than_raised[null-POST-/api/preview]
0.00s call     tests/test_web.py::test_who_you_are_does_not_carry_a_token
0.00s call     tests/test_web.py::test_a_request_that_is_not_an_object_is_refused_rather_than_raised[5-POST-/api/preview]
0.00s call     tests/test_web.py::test_a_request_that_is_not_an_object_is_refused_rather_than_raised[[]-POST-/api/preview]
0.00s call     tests/test_web.py::test_a_forged_cookie_is_a_stranger_in_the_corner
0.00s call     tests/test_web.py::test_the_preview_still_refuses_html
0.00s call     tests/test_web.py::test_a_request_that_is_not_an_object_is_refused_rather_than_raised[[]-PATCH-/api/record/task-c00001]
0.00s teardown tests/test_web.py::test_a_committed_size_larger_than_the_calendar_leaves_every_page_readable
0.00s call     tests/test_validate.py::test_each_rung_accepts_exactly_its_own_status_words
0.00s teardown tests/test_coedit.py::test_an_edit_in_the_second_surface_reaches_the_room_as_the_character_it_was[an
0.00s call     tests/test_validate.py::test_a_kind_that_reads_no_status_has_no_vocabulary_to_violate
0.00s teardown tests/test_web.py::test_the_parse_cache_survives_readers_arriving_at_once
0.00s call     tests/test_web.py::test_a_preview_of_something_that_is_not_text_still_answers
0.00s teardown tests/test_web.py::test_a_done_date_at_the_end_of_the_calendar_leaves_a_timeline_you_can_open
0.00s teardown tests/test_coedit.py::test_an_edit_in_the_second_surface_reaches_the_room_as_the_character_it_was[a
0.00s teardown tests/test_web.py::test_a_record_is_parsed_once_however_many_commits_leave_it_alone
0.00s teardown tests/test_web.py::test_health_counts_the_commits_that_are_only_on_this_disk
0.00s teardown tests/test_web.py::test_health_clears_itself_when_the_fork_does_and_needs_no_restart
0.00s call     tests/test_web.py::test_a_stranger_is_told_so_without_an_error
0.00s teardown tests/test_web.py::test_health_says_no_when_this_disk_and_the_plan_have_forked
0.00s teardown tests/test_web.py::test_a_committed_parent_that_names_nothing_leaves_every_page_readable
0.00s teardown tests/test_web.py::test_a_commit_message_still_names_the_fields_a_save_moved
0.00s teardown tests/test_web.py::test_a_stored_image_is_drawn_and_a_remote_one_is_not
0.00s teardown tests/test_web.py::test_the_health_route_never_reaches_the_network
0.00s teardown tests/test_coedit.py::test_an_edit_across_an_emoji_reaches_the_room_as_the_character_it_was[a
0.00s teardown tests/test_coedit.py::test_a_socket_that_keeps_dropping_gives_up_even_when_nobody_says_why
0.00s teardown tests/test_web.py::test_a_field_the_record_can_hold_is_still_written
0.00s teardown tests/test_coedit.py::test_backspacing_a_whole_glyph_in_the_second_surface_leaves_both_copies_agreeing[one
0.00s teardown tests/test_web.py::test_a_carried_item_cannot_be_re_stamped_from_the_cycle_page
0.00s teardown tests/test_coedit.py::test_saving_in_a_room_leaves_the_read_view_showing_what_was_saved
0.00s teardown tests/test_coedit.py::test_an_edit_across_an_emoji_reaches_the_room_as_the_character_it_was[an
0.00s teardown tests/test_web.py::test_only_the_named_are_in_a_cycle
0.00s teardown tests/test_web.py::test_a_pr_reference_is_linked_in_prose_and_left_alone_everywhere_else
0.00s teardown tests/test_web.py::test_shelved_work_is_taken_with_it_rather_than_left_behind
0.00s teardown tests/test_web.py::test_an_honest_dependency_still_lands
0.00s teardown tests/test_web.py::test_clearing_an_icon_says_so_in_the_record_rather_than_deleting_it
0.00s teardown tests/test_web.py::test_a_commit_message_names_only_fields_this_server_knows
0.00s teardown tests/test_coedit.py::test_a_substitution_over_a_whole_document_is_announced_before_it_is_sent
0.00s teardown tests/test_web.py::test_a_save_cannot_make_a_record_wait_for_itself
0.00s teardown tests/test_web.py::test_an_icon_is_one_of_the_ones_the_picker_offers
0.00s teardown tests/test_coedit.py::test_the_parsed_editing_surface_answers_the_body_the_server_rendered
0.00s teardown tests/test_web.py::test_every_write_route_answers_a_sentence_when_the_plan_has_forked
0.00s teardown tests/test_web.py::test_a_save_to_a_record_neither_side_touched_is_refused_in_words
0.00s teardown tests/test_web.py::test_a_cycle_card_says_the_bet_against_the_capacity
0.00s teardown tests/test_web.py::test_a_member_writes_as_themselves
0.00s teardown tests/test_web.py::test_a_forked_plan_is_not_spelled_as_the_code_the_pages_read_as_a_conflict
0.00s teardown tests/test_web.py::test_a_write_is_seen_by_the_very_next_read
0.00s teardown tests/test_web.py::test_the_glyph_that_takes_somebody_out_of_a_cycle_says_so_and_asks
0.00s teardown tests/test_web.py::test_every_cycle_the_plan_names_is_on_the_index
0.00s call     tests/test_validate.py::test_a_parent_of_the_wrong_kind_is_named_as_such
0.00s teardown tests/test_web.py::test_a_record_the_server_could_not_read_back_is_never_committed[assigned_on-7]
0.00s teardown tests/test_web.py::test_the_refusal_names_the_chain_and_not_merely_the_record
0.00s teardown tests/test_coedit.py::test_opening_the_second_surface_changes_no_byte_of_the_document
0.00s teardown tests/test_web.py::test_a_record_the_server_could_not_read_back_is_never_committed[tags-value8]
0.00s teardown tests/test_web.py::test_the_refused_write_says_what_to_do_and_the_room_still_says_its_half
0.00s teardown tests/test_web.py::test_a_stale_base_whose_file_nobody_touched_is_retried_silently
0.00s teardown tests/test_web.py::test_the_cycle_page_shows_load_against_capacity
0.00s teardown tests/test_coedit.py::test_an_edit_across_an_emoji_reaches_the_room_through_the_adapter[a
0.00s teardown tests/test_coedit.py::test_an_edit_in_the_second_surface_reaches_the_room_as_the_character_it_was[backspacing
0.00s teardown tests/test_web.py::test_a_record_the_server_could_not_read_back_is_never_committed[parent-3]
0.00s call     tests/test_validate.py::test_a_fully_specified_record_has_no_problems
0.00s teardown tests/test_web.py::test_nothing_edits_a_record_after_it_has_been_parsed
0.00s teardown tests/test_web.py::test_a_record_the_server_could_not_read_back_is_never_committed[title-5]
0.00s teardown tests/test_web.py::test_the_proposal_ignores_a_cycle_that_only_a_record_mentions
0.00s teardown tests/test_web.py::test_the_preview_shows_what_the_page_will_show
0.00s teardown tests/test_web.py::test_every_write_answer_says_whether_the_commit_reached_the_remote
0.00s teardown tests/test_coedit.py::test_undo_never_takes_back_something_somebody_else_typed
0.00s teardown tests/test_web.py::test_a_record_that_merely_depends_on_this_one_keeps_its_file
0.00s teardown tests/test_coedit.py::test_a_carriage_return_in_a_room_is_a_thing_the_box_cannot_hold
0.00s teardown tests/test_coedit.py::test_somebody_elses_keystroke_is_reflected_and_never_sent_back
0.00s teardown tests/test_coedit.py::test_a_socket_the_server_turns_away_is_not_asked_again
0.00s teardown tests/test_web.py::test_a_record_the_server_could_not_read_back_is_never_committed[tags-value7]
0.00s teardown tests/test_coedit.py::test_what_the_room_said_about_a_save_survives_the_reload
0.00s teardown tests/test_coedit.py::test_two_editors_in_one_room_over_a_body_with_crlf_in_it_settle_on_one_document
0.00s teardown tests/test_web.py::test_a_record_the_server_could_not_read_back_is_never_committed[assigned_on-six]
0.00s teardown tests/test_coedit.py::test_an_edit_across_an_emoji_reaches_the_room_through_the_adapter[an
0.00s teardown tests/test_web.py::test_a_genuine_collision_is_a_409_that_writes_nothing
0.00s teardown tests/test_coedit.py::test_an_edit_across_an_emoji_reaches_the_room_as_the_character_it_was[the
0.00s teardown tests/test_coedit.py::test_an_edit_across_an_emoji_reaches_the_room_through_the_adapter[the
0.00s teardown tests/test_coedit.py::test_undo_in_a_room_gives_back_your_own_last_thing_on_the_textarea
0.00s teardown tests/test_web.py::test_a_save_against_the_current_head_is_committed
0.00s teardown tests/test_web.py::test_a_save_onto_a_record_deleted_in_git_never_writes_it_back[parent-proj-a10000]
0.00s teardown tests/test_coedit.py::test_a_draft_in_the_box_is_offered_to_a_room_that_has_not_moved
0.00s teardown tests/test_web.py::test_a_record_the_server_could_not_read_back_is_never_committed[title-value2]
0.00s teardown tests/test_coedit.py::test_the_page_degrades_to_todays_editor_when_the_socket_never_opens
0.00s teardown tests/test_web.py::test_a_record_the_server_could_not_read_back_is_never_committed[assigned_on-]
0.00s teardown tests/test_coedit.py::test_an_edit_across_an_emoji_reaches_the_room_through_the_adapter[backspacing
0.00s teardown tests/test_coedit.py::test_an_edit_in_the_second_surface_reaches_the_room_as_the_character_it_was[the
0.00s teardown tests/test_web.py::test_a_record_the_server_could_not_read_back_is_never_committed[created_schema_version-x]
0.00s teardown tests/test_web.py::test_no_page_declares_one_name_twice[/graph]
0.00s teardown tests/test_web.py::test_a_record_the_server_could_not_read_back_is_never_committed[owner-value1]
0.00s teardown tests/test_coedit.py::test_an_edit_across_an_emoji_reaches_the_room_as_the_character_it_was[backspacing
0.00s teardown tests/test_web.py::test_an_edited_record_is_read_again_rather_than_remembered
0.00s teardown tests/test_web.py::test_deleting_a_record_deletes_everything_filed_under_it
0.00s teardown tests/test_web.py::test_a_delete_over_somebody_elses_edit_is_refused_rather_than_merged
0.00s teardown tests/test_coedit.py::test_the_history_buttons_answer_the_keyboard_and_say_when_a_stack_is_empty
0.00s teardown tests/test_coedit.py::test_the_page_stops_saving_when_the_room_says_there_was_nothing_to_save
0.00s teardown tests/test_web.py::test_healthz_reports_the_commit_being_served
0.00s teardown tests/test_web.py::test_an_icon_request_with_no_icon_in_it_is_not_a_clear
0.00s teardown tests/test_web.py::test_two_people_deleting_one_record_do_not_both_report_a_deletion
0.00s teardown tests/test_web.py::test_a_partial_save_changes_only_the_lines_it_was_asked_to
0.00s teardown tests/test_web.py::test_one_decision_is_one_commit
0.00s teardown tests/test_web.py::test_a_cycle_is_created_and_then_updated_in_place
0.00s teardown tests/test_web.py::test_the_commit_author_is_the_signed_in_user
0.00s teardown tests/test_web.py::test_the_bet_lists_what_to_pick_up_before_what_is_running
0.00s teardown tests/test_web.py::test_every_write_a_page_makes_is_announced_before_and_after_it[/graph]
0.00s teardown tests/test_web.py::test_the_confirmation_is_binding
0.00s teardown tests/test_web.py::test_a_record_whose_filename_carries_a_slug_is_still_found
0.00s teardown tests/test_web.py::test_a_plan_that_already_holds_a_loop_still_loads
0.00s teardown tests/test_web.py::test_two_people_changing_different_fields_of_one_record_are_merged
0.00s teardown tests/test_web.py::test_the_roster_is_not_touched_by_somebody_choosing_a_picture
0.00s call     tests/test_validate.py::test_a_stale_vocabulary_still_schedules_and_renders
0.00s teardown tests/test_web.py::test_a_field_name_cannot_write_its_own_commit_trailer
0.00s teardown tests/test_web.py::test_no_conflict_marker_ever_reaches_the_browser
0.00s teardown tests/test_web.py::test_a_deleted_record_is_gone_from_every_page_that_drew_it
0.00s teardown tests/test_web.py::test_a_create_is_not_refused_over_a_warning
0.00s teardown tests/test_web.py::test_a_create_records_its_author_like_any_other_write
0.00s teardown tests/test_web.py::test_logging_out_ends_the_ability_to_write
0.00s teardown tests/test_web.py::test_no_page_declares_one_name_twice[/detail/task-c00001]
0.00s teardown tests/test_web.py::test_a_cycle_record_reaches_the_pages_it_is_for
0.00s teardown tests/test_coedit.py::test_a_tab_that_is_only_watching_the_second_surface_is_credited_zero_characters
0.00s teardown tests/test_web.py::test_the_bet_table_names_a_status_in_the_colour_every_other_page_uses
0.00s teardown tests/test_web.py::test_the_whole_subtree_goes_however_deep_it_is
0.00s teardown tests/test_web.py::test_an_icon_is_written_to_the_record_named_for_the_session
0.00s teardown tests/test_web.py::test_a_save_onto_a_record_deleted_in_git_never_writes_it_back[owner-bo]
0.00s setup    tests/test_payload.py::test_a_size_somebody_hand_edited_does_not_empty_the_table[-.inf]
0.00s teardown tests/test_web.py::test_a_record_the_server_could_not_read_back_is_never_committed[owner-value0]
0.00s call     tests/test_model.py::test_the_goal_is_a_field_and_the_notes_are_the_body
0.00s teardown tests/test_web.py::test_an_uploaded_image_is_named_by_its_contents
0.00s teardown tests/test_web.py::test_a_delete_takes_the_file_out_of_the_plan_and_leaves_it_in_the_history
0.00s teardown tests/test_web.py::test_a_create_mints_the_id_and_files_it_by_kind
0.00s teardown tests/test_web.py::test_a_sentence_somebody_wrote_about_themselves_survives_a_pick
0.00s teardown tests/test_web.py::test_a_cycle_record_longer_than_the_calendar_leaves_every_page_readable
0.00s setup    tests/test_payload.py::test_the_index_route_answers_rather_than_faulting_on_such_a_size[.inf]
0.00s teardown tests/test_web.py::test_the_content_stays_public_when_nobody_is_signed_in
0.00s teardown tests/test_web.py::test_a_field_the_client_did_not_send_is_not_rewritten
0.00s teardown tests/test_web.py::test_a_second_person_picking_leaves_the_first_persons_record_alone
0.00s setup    tests/test_payload.py::test_every_page_still_serves_when_a_file_carries_such_a_size[-.inf]
0.00s teardown tests/test_web.py::test_a_saved_body_replaces_the_body_and_nothing_else
0.00s teardown tests/test_coedit.py::test_the_served_detail_page_carries_the_room_and_no_other_page_does
0.00s teardown tests/test_web.py::test_a_new_record_is_held_to_the_current_rules
0.00s teardown tests/test_web.py::test_the_author_can_never_be_supplied_by_the_client
0.00s teardown tests/test_web.py::test_a_writer_is_offered_the_door
0.00s teardown tests/test_web.py::test_a_date_the_record_can_hold_is_written_in_the_spelling_the_corpus_uses
0.00s setup    tests/test_payload.py::test_a_size_somebody_hand_edited_does_not_empty_the_table[.nan]
0.00s teardown tests/test_web.py::test_both_editors_send_the_title_they_are_previewing
0.00s teardown tests/test_web.py::test_an_uploaded_image_comes_back_byte_for_byte
0.00s teardown tests/test_web.py::test_the_graph_still_carries_its_libraries_inline
0.00s teardown tests/test_web.py::test_a_cycle_number_no_save_would_accept_is_not_a_page[-1]
0.00s teardown tests/test_web.py::test_a_cycle_with_no_record_is_a_form_and_says_so
0.00s teardown tests/test_web.py::test_every_route_says_which_nav_item_it_is
0.00s teardown tests/test_web.py::test_the_bet_table_wears_no_class_the_page_cannot_draw
0.00s teardown tests/test_web.py::test_picking_the_icon_you_already_have_is_not_a_commit
0.00s teardown tests/test_web.py::test_no_page_declares_one_name_twice[/new?kind=task]
0.00s call     tests/test_web.py::test_there_is_no_icon_route_that_takes_a_name[/api/icon/bo]
0.00s teardown tests/test_web.py::test_a_save_cannot_file_a_record_under_its_own_child
0.00s teardown tests/test_web.py::test_every_view_is_served_as_a_page[/graph]
0.00s setup    tests/test_payload.py::test_a_size_somebody_hand_edited_does_not_empty_the_table[.inf]
0.00s setup    tests/test_payload.py::test_every_page_still_serves_when_a_file_carries_such_a_size[.nan]
0.00s call     tests/test_validate.py::test_a_word_nobody_defined_is_a_problem_and_not_a_crash
0.00s teardown tests/test_web.py::test_a_cycle_number_no_save_would_accept_is_not_a_page[99999]
0.00s teardown tests/test_web.py::test_every_write_a_page_makes_is_announced_before_and_after_it[/detail/task-c00001]
0.00s teardown tests/test_web.py::test_a_cycle_longer_than_the_calendar_is_refused_and_writes_nothing
0.00s teardown tests/test_web.py::test_a_status_nobody_defined_is_refused_at_both_doors
0.00s setup    tests/test_web.py::test_one_save_does_not_stop_the_rest_of_the_process
0.00s teardown tests/test_model.py::test_a_sentence_somebody_wrote_about_themselves_survives_a_pick
0.00s teardown tests/test_web.py::test_a_signed_in_non_member_is_refused_at_the_write
0.00s teardown tests/test_web.py::test_a_request_body_that_is_not_json_is_refused_rather_than_raised[POST-/api/preview]
0.00s teardown tests/test_web.py::test_a_cookie_this_server_did_not_sign_is_nobody
0.00s teardown tests/test_web.py::test_a_served_page_navigates_by_route_and_not_by_filename
0.00s teardown tests/test_coedit.py::test_a_room_opens_holding_exactly_what_the_page_is_showing
0.00s teardown tests/test_coedit.py::test_a_refused_room_tries_again_on_the_next_window
0.00s call     tests/test_web.py::test_there_is_no_icon_route_that_takes_a_name[/api/icon/ann]
0.00s teardown tests/test_web.py::test_a_cycle_number_no_save_would_accept_is_not_a_page[10000]
0.00s teardown tests/test_web.py::test_a_reader_who_cannot_write_is_shown_no_picker
0.00s teardown tests/test_web.py::test_no_page_declares_one_name_twice[/people]
0.00s teardown tests/test_web.py::test_a_backwards_window_does_not_invert_the_drawing
0.00s teardown tests/test_web.py::test_an_anonymous_visitor_cannot_write
0.00s teardown tests/test_web.py::test_a_detail_route_serves_one_record_and_not_the_whole_corpus
0.00s teardown tests/test_web.py::test_the_unsaved_count_and_the_receipt_count_the_same_thing
0.00s teardown tests/test_web.py::test_the_corner_knows_a_member_from_somebody_who_only_signed_in
0.00s call     tests/test_web.py::test_there_is_no_icon_route_that_takes_a_name[/api/icon/config]
0.00s teardown tests/test_web.py::test_starting_a_cycle_asks_before_it_writes
0.00s teardown tests/test_web.py::test_a_create_the_server_could_not_read_back_says_which_field[fields3-reviewers]
0.00s teardown tests/test_web.py::test_the_index_json_keeps_the_fields_only_a_pitch_or_a_task_has
0.00s teardown tests/test_web.py::test_a_nonsense_window_falls_back_instead_of_failing
0.00s teardown tests/test_web.py::test_the_detail_page_says_which_record_it_is_looking_at
0.00s teardown tests/test_web.py::test_a_forged_cookie_is_a_stranger_in_the_corner
0.00s setup    tests/test_payload.py::test_the_index_route_answers_rather_than_faulting_on_such_a_size[-.inf]
0.00s teardown tests/test_web.py::test_every_view_is_served_as_a_page[/timeline]
0.00s setup    tests/test_payload.py::test_the_index_route_answers_rather_than_faulting_on_such_a_size[.nan]
0.00s teardown tests/test_web.py::test_a_session_login_no_file_can_be_named_for_writes_nothing[ann
0.00s teardown tests/test_web.py::test_an_anonymous_visitor_cannot_delete
0.00s setup    tests/test_payload.py::test_every_page_still_serves_when_a_file_carries_such_a_size[.inf]
0.00s teardown tests/test_web.py::test_every_write_a_page_makes_is_announced_before_and_after_it[/new?kind=task]
0.00s setup    tests/test_remote.py::test_a_write_answered_200_is_a_write_that_reached_the_remote
0.00s teardown tests/test_web.py::test_a_file_that_will_not_parse_is_not_remembered_as_an_answer
0.00s teardown tests/test_web.py::test_who_you_are_does_not_carry_a_token
0.00s teardown tests/test_web.py::test_the_cycle_page_puts_the_forecast_next_to_the_capacity
0.00s teardown tests/test_web.py::test_the_cycle_page_says_what_is_unsaved_and_that_a_save_landed
0.00s teardown tests/test_web.py::test_every_view_is_served_as_a_page[/detail/task-c00001]
0.00s teardown tests/test_web.py::test_two_reads_of_one_commit_build_the_index_once
0.00s teardown tests/test_coedit.py::test_a_commit_the_room_made_is_not_somebody_else_changing_it
0.00s teardown tests/test_web.py::test_a_create_the_server_could_not_read_back_says_which_field[fields5-created_schema_version]
0.00s teardown tests/test_web.py::test_no_page_declares_one_name_twice[/deck/37]
0.00s setup    tests/test_remote.py::test_a_push_rejected_by_a_moved_remote_is_retried_once
0.00s setup    tests/test_remote.py::test_a_write_that_loses_the_race_runs_again_and_lands
0.00s setup    tests/test_remote.py::test_one_save_talks_to_the_remote_once
0.00s setup    tests/test_remote.py::test_an_upload_reaches_the_remote_like_every_other_commit
0.00s teardown tests/test_web.py::test_a_create_the_server_could_not_read_back_says_which_field[fields4-tags]
0.00s teardown tests/test_web.py::test_the_people_page_offers_the_picker_only_to_whoever_may_use_it
0.00s teardown tests/test_web.py::test_a_create_the_server_could_not_read_back_says_which_field[fields2-assigned_on]
0.00s teardown tests/test_web.py::test_a_create_the_server_could_not_read_back_says_which_field[fields1-title]
0.00s teardown tests/test_coedit.py::test_two_sessions_converge_on_the_same_text
0.00s teardown tests/test_web.py::test_a_create_missing_its_status_gated_fields_is_refused
0.00s teardown tests/test_web.py::test_every_write_a_page_makes_is_announced_before_and_after_it[/cycle/1]
0.00s teardown tests/test_web.py::test_a_receipt_the_cycle_page_draws_is_a_receipt_it_announces
0.00s teardown tests/test_web.py::test_the_page_a_stranger_reads_has_no_live_region_to_lose
0.00s call     tests/test_validate.py::test_nothing_is_asked_of_a_record_nobody_has_looked_at
0.00s teardown tests/test_web.py::test_a_person_record_is_one_directory_deep_and_no_deeper
0.00s teardown tests/test_web.py::test_every_control_on_the_cycle_page_has_a_name
0.00s teardown tests/test_web.py::test_no_page_declares_one_name_twice[/cycles]
0.00s teardown tests/test_web.py::test_a_cycle_field_the_record_cannot_hold_is_refused_not_raised[fields7-'nan']
0.00s teardown tests/test_web.py::test_a_size_that_is_not_a_number_is_refused_at_both_doors[inf]
0.00s teardown tests/test_web.py::test_every_view_is_served_as_a_page[/table]
0.00s teardown tests/test_web.py::test_a_preview_of_something_that_is_not_text_still_answers
0.00s teardown tests/test_web.py::test_a_create_the_server_could_not_read_back_says_which_field[fields0-title]
0.00s teardown tests/test_web.py::test_a_record_that_does_not_read_is_not_written_over_and_costs_one_person
0.00s teardown tests/test_web.py::test_the_save_button_is_in_reach_of_the_whole_betting_table
0.00s teardown tests/test_web.py::test_a_session_login_no_file_can_be_named_for_writes_nothing[../../etc/passwd]
0.00s teardown tests/test_web.py::test_every_write_a_page_makes_is_announced_before_and_after_it[/cycles]
0.00s teardown tests/test_web.py::test_a_size_that_is_not_a_number_is_refused_at_both_doors[nan]
0.00s teardown tests/test_coedit.py::test_an_overlap_is_still_the_same_refusal_it_has_always_been
0.00s teardown tests/test_web.py::test_no_page_declares_one_name_twice[/]
0.00s teardown tests/test_web.py::test_a_save_without_a_real_base_commit_is_refused_at_both_doors["zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz"-PUT-/api/cycle/3]
0.00s teardown tests/test_web.py::test_an_oversized_body_is_refused_at_the_door
0.00s teardown tests/test_web.py::test_every_write_a_page_makes_is_announced_before_and_after_it[/table]
0.00s teardown tests/test_web.py::test_a_refusal_has_somewhere_on_this_page_to_be_read
0.00s teardown tests/test_coedit.py::test_a_joiner_who_is_told_to_reload_does_not_swallow_a_commit_made_in_git
0.00s teardown tests/test_coedit.py::test_a_write_that_fails_is_a_refusal_and_not_an_escape
0.00s teardown tests/test_web.py::test_nothing_in_the_request_can_name_somebody_else
0.00s teardown tests/test_web.py::test_no_page_declares_one_name_twice[/detail]
0.00s teardown tests/test_coedit.py::test_the_timer_survives_a_failure_the_tuple_does_not_name
0.00s teardown tests/test_web.py::test_a_request_that_is_not_an_object_is_refused_rather_than_raised["a
0.00s teardown tests/test_web.py::test_every_view_is_served_as_a_page[/]
0.00s teardown tests/test_web.py::test_a_save_without_a_real_base_commit_is_refused_at_both_doors[__MISSING__-PATCH-/api/record/task-c00001]
0.00s teardown tests/test_web.py::test_the_table_renders_the_repository_as_it_is_right_now
0.00s teardown tests/test_web.py::test_a_create_cannot_choose_its_own_kind_of_directory
0.00s teardown tests/test_web.py::test_the_service_says_which_version_it_is_running
0.00s teardown tests/test_web.py::test_a_rule_newer_than_the_record_reaches_the_client_as_a_warning
0.00s teardown tests/test_web.py::test_the_index_json_carries_the_plan_the_spans_and_the_problems
0.00s teardown tests/test_web.py::test_an_icon_the_page_cannot_draw_is_refused_rather_than_stored[dragon]
0.00s teardown tests/test_web.py::test_two_files_with_the_same_bytes_are_two_records
0.00s teardown tests/test_web.py::test_a_request_that_is_not_an_object_is_refused_rather_than_raised[null-PATCH-/api/record/task-c00001]
0.00s teardown tests/test_web.py::test_a_callback_whose_state_does_not_match_is_abandoned
0.00s teardown tests/test_web.py::test_a_request_that_is_not_an_object_is_refused_rather_than_raised[5-PUT-/api/cycle/3]
0.00s teardown tests/test_web.py::test_every_view_is_served_as_a_page[/detail]
0.00s teardown tests/test_web.py::test_a_save_without_a_real_base_commit_is_refused_at_both_doors[""-PATCH-/api/record/task-c00001]
0.00s teardown tests/test_web.py::test_a_session_cookie_is_one_a_browser_will_actually_store
0.00s teardown tests/test_web.py::test_a_timeline_view_is_a_link
0.00s teardown tests/test_web.py::test_an_icon_the_page_cannot_draw_is_refused_rather_than_stored[7]
0.00s teardown tests/test_web.py::test_a_delete_of_something_that_is_not_there_is_a_404
0.00s teardown tests/test_web.py::test_fields_that_are_not_a_map_are_refused_rather_than_raised[POST-/api/record]
0.00s teardown tests/test_web.py::test_a_request_that_is_not_an_object_is_refused_rather_than_raised[5-POST-/api/record]
0.00s teardown tests/test_web.py::test_a_request_that_is_not_an_object_is_refused_rather_than_raised[[]-POST-/api/record]
0.00s teardown tests/test_web.py::test_a_request_that_is_not_an_object_is_refused_rather_than_raised[null-POST-/api/preview]
0.00s teardown tests/test_web.py::test_a_cycle_field_the_record_cannot_hold_is_refused_not_raised[fields6-not
0.00s teardown tests/test_web.py::test_fields_that_are_not_a_map_are_refused_rather_than_raised[PUT-/api/cycle/3]
0.00s teardown tests/test_web.py::test_login_binds_a_fresh_state_to_the_browser
0.00s teardown tests/test_web.py::test_a_save_without_a_real_base_commit_is_refused_at_both_doors[__MISSING__-PUT-/api/cycle/3]
0.00s teardown tests/test_web.py::test_a_stranger_is_told_so_without_an_error
0.00s teardown tests/test_web.py::test_a_request_that_is_not_an_object_is_refused_rather_than_raised[5-PATCH-/api/record/task-c00001]
0.00s teardown tests/test_web.py::test_a_base_this_repository_never_had_is_refused_rather_than_raised[]
0.00s teardown tests/test_web.py::test_a_save_without_a_real_base_commit_is_refused_at_both_doors["0000000000000000000000000000000000000000"-PATCH-/api/record/task-c00001]
0.00s teardown tests/test_web.py::test_fields_that_are_not_a_map_are_refused_rather_than_raised[PATCH-/api/record/task-c00001]
0.00s teardown tests/test_web.py::test_no_page_declares_one_name_twice[/timeline]
0.00s teardown tests/test_web.py::test_the_create_form_is_not_another_cycle_in_the_list
0.00s teardown tests/test_web.py::test_a_sign_in_somebody_cancelled_says_so
0.00s teardown tests/test_web.py::test_a_request_that_is_not_an_object_is_refused_rather_than_raised[null-PUT-/api/cycle/3]
0.00s teardown tests/test_web.py::test_a_session_login_no_file_can_be_named_for_writes_nothing[aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa]
0.00s teardown tests/test_web.py::test_a_save_without_a_real_base_commit_is_refused_at_both_doors[""-PUT-/api/cycle/3]
0.00s teardown tests/test_web.py::test_a_cycle_field_the_record_cannot_hold_is_refused_not_raised[fields1-starts_on]
0.00s teardown tests/test_web.py::test_an_id_that_is_not_an_id_never_becomes_a_path[]
0.00s teardown tests/test_web.py::test_a_request_that_is_not_an_object_is_refused_rather_than_raised[5-PUT-/api/icon]
0.00s teardown tests/test_web.py::test_a_save_without_a_real_base_commit_is_refused_at_both_doors["zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz"-PATCH-/api/record/task-c00001]
0.00s teardown tests/test_web.py::test_a_request_body_that_is_not_json_is_refused_rather_than_raised[POST-/api/record]
0.00s teardown tests/test_web.py::test_a_cycle_field_the_record_cannot_hold_is_refused_not_raised[fields3-reviews_on]
0.00s teardown tests/test_web.py::test_an_asset_name_that_is_not_a_hash_never_becomes_a_path
0.00s teardown tests/test_web.py::test_a_request_that_is_not_an_object_is_refused_rather_than_raised[null-PUT-/api/icon]
0.00s teardown tests/test_web.py::test_a_body_that_is_not_text_is_refused_rather_than_raised[PATCH-/api/record/task-c00001]
0.00s teardown tests/test_web.py::test_a_cycle_field_the_record_cannot_hold_is_refused_not_raised[fields2-starts_on]
0.00s teardown tests/test_web.py::test_a_body_that_is_not_text_is_refused_rather_than_raised[POST-/api/record]
0.00s teardown tests/test_web.py::test_a_request_that_is_not_an_object_is_refused_rather_than_raised[[]-POST-/api/preview]
0.00s teardown tests/test_web.py::test_a_session_login_no_file_can_be_named_for_writes_nothing[ann.md]
0.00s teardown tests/test_web.py::test_a_record_that_does_not_exist_is_a_404_and_not_an_empty_page
0.00s teardown tests/test_web.py::test_the_health_check_is_reachable_at_a_path_that_is_ours
0.00s teardown tests/test_web.py::test_an_icon_the_page_cannot_draw_is_refused_rather_than_stored[]
0.00s teardown tests/test_web.py::test_a_request_that_is_not_an_object_is_refused_rather_than_raised[[]-PATCH-/api/record/task-c00001]
0.00s teardown tests/test_web.py::test_a_request_that_is_not_an_object_is_refused_rather_than_raised[[]-PUT-/api/cycle/3]
0.00s teardown tests/test_web.py::test_an_icon_the_page_cannot_draw_is_refused_rather_than_stored[icon6]
0.00s teardown tests/test_web.py::test_the_preview_renders_with_the_page_s_own_markdown
0.00s teardown tests/test_web.py::test_a_save_without_a_real_base_commit_is_refused_at_both_doors[7-PATCH-/api/record/task-c00001]
0.00s teardown tests/test_web.py::test_a_cycle_field_the_record_cannot_hold_is_refused_not_raised[fields0-starts_on]
0.00s teardown tests/test_web.py::test_a_request_body_that_is_not_json_is_refused_rather_than_raised[PUT-/api/cycle/3]
0.00s teardown tests/test_web.py::test_a_session_login_no_file_can_be_named_for_writes_nothing[a/b]
0.00s teardown tests/test_coedit.py::test_a_commit_made_in_git_arrives_whole_in_a_body_written_in_house_style
0.00s teardown tests/test_web.py::test_an_id_that_is_not_an_id_never_becomes_a_path[task-c00001%2F..%2F..%2Fconfig%2Fdefaults]
0.00s teardown tests/test_web.py::test_an_id_that_is_not_an_id_never_becomes_a_path[tasks%2Ftask-c00001]
0.00s teardown tests/test_web.py::test_an_icon_the_page_cannot_draw_is_refused_rather_than_stored[../config/defaults]
0.00s teardown tests/test_web.py::test_a_request_that_is_not_an_object_is_refused_rather_than_raised[null-POST-/api/record]
0.00s teardown tests/test_web.py::test_an_id_that_is_not_an_id_never_becomes_a_path[task-c0001]
0.00s teardown tests/test_web.py::test_a_request_body_that_is_not_json_is_refused_rather_than_raised[PUT-/api/icon]
0.00s teardown tests/test_web.py::test_a_body_that_is_not_text_is_refused_rather_than_raised[PUT-/api/cycle/3]
0.00s teardown tests/test_web.py::test_an_id_that_is_not_an_id_never_becomes_a_path[not-an-id]
0.00s teardown tests/test_web.py::test_a_save_without_a_real_base_commit_is_refused_at_both_doors["0000000000000000000000000000000000000000"-PUT-/api/cycle/3]
0.00s teardown tests/test_web.py::test_a_cycle_field_the_record_cannot_hold_is_refused_not_raised[fields8-starts_on]
0.00s teardown tests/test_web.py::test_a_stranger_and_a_non_member_are_both_refused
0.00s teardown tests/test_web.py::test_a_cycle_the_server_could_not_read_back_is_never_committed
0.00s teardown tests/test_web.py::test_a_request_that_is_not_an_object_is_refused_rather_than_raised[5-POST-/api/preview]
0.00s teardown tests/test_web.py::test_a_cycle_field_the_record_cannot_hold_is_refused_not_raised[fields4-reviews_on]
0.00s teardown tests/test_web.py::test_a_request_body_that_is_not_json_is_refused_rather_than_raised[PATCH-/api/record/task-c00001]
0.00s teardown tests/test_coedit.py::test_a_frame_the_room_cannot_take_is_said_out_loud
0.00s teardown tests/test_coedit.py::test_a_save_the_model_could_not_read_back_is_refused_and_writes_nothing
0.00s teardown tests/test_web.py::test_an_id_that_is_not_an_id_never_becomes_a_path[task-zzzzzz]
0.00s teardown tests/test_web.py::test_a_save_without_a_real_base_commit_is_refused_at_both_doors[null-PUT-/api/cycle/3]
0.00s teardown tests/test_coedit.py::test_a_join_folds_a_commit_in_at_the_boundary_where_two_index_spaces_meet
0.00s teardown tests/test_web.py::test_there_is_no_icon_route_that_takes_a_name[/api/icon/bo]
0.00s teardown tests/test_coedit.py::test_a_paste_the_api_would_accept_fits_down_the_socket
0.00s teardown tests/test_web.py::test_there_is_no_icon_route_that_takes_a_name[/api/icon/config]
0.00s teardown tests/test_web.py::test_a_session_login_no_file_can_be_named_for_writes_nothing[-ann]
0.00s teardown tests/test_web.py::test_a_save_without_a_real_base_commit_is_refused_at_both_doors[null-PATCH-/api/record/task-c00001]
0.00s teardown tests/test_web.py::test_a_base_this_repository_never_had_is_refused_rather_than_raised[not-a-sha]
0.00s teardown tests/test_web.py::test_an_icon_the_page_cannot_draw_is_refused_rather_than_stored[sun
0.00s teardown tests/test_web.py::test_a_request_that_is_not_an_object_is_refused_rather_than_raised[[]-PUT-/api/icon]
0.00s teardown tests/test_web.py::test_an_icon_the_page_cannot_draw_is_refused_rather_than_stored[SUN]
0.00s teardown tests/test_web.py::test_a_save_without_a_real_base_commit_is_refused_at_both_doors[7-PUT-/api/cycle/3]
0.00s teardown tests/test_coedit.py::test_a_commit_made_in_git_arrives_in_the_room_as_text
0.00s teardown tests/test_web.py::test_saving_a_record_that_does_not_exist_is_a_404
0.00s teardown tests/test_coedit.py::test_a_save_carries_the_fields_from_the_form_and_the_body_from_the_room
0.00s teardown tests/test_web.py::test_an_id_that_is_not_an_id_never_becomes_a_path[../config/defaults]
0.00s teardown tests/test_web.py::test_an_id_that_is_not_an_id_never_becomes_a_path[..%2F..%2Fconfig%2Fdefaults]
0.00s teardown tests/test_coedit.py::test_a_room_will_not_write_somebody_elses_name_into_its_own_trailers
0.00s teardown tests/test_coedit.py::test_a_seat_that_is_not_a_number_is_not_a_seat
0.00s teardown tests/test_coedit.py::test_a_status_the_kind_does_not_speak_is_refused_at_the_socket_too
0.00s teardown tests/test_web.py::test_a_cycle_field_the_record_cannot_hold_is_refused_not_raised[fields5-'the
0.00s teardown tests/test_coedit.py::test_nothing_reaches_a_socket_before_its_welcome
0.00s teardown tests/test_coedit.py::test_the_last_person_out_commits
0.00s teardown tests/test_coedit.py::test_a_save_with_nothing_to_commit_is_answered
0.00s teardown tests/test_coedit.py::test_a_seat_goes_when_its_person_does
0.00s teardown tests/test_web.py::test_the_preview_still_refuses_html
0.00s teardown tests/test_web.py::test_the_upload_route_takes_images_and_nothing_else
0.00s teardown tests/test_coedit.py::test_a_save_lands_as_one_commit_authored_by_whoever_wrote_the_most
0.00s teardown tests/test_web.py::test_a_base_this_repository_never_had_is_refused_rather_than_raised[0000000000000000000000000000000000000000]
0.00s setup    tests/test_web.py::test_health_answers_on_a_plan_that_has_no_commits_yet
0.00s teardown tests/test_coedit.py::test_a_reconnection_to_a_room_seeded_at_the_same_commit_is_silent
0.00s teardown tests/test_coedit.py::test_a_client_seeded_at_another_commit_is_told_to_reload
0.00s teardown tests/test_coedit.py::test_the_presence_list_names_everybody_in_the_room
0.00s teardown tests/test_coedit.py::test_a_room_whose_record_is_gone_says_to_copy_the_document_out
0.00s teardown tests/test_coedit.py::test_a_second_tab_of_the_same_person_is_one_person
0.00s teardown tests/test_web.py::test_there_is_no_icon_route_that_takes_a_name[/api/icon/ann]
0.00s call     tests/test_model.py::test_a_person_record_takes_its_login_from_the_path
0.00s teardown tests/test_coedit.py::test_a_room_for_a_record_that_is_not_there_never_opens
0.00s teardown tests/test_coedit.py::test_the_room_relays_where_each_person_is_sitting
0.00s setup    tests/test_coedit.py::test_the_static_export_carries_no_socket
0.00s call     tests/test_model.py::test_a_sentence_somebody_wrote_about_themselves_survives_a_pick
0.00s call     tests/test_model.py::test_a_record_created_from_nothing_carries_no_delimiters_in_its_body
0.00s call     tests/test_model.py::test_optional_fields_still_accept_real_values
0.00s call     tests/test_model.py::test_an_icon_nobody_can_draw_still_reads[icon:
0.00s call     tests/test_model.py::test_a_login_typed_into_the_frontmatter_is_ignored_rather_than_believed
0.00s call     tests/test_model.py::test_a_file_in_people_that_is_not_named_for_a_login_is_refused
0.00s call     tests/test_coedit.py::test_the_browser_splices_on_a_whole_character
0.00s call     tests/test_validate.py::test_no_message_names_a_field_the_way_the_file_spells_it
0.00s call     tests/test_coedit.py::test_an_index_inside_a_character_is_not_an_error_and_that_is_the_defect
0.00s call     tests/test_web.py::test_the_other_failures_the_tuple_names_are_answered_too
0.00s call     tests/test_coedit.py::test_the_author_is_whoever_inserted_the_most_and_everyone_else_is_credited
0.00s call     tests/test_coedit.py::test_absorbing_holds_for_every_body_the_index_spaces_disagree_about[CJK,
0.00s call     tests/test_coedit.py::test_absorbing_holds_for_every_shape_of_edit_in_a_body_that_is_not_ascii
0.00s call     tests/test_validate.py::test_regression_a_record_may_not_depend_on_its_own_ancestor_or_descendant
0.00s call     tests/test_coedit.py::test_absorbing_holds_for_every_body_the_index_spaces_disagree_about[a
0.00s call     tests/test_validate.py::test_the_form_is_told_to_ask_for_somebody
0.00s call     tests/test_coedit.py::test_absorbing_holds_for_every_body_the_index_spaces_disagree_about[the
0.00s call     tests/test_coedit.py::test_absorbing_holds_for_every_body_the_index_spaces_disagree_about[backspacing
0.00s call     tests/test_coedit.py::test_characters_are_credited_to_the_socket_they_arrived_on
0.00s setup    tests/test_writes.py::test_every_page_that_writes_says_the_whole_sentence_a_forked_plan_answers[table]
0.00s call     tests/test_coedit.py::test_absorbing_holds_for_every_body_the_index_spaces_disagree_about[an
0.00s setup    tests/test_validate.py::test_check_over_the_seed_corpus_prints_exactly_the_validated_problems
0.00s setup    tests/test_writes.py::test_an_availability_that_is_not_a_number_is_refused_rather_than_dropped[half]
0.00s setup    tests/test_writes.py::test_every_page_that_writes_says_the_whole_sentence_a_forked_plan_answers[new]
0.00s setup    tests/test_writes.py::test_every_page_that_writes_reads_a_conflict_the_same_way[detail]
0.00s setup    tests/test_writes.py::test_every_page_that_writes_reads_a_conflict_the_same_way[cycle]
0.00s call     tests/test_coedit.py::test_the_corpus_says_what_a_mixed_index_space_does_to_each_body[a
0.00s teardown tests/test_seats.py::test_the_second_surface_draws_where_everybody_is
0.00s call     tests/test_validate.py::test_the_statuses_that_demand_nothing_are_not_asked_who_is_on_them
0.00s call     tests/test_web.py::test_the_server_warms_the_index_before_it_binds
0.00s setup    tests/test_writes.py::test_every_page_that_writes_says_the_whole_sentence_a_forked_plan_answers[cycles]
0.00s setup    tests/test_writes.py::test_every_page_that_writes_says_the_whole_sentence_a_forked_plan_answers[cycle]
0.00s setup    tests/test_writes.py::test_every_page_that_writes_reads_a_conflict_the_same_way[graph]
0.00s call     tests/test_coedit.py::test_the_corpus_says_what_a_mixed_index_space_does_to_each_body[an
0.00s setup    tests/test_writes.py::test_every_page_that_writes_says_the_whole_sentence_a_forked_plan_answers[detail]
0.00s setup    tests/test_writes.py::test_an_availability_that_is_not_a_number_is_refused_rather_than_dropped[
0.00s setup    tests/test_writes.py::test_an_availability_that_is_not_a_number_is_refused_rather_than_dropped[]
0.00s setup    tests/test_writes.py::test_every_page_that_writes_says_the_whole_sentence_a_forked_plan_answers[graph]
0.00s setup    tests/test_writes.py::test_every_page_that_writes_reads_a_conflict_the_same_way[table]
0.00s call     tests/test_coedit.py::test_a_body_with_an_em_dash_is_absorbed_exactly
0.00s setup    tests/test_writes.py::test_every_page_that_writes_reads_a_conflict_the_same_way[new]
0.00s call     tests/test_coedit.py::test_every_case_in_the_corpus_makes_two_index_spaces_disagree
0.00s setup    tests/test_writes.py::test_every_page_that_writes_reads_a_conflict_the_same_way[cycles]
0.00s setup    tests/test_writes.py::test_an_availability_that_is_not_a_number_is_refused_rather_than_dropped[50%]
0.00s setup    tests/test_writes.py::test_an_availability_that_is_not_a_number_is_refused_rather_than_dropped[0]
0.00s call     tests/test_validate.py::test_the_rule_only_blocks_a_record_written_after_it_existed
0.00s setup    tests/test_payload.py::test_no_page_ships_a_data_block_that_is_not_json[render_graph--.inf]
0.00s call     tests/test_validate.py::test_a_chore_nobody_pitched_keeps_its_own_cycle_and_a_parented_task_does_not
0.00s setup    tests/test_payload.py::test_no_page_ships_a_data_block_that_is_not_json[render_graph-.nan]
0.00s call     tests/test_validate.py::test_a_todo_record_needs_a_size
0.00s call     tests/test_validate.py::test_an_id_must_match_the_pattern_and_agree_with_the_kind
0.00s call     tests/test_validate.py::test_tasks_that_add_up_to_more_than_the_bet_say_so
0.00s setup    tests/test_payload.py::test_the_calendar_bound_holds_at_both_ends[inf-3652058]
0.00s setup    tests/test_writes.py::test_a_forked_plan_gives_the_page_back_and_says_why
0.00s call     tests/test_validate.py::test_a_project_inherits_through_its_pitches
0.00s call     tests/test_coedit.py::test_folding_in_somebody_elses_commit_credits_nobody
0.00s call     tests/test_validate.py::test_a_name_nobody_recognises_is_a_warning_not_a_refusal
0.00s call     tests/test_validate.py::test_a_cycle_nobody_dated_is_reported_rather_than_ignored
0.00s call     tests/test_validate.py::test_a_pitch_under_a_project_and_a_task_under_a_pitch_are_the_shape
0.00s call     tests/test_validate.py::test_a_project_belongs_to_nothing
0.00s call     tests/test_validate.py::test_a_wip_record_needs_assigned_on
0.00s call     tests/test_validate.py::test_grandfathering_turns_a_newer_rule_into_a_warning_on_an_older_record
0.00s setup    tests/test_writes.py::test_a_word_typed_into_a_date_box_reaches_the_server_as_the_word
0.00s call     tests/test_validate.py::test_in_progress_wants_somebody_other_than_the_owner_from_underneath_too
0.00s call     tests/test_validate.py::test_a_pitch_whose_tasks_are_reviewed_is_reviewed
0.00s call     tests/test_validate.py::test_a_parent_chain_cycle_is_reported_on_every_record_in_it
0.00s setup    tests/test_writes.py::test_a_roster_that_is_all_numbers_is_sent_whole
0.00s teardown tests/test_seats.py::test_typing_above_somebody_does_not_move_their_band
0.00s call     tests/test_validate.py::test_a_task_may_hang_straight_off_a_project
0.00s setup    tests/test_writes.py::test_the_tables_conflict_banner_goes_when_the_next_save_lands
0.00s setup    tests/test_payload.py::test_no_page_ships_a_data_block_that_is_not_json[render_graph-.inf]
0.00s call     tests/test_validate.py::test_every_person_field_is_checked_against_the_roster
0.00s teardown tests/test_remote.py::test_a_push_rejected_by_a_moved_remote_retries_on_top_of_it
0.00s call     tests/test_validate.py::test_review_waived_satisfies_both_the_todo_and_the_wip_reviewer_gates
0.00s teardown tests/test_remote.py::test_pushing_an_already_pushed_commit_reports_nothing_to_do
0.00s teardown tests/test_seats.py::test_a_seat_band_lands_on_the_right_line_on_the_second_surface
0.00s call     tests/test_validate.py::test_a_pitch_whose_tasks_name_nobody_still_needs_a_reviewer
0.00s call     tests/test_validate.py::test_a_shelved_task_is_not_counted_against_its_pitchs_appetite
0.00s teardown tests/test_remote.py::test_a_push_rejected_onto_a_real_collision_refuses_and_leaves_nothing_behind
0.00s teardown tests/test_remote.py::test_a_write_while_unreachable_still_lands_on_the_one_before_it
0.00s call     tests/test_validate.py::test_a_parent_cycle_does_not_send_the_reviewer_walk_round_for_ever
0.00s call     tests/test_validate.py::test_a_title_must_not_be_empty
0.00s teardown tests/test_remote.py::test_a_write_that_has_returned_is_already_in_the_remote
0.00s setup    tests/test_model.py::test_a_login_becomes_the_one_path_it_may_be_written_at[jackdawrie]
0.00s setup    tests/test_payload.py::test_no_page_ships_a_data_block_that_is_not_json[render_table--.inf]
0.00s call     tests/test_validate.py::test_a_depends_on_cycle_is_reported_on_every_record_in_it
0.00s teardown tests/test_validate.py::test_check_over_the_seed_corpus_prints_exactly_the_validated_problems
0.00s setup    tests/test_payload.py::test_a_number_json_cannot_hold_leaves_as_null[inf]
0.00s setup    tests/test_writes.py::test_a_conflict_saving_the_setup_says_what_moved
0.00s setup    tests/test_writes.py::test_the_listbox_opens_moves_under_the_arrows_and_closes_on_escape
0.00s setup    tests/test_writes.py::test_a_refused_pick_leaves_the_list_open_with_the_reason_beside_it
0.00s setup    tests/test_payload.py::test_no_page_ships_a_data_block_that_is_not_json[render_table-.nan]
0.00s setup    tests/test_writes.py::test_a_pick_made_with_the_keyboard_is_sent_stored_and_shown
0.00s setup    tests/test_writes.py::test_the_two_list_forms_say_it_too
0.00s setup    tests/test_writes.py::test_a_conflict_on_a_bet_says_what_moved
0.00s setup    tests/test_writes.py::test_the_words_the_server_refused_with_are_the_words_on_the_page
0.00s call     tests/test_coedit.py::test_the_corpus_says_what_a_mixed_index_space_does_to_each_body[backspacing
0.00s call     tests/test_validate.py::test_tasks_that_fit_inside_the_bet_say_nothing
0.00s setup    tests/test_writes.py::test_the_same_refusal_twice_is_still_read_out
0.00s call     tests/test_validate.py::test_every_depends_on_target_must_exist
0.00s setup    tests/test_writes.py::test_a_receipt_is_not_blanked_by_an_edit_made_before_it
0.00s call     tests/test_coedit.py::test_absorbing_keeps_the_untouched_half_of_the_document
0.00s call     tests/test_coedit.py::test_the_corpus_says_what_a_mixed_index_space_does_to_each_body[CJK,
0.00s setup    tests/test_writes.py::test_a_conflict_creating_a_record_is_not_printed_as_refused
0.00s call     tests/test_validate.py::test_depending_on_a_shelved_record_is_only_a_warning
0.00s call     tests/test_coedit.py::test_the_corpus_says_what_a_mixed_index_space_does_to_each_body[the
0.00s teardown tests/test_remote.py::test_the_commit_the_remote_missed_is_still_there_to_push_afterwards
0.00s teardown tests/test_remote.py::test_a_refused_write_pushes_nothing
0.00s teardown tests/test_remote.py::test_with_no_remote_the_scoped_compare_and_swap_is_untouched
0.00s call     tests/test_validate.py::test_a_shelved_task_reviews_nothing
0.00s teardown tests/test_remote.py::test_fetch_sees_a_commit_pushed_from_a_terminal
0.00s teardown tests/test_seats.py::test_a_seat_band_lands_on_the_right_line_at_a_width_that_wraps
0.00s call     tests/test_web.py::test_github_mode_refuses_to_start_on_a_development_default[the-default-signing-secret]
0.00s teardown tests/test_remote.py::test_a_write_lands_in_the_remote_and_says_that_it_did
0.00s teardown tests/test_remote.py::test_local_main_is_only_ever_ahead_of_the_remote_never_divergent
0.00s teardown tests/test_remote.py::test_a_genuine_divergence_raises_instead_of_guessing
0.00s call     tests/test_validate.py::test_a_roster_that_does_not_exist_checks_nothing
0.00s setup    tests/test_payload.py::test_no_page_ships_a_data_block_that_is_not_json[render_table-.inf]
0.00s teardown tests/test_writes.py::test_every_page_that_writes_reads_a_conflict_the_same_way[graph]
0.00s setup    tests/test_payload.py::test_the_calendar_bound_holds_at_both_ends[-5.0--5.0]
0.00s setup    tests/test_payload.py::test_the_calendar_bound_holds_at_both_ends[-inf--3652058]
0.00s teardown tests/test_writes.py::test_every_page_that_writes_says_the_whole_sentence_a_forked_plan_answers[detail]
0.00s teardown tests/test_seats.py::test_nobody_is_drawn_a_band_for_themselves
0.00s teardown tests/test_remote.py::test_fetch_reports_a_commit_once_and_then_stops
0.00s teardown tests/test_seats.py::test_the_room_draws_a_band_where_somebody_else_is
0.00s setup    tests/test_coedit.py::test_a_member_who_never_reads_is_given_up_on
0.00s call     tests/test_validate.py::test_a_project_is_not_bet_because_it_holds_bets
0.00s teardown tests/test_seats.py::test_the_next_session_is_one_seat_not_two
0.00s teardown tests/test_seats.py::test_this_tab_says_where_it_is_sitting
0.00s teardown tests/test_remote.py::test_the_audit_trail_survives_the_push_unaltered
0.00s teardown tests/test_remote.py::test_push_refuses_to_resolve_a_divergence_by_itself
0.00s teardown tests/test_remote.py::test_with_no_remote_a_write_behaves_exactly_as_it_does_today
0.00s teardown tests/test_seats.py::test_typing_above_somebody_does_not_move_their_band_on_the_second_surface
0.00s teardown tests/test_seats.py::test_two_people_get_two_colours_and_two_places
0.00s call     tests/test_validate.py::test_a_pitch_with_nothing_under_it_still_needs_a_reviewer
0.00s teardown tests/test_remote.py::test_every_commit_the_remote_receives_has_exactly_one_parent
0.00s teardown tests/test_seats.py::test_a_reader_holds_no_seat
0.00s teardown tests/test_writes.py::test_every_page_that_writes_reads_a_conflict_the_same_way[new]
0.00s teardown tests/test_payload.py::test_a_size_somebody_hand_edited_does_not_empty_the_table[-.inf]
0.00s teardown tests/test_web.py::test_a_reader_is_offered_no_door_they_cannot_walk_through
0.00s teardown tests/test_remote.py::test_the_next_write_lands_on_top_of_a_fetched_commit_not_over_it
0.00s teardown tests/test_remote.py::test_an_unreachable_remote_still_commits_and_admits_it_did_not_push
0.00s call     tests/test_validate.py::test_a_todo_record_needs_somebody_on_it
0.00s teardown tests/test_remote.py::test_with_no_remote_push_and_fetch_are_answers_not_errors
0.00s call     tests/test_validate.py::test_work_in_progress_needs_somebody_on_it
0.00s teardown tests/test_writes.py::test_an_availability_that_is_not_a_number_is_refused_rather_than_dropped[
0.00s teardown tests/test_writes.py::test_the_two_list_forms_say_it_too
0.00s call     tests/test_validate.py::test_a_wip_record_needs_a_reviewer_who_is_not_its_owner
0.00s call     tests/test_coedit.py::test_an_empty_room_is_kept_warm_and_then_dropped
0.00s teardown tests/test_payload.py::test_every_page_still_serves_when_a_file_carries_such_a_size[.nan]
0.00s teardown tests/test_seats.py::test_somebody_elses_keystroke_leaves_the_numbers_counting_the_document_there_is_now
0.00s teardown tests/test_writes.py::test_a_save_addresses_the_row_it_was_pressed_on
0.00s teardown tests/test_payload.py::test_a_size_somebody_hand_edited_does_not_empty_the_table[.nan]
0.00s setup    tests/test_payload.py::test_the_calendar_bound_holds_at_both_ends[0.0-0.0]
0.00s teardown tests/test_payload.py::test_every_page_still_serves_when_a_file_carries_such_a_size[-.inf]
0.00s setup    tests/test_payload.py::test_the_calendar_bound_holds_at_both_ends[nan-3652058]
0.00s teardown tests/test_seats.py::test_a_login_cannot_write_css_into_the_band_it_is_drawn_in
0.00s call     tests/test_validate.py::test_a_todo_pitch_needs_shaped_by
0.00s call     tests/test_validate.py::test_a_todo_record_needs_a_reviewer_unless_review_is_waived
0.00s call     tests/test_validate.py::test_a_task_without_a_parent_is_only_a_warning
0.00s call     tests/test_validate.py::test_a_todo_record_needs_an_owner
0.00s call     tests/test_validate.py::test_grandfathering_does_not_soften_a_rule_older_than_the_record
0.00s call     tests/test_coedit.py::test_a_string_offset_is_not_a_document_offset
0.00s teardown tests/test_payload.py::test_no_page_ships_a_data_block_that_is_not_json[render_graph--.inf]
0.00s teardown tests/test_payload.py::test_a_size_somebody_hand_edited_does_not_empty_the_table[.inf]
0.00s setup    tests/test_coedit.py::test_the_corpus_says_what_a_mixed_index_space_does_to_each_body[backspacing
0.00s teardown tests/test_web.py::test_one_save_does_not_stop_the_rest_of_the_process
0.00s call     tests/test_validate.py::test_a_done_record_needs_at_least_one_pr
0.00s teardown tests/test_writes.py::test_a_conflict_saving_the_setup_says_what_moved
0.00s setup    tests/test_coedit.py::test_the_corpus_says_what_a_mixed_index_space_does_to_each_body[CJK,
0.00s setup    tests/test_coedit.py::test_absorbing_holds_for_every_body_the_index_spaces_disagree_about[a
0.00s teardown tests/test_writes.py::test_the_same_refusal_twice_is_still_read_out
0.00s setup    tests/test_payload.py::test_the_calendar_bound_holds_at_both_ends[5.0-5.0]
0.00s call     tests/test_validate.py::test_a_shelved_record_has_no_requirements_at_all
0.00s setup    tests/test_coedit.py::test_the_corpus_says_what_a_mixed_index_space_does_to_each_body[an
0.00s setup    tests/test_coedit.py::test_absorbing_holds_for_every_body_the_index_spaces_disagree_about[CJK,
0.00s setup    tests/test_coedit.py::test_a_member_who_is_behind_but_still_reading_is_not_given_up_on
0.00s call     tests/test_coedit.py::test_a_room_with_nothing_in_it_has_nobody_to_attribute_a_commit_to
0.00s teardown tests/test_writes.py::test_every_page_that_writes_says_the_whole_sentence_a_forked_plan_answers[table]
0.00s teardown tests/test_web.py::test_the_index_is_redrawn_when_the_day_moves
0.00s teardown tests/test_writes.py::test_a_roster_that_is_all_numbers_is_sent_whole
0.00s teardown tests/test_writes.py::test_every_page_that_writes_says_the_whole_sentence_a_forked_plan_answers[graph]
0.00s teardown tests/test_writes.py::test_every_page_that_writes_reads_a_conflict_the_same_way[detail]
0.00s teardown tests/test_payload.py::test_every_page_still_serves_when_a_file_carries_such_a_size[.inf]
0.00s teardown tests/test_coedit.py::test_a_socket_re_reads_the_session_it_was_opened_with
0.00s setup    tests/test_coedit.py::test_the_corpus_says_what_a_mixed_index_space_does_to_each_body[a
0.00s teardown tests/test_writes.py::test_every_page_that_writes_reads_a_conflict_the_same_way[table]
0.00s teardown tests/test_writes.py::test_every_page_that_writes_says_the_whole_sentence_a_forked_plan_answers[new]
0.00s teardown tests/test_writes.py::test_every_page_that_writes_reads_a_conflict_the_same_way[cycle]
0.00s teardown tests/test_writes.py::test_an_availability_that_is_not_a_number_is_refused_rather_than_dropped[50%]
0.00s teardown tests/test_coedit.py::test_a_member_who_never_reads_is_given_up_on
0.00s setup    tests/test_model.py::test_an_icon_nobody_can_draw_still_reads[icon:
0.00s teardown tests/test_payload.py::test_no_page_ships_a_data_block_that_is_not_json[render_graph-.inf]
0.00s teardown tests/test_coedit.py::test_a_member_who_is_behind_but_still_reading_is_not_given_up_on
0.00s teardown tests/test_writes.py::test_every_page_that_writes_says_the_whole_sentence_a_forked_plan_answers[cycle]
0.00s teardown tests/test_writes.py::test_an_availability_that_is_not_a_number_is_refused_rather_than_dropped[half]
0.00s teardown tests/test_writes.py::test_an_availability_that_is_not_a_number_is_refused_rather_than_dropped[]
0.00s teardown tests/test_writes.py::test_every_page_that_writes_reads_a_conflict_the_same_way[cycles]
0.00s teardown tests/test_writes.py::test_an_availability_that_is_not_a_number_is_refused_rather_than_dropped[0]
0.00s setup    tests/test_model.py::test_a_name_that_is_not_a_login_gets_no_path_at_all[.]
0.00s call     tests/test_model.py::test_status_and_kind_are_still_constrained
0.00s teardown tests/test_writes.py::test_a_server_fault_gives_the_cycle_page_back
0.00s teardown tests/test_writes.py::test_the_listbox_opens_moves_under_the_arrows_and_closes_on_escape
0.00s setup    tests/test_coedit.py::test_the_corpus_says_what_a_mixed_index_space_does_to_each_body[the
0.00s call     tests/test_web.py::test_github_mode_refuses_to_start_on_a_development_default[no-client-secret]
0.00s teardown tests/test_coedit.py::test_the_static_export_carries_no_socket
0.00s teardown tests/test_writes.py::test_a_conflict_creating_a_record_is_not_printed_as_refused
0.00s teardown tests/test_writes.py::test_a_word_typed_into_a_date_box_reaches_the_server_as_the_word
0.00s call     tests/test_model.py::test_a_record_opens_at_the_foot_of_its_own_ladder
0.00s teardown tests/test_writes.py::test_every_page_that_writes_says_the_whole_sentence_a_forked_plan_answers[cycles]
0.00s teardown tests/test_validate.py::test_the_seed_corpus_reports_exactly_this_problem_set
0.00s teardown tests/test_writes.py::test_a_conflict_on_a_bet_says_what_moved
0.00s setup    tests/test_model.py::test_a_name_that_is_not_a_login_gets_no_path_at_all[-ann]
0.00s setup    tests/test_payload.py::test_a_number_json_cannot_hold_leaves_as_null[-inf]
0.00s call     tests/test_model.py::test_sizes_are_optional_on_both_subclasses
0.00s setup    tests/test_model.py::test_a_login_becomes_the_one_path_it_may_be_written_at[a]
0.00s teardown tests/test_writes.py::test_a_pick_made_with_the_keyboard_is_sent_stored_and_shown
0.00s teardown tests/test_writes.py::test_a_receipt_is_not_blanked_by_an_edit_made_before_it
0.00s teardown tests/test_socket_offer.py::test_a_reader_can_still_read_the_whole_record
0.00s teardown tests/test_writes.py::test_the_tables_conflict_banner_goes_when_the_next_save_lands
0.00s teardown tests/test_web.py::test_a_warmed_server_builds_one_index_for_the_first_burst_not_one_each
0.00s setup    tests/test_model.py::test_a_login_becomes_the_one_path_it_may_be_written_at[a-b]
0.00s setup    tests/test_coedit.py::test_absorbing_holds_for_every_body_the_index_spaces_disagree_about[backspacing
0.00s setup    tests/test_model.py::test_a_name_that_is_not_a_login_gets_no_path_at_all[ann.md]
0.00s teardown tests/test_coedit.py::test_the_vendored_yjs_and_the_server_write_the_same_seed
0.00s teardown tests/test_writes.py::test_a_refused_pick_leaves_the_list_open_with_the_reason_beside_it
0.00s teardown tests/test_socket_offer.py::test_a_dev_run_offers_the_socket_it_would_accept
0.00s teardown tests/test_payload.py::test_no_page_ships_a_data_block_that_is_not_json[render_graph-.nan]
0.00s teardown tests/test_writes.py::test_the_words_the_server_refused_with_are_the_words_on_the_page
0.00s setup    tests/test_model.py::test_a_name_that_is_not_a_login_gets_no_path_at_all[a/b]
0.00s teardown tests/test_writes.py::test_a_forked_plan_gives_the_page_back_and_says_why
0.00s call     tests/test_web.py::test_github_mode_refuses_to_start_on_a_development_default[no-client-id]
0.00s setup    tests/test_payload.py::test_a_number_json_cannot_hold_leaves_as_null[nan]
0.00s setup    tests/test_model.py::test_a_login_becomes_the_one_path_it_may_be_written_at[aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa]
0.00s call     tests/test_model.py::test_a_record_needs_only_id_kind_and_title
0.00s setup    tests/test_model.py::test_a_name_that_is_not_a_login_gets_no_path_at_all[aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa]
0.00s teardown tests/test_socket_offer.py::test_a_reader_is_not_offered_a_socket
0.00s setup    tests/test_coedit.py::test_absorbing_holds_for_every_body_the_index_spaces_disagree_about[an
0.00s teardown tests/test_web.py::test_github_mode_refuses_to_start_on_a_development_default[no-client-secret]
0.00s teardown tests/test_web.py::test_all_five_kinds_are_read_through_the_one_cache
0.00s setup    tests/test_model.py::test_a_name_that_is_not_a_login_gets_no_path_at_all[ann
0.00s setup    tests/test_model.py::test_a_name_that_is_not_a_login_gets_no_path_at_all[ann\n]
0.00s setup    tests/test_model.py::test_a_name_that_is_not_a_login_gets_no_path_at_all[ann-]
0.00s teardown tests/test_socket_offer.py::test_a_member_is
0.00s teardown tests/test_payload.py::test_the_index_route_answers_rather_than_faulting_on_such_a_size[-.inf]
0.00s setup    tests/test_model.py::test_a_login_becomes_the_one_path_it_may_be_written_at[yellowhammer7]
0.00s call     tests/test_payload.py::test_the_calendar_bound_holds_at_both_ends[inf-3652058]
0.00s setup    tests/test_coedit.py::test_absorbing_holds_for_every_body_the_index_spaces_disagree_about[the
0.00s setup    tests/test_model.py::test_a_login_becomes_the_one_path_it_may_be_written_at[Oxpeckerly]
0.00s call     tests/test_model.py::test_a_heading_survives_a_subsection_that_survives_it
0.00s setup    tests/test_model.py::test_a_name_that_is_not_a_login_gets_no_path_at_all[]
0.00s teardown tests/test_payload.py::test_the_index_route_answers_rather_than_faulting_on_such_a_size[.inf]
0.00s setup    tests/test_validate.py::test_the_seed_corpus_reports_exactly_this_problem_set
0.00s teardown tests/test_coedit.py::test_a_restart_loses_nothing_that_was_committed
0.00s setup    tests/test_model.py::test_a_name_that_is_not_a_login_gets_no_path_at_all[../config/defaults]
0.00s call     tests/test_remote.py::test_with_no_remote_push_and_fetch_are_answers_not_errors
0.00s setup    tests/test_model.py::test_a_login_becomes_the_one_path_it_may_be_written_at[accentor9]
0.00s setup    tests/test_model.py::test_a_name_that_is_not_a_login_gets_no_path_at_all[..]
0.00s teardown tests/test_payload.py::test_the_index_route_answers_rather_than_faulting_on_such_a_size[.nan]
0.00s setup    tests/test_model.py::test_a_name_that_is_not_a_login_gets_no_path_at_all[ann\nbo]
0.00s teardown tests/test_remote.py::test_a_write_that_loses_the_race_runs_again_and_lands
0.00s teardown tests/test_coedit.py::test_the_two_implementations_agree_about_a_body_that_is_not_ascii
0.00s teardown tests/test_web.py::test_the_deployment_keeps_the_prefix_and_its_guarantee
0.00s teardown tests/test_model.py::test_a_name_that_is_not_a_login_gets_no_path_at_all[../config/defaults]
0.00s setup    tests/test_model.py::test_a_login_becomes_the_one_path_it_may_be_written_at[a--b]
0.00s call     tests/test_model.py::test_a_section_is_dropped_with_everything_written_underneath_it
0.00s teardown tests/test_coedit.py::test_the_servers_update_lands_in_the_vendored_yjs
0.00s teardown tests/test_coedit.py::test_an_update_from_the_vendored_yjs_lands_in_the_servers_document
0.00s teardown tests/test_validate.py::test_the_form_is_told_to_ask_for_somebody
0.00s teardown tests/test_web.py::test_a_session_set_before_tls_is_still_a_session
0.00s teardown tests/test_remote.py::test_an_upload_reaches_the_remote_like_every_other_commit
0.00s teardown tests/test_web.py::test_the_app_exposes_the_flag_that_ends_its_event_streams
0.00s teardown tests/test_remote.py::test_a_push_rejected_by_a_moved_remote_is_retried_once
0.00s teardown tests/test_web.py::test_the_runner_sets_that_flag_when_it_is_told_to_exit
0.00s call     tests/test_payload.py::test_the_calendar_bound_holds_at_both_ends[nan-3652058]
0.00s teardown tests/test_payload.py::test_no_page_ships_a_data_block_that_is_not_json[render_table--.inf]
0.00s teardown tests/test_remote.py::test_a_write_answered_200_is_a_write_that_reached_the_remote
0.00s teardown tests/test_coedit.py::test_a_commit_never_deletes_what_was_typed_during_it_by_construction
0.00s call     tests/test_model.py::test_a_box_at_the_end_of_a_file_is_a_box
0.00s teardown tests/test_web.py::test_the_server_reads_the_same_config_the_cli_does
0.00s teardown tests/test_web.py::test_no_write_route_escapes_the_refusal
0.00s setup    tests/test_web.py::test_the_server_warms_the_index_before_it_binds
0.00s call     tests/test_model.py::test_sections_are_keyed_by_their_heading_lowercased_and_flat
0.00s teardown tests/test_payload.py::test_no_page_ships_a_data_block_that_is_not_json[render_table-.inf]
0.00s teardown tests/test_coedit.py::test_a_stranger_is_refused_the_socket_and_told_why
0.00s call     tests/test_model.py::test_an_empty_section_is_present_and_empty_so_a_reader_can_tell_them_apart
0.00s setup    tests/test_validate.py::test_each_rung_accepts_exactly_its_own_status_words
0.00s teardown tests/test_payload.py::test_no_page_ships_a_data_block_that_is_not_json[render_table-.nan]
0.00s call     tests/test_model.py::test_a_name_that_is_not_a_login_gets_no_path_at_all[ann.md]
0.00s teardown tests/test_web.py::test_health_answers_on_a_plan_that_has_no_commits_yet
0.00s teardown tests/test_model.py::test_sections_are_keyed_by_their_heading_lowercased_and_flat
0.00s call     tests/test_coedit.py::test_the_policy_did_not_have_to_move_for_the_socket
0.00s setup    tests/test_coedit.py::test_the_browser_splices_on_a_whole_character
0.00s teardown tests/test_web.py::test_github_mode_refuses_to_start_on_a_development_default[the-default-signing-secret]
0.00s teardown tests/test_remote.py::test_one_save_talks_to_the_remote_once
0.00s teardown tests/test_web.py::test_github_mode_refuses_to_start_on_a_development_default[no-client-id]
0.00s call     tests/test_model.py::test_a_login_becomes_the_one_path_it_may_be_written_at[accentor9]
0.00s teardown tests/test_coedit.py::test_the_corpus_says_what_a_mixed_index_space_does_to_each_body[an
0.00s teardown tests/test_model.py::test_an_icon_nobody_can_draw_still_reads[icon:
0.00s call     tests/test_model.py::test_a_heading_over_nothing_but_another_empty_heading_goes_too
0.00s teardown tests/test_model.py::test_a_name_that_is_not_a_login_gets_no_path_at_all[ann\nbo]
0.00s setup    tests/test_writes.py::test_no_write_path_reads_a_key_a_conflict_does_not_carry
0.00s setup    tests/test_web.py::test_no_write_route_escapes_the_refusal
0.00s call     tests/test_model.py::test_an_empty_frontmatter_block_is_frontmatter_and_not_body
0.00s call     tests/test_model.py::test_a_checklist_is_counted_including_its_sub_items
0.00s teardown tests/test_coedit.py::test_the_corpus_says_what_a_mixed_index_space_does_to_each_body[a
0.00s call     tests/test_payload.py::test_a_number_json_cannot_hold_leaves_as_null[inf]
0.00s teardown tests/test_writes.py::test_no_write_path_reads_a_key_a_conflict_does_not_carry
0.00s call     tests/test_model.py::test_a_login_becomes_the_one_path_it_may_be_written_at[jackdawrie]
0.00s setup    tests/test_model.py::test_a_record_opens_at_the_foot_of_its_own_ladder
0.00s teardown tests/test_payload.py::test_the_calendar_bound_holds_at_both_ends[5.0-5.0]
0.00s setup    tests/test_coedit.py::test_a_commit_never_deletes_what_was_typed_during_it_by_construction
0.00s teardown tests/test_coedit.py::test_absorbing_holds_for_every_body_the_index_spaces_disagree_about[an
0.00s teardown tests/test_model.py::test_a_name_that_is_not_a_login_gets_no_path_at_all[-ann]
0.00s setup    tests/test_validate.py::test_a_fully_specified_record_has_no_problems
0.00s setup    tests/test_validate.py::test_a_name_nobody_recognises_is_a_warning_not_a_refusal
0.00s teardown tests/test_validate.py::test_a_kind_that_reads_no_status_has_no_vocabulary_to_violate
0.00s setup    tests/test_coedit.py::test_an_update_from_the_vendored_yjs_lands_in_the_servers_document
0.00s teardown tests/test_model.py::test_a_file_in_people_that_is_not_named_for_a_login_is_refused
0.00s teardown tests/test_model.py::test_a_login_becomes_the_one_path_it_may_be_written_at[a]
0.00s call     tests/test_payload.py::test_the_calendar_bound_holds_at_both_ends[-inf--3652058]
0.00s setup    tests/test_web.py::test_the_other_failures_the_tuple_names_are_answered_too
0.00s setup    tests/test_coedit.py::test_characters_are_credited_to_the_socket_they_arrived_on
0.00s setup    tests/test_model.py::test_a_record_needs_only_id_kind_and_title
0.00s teardown tests/test_model.py::test_a_login_typed_into_the_frontmatter_is_ignored_rather_than_believed
0.00s setup    tests/test_coedit.py::test_the_policy_did_not_have_to_move_for_the_socket
0.00s call     tests/test_model.py::test_a_login_becomes_the_one_path_it_may_be_written_at[a--b]
0.00s call     tests/test_model.py::test_a_heading_inside_a_code_fence_is_not_a_section
0.00s setup    tests/test_coedit.py::test_the_servers_update_lands_in_the_vendored_yjs
0.00s teardown tests/test_model.py::test_a_person_record_takes_its_login_from_the_path
0.00s setup    tests/test_validate.py::test_a_pitch_whose_tasks_name_nobody_still_needs_a_reviewer
0.00s teardown tests/test_model.py::test_a_name_that_is_not_a_login_gets_no_path_at_all[ann.md]
0.00s setup    tests/test_coedit.py::test_the_two_implementations_agree_about_a_body_that_is_not_ascii
0.00s setup    tests/test_validate.py::test_a_chore_nobody_pitched_keeps_its_own_cycle_and_a_parented_task_does_not
0.00s teardown tests/test_model.py::test_a_name_that_is_not_a_login_gets_no_path_at_all[ann
0.00s teardown tests/test_model.py::test_a_name_that_is_not_a_login_gets_no_path_at_all[.]
0.00s teardown tests/test_model.py::test_a_name_that_is_not_a_login_gets_no_path_at_all[a/b]
0.00s teardown tests/test_coedit.py::test_an_index_inside_a_character_is_not_an_error_and_that_is_the_defect
0.00s setup    tests/test_validate.py::test_grandfathering_turns_a_newer_rule_into_a_warning_on_an_older_record
0.00s teardown tests/test_model.py::test_a_name_that_is_not_a_login_gets_no_path_at_all[ann-]
0.00s setup    tests/test_coedit.py::test_the_yjs_bundle_inlines_as_a_classic_script
0.00s call     tests/test_payload.py::test_a_number_json_cannot_hold_leaves_as_null[nan]
0.00s setup    tests/test_validate.py::test_a_roster_that_does_not_exist_checks_nothing
0.00s teardown tests/test_model.py::test_a_name_that_is_not_a_login_gets_no_path_at_all[..]
0.00s call     tests/test_model.py::test_a_login_becomes_the_one_path_it_may_be_written_at[a]
0.00s teardown tests/test_model.py::test_a_name_that_is_not_a_login_gets_no_path_at_all[aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa]
0.00s setup    tests/test_model.py::test_a_body_with_no_checklist_counts_nothing_rather_than_zero_of_zero
0.00s call     tests/test_payload.py::test_a_number_json_can_hold_is_left_exactly_alone
0.00s call     tests/test_payload.py::test_a_number_json_cannot_hold_leaves_as_null[-inf]
0.00s setup    tests/test_validate.py::test_a_cycle_nobody_dated_is_reported_rather_than_ignored
0.00s teardown tests/test_payload.py::test_the_calendar_bound_holds_at_both_ends[inf-3652058]
0.00s teardown tests/test_model.py::test_a_name_that_is_not_a_login_gets_no_path_at_all[ann\n]
0.00s teardown tests/test_validate.py::test_a_stale_vocabulary_still_schedules_and_renders
0.00s teardown tests/test_validate.py::test_a_shelved_task_reviews_nothing
0.00s setup    tests/test_validate.py::test_tasks_that_fit_inside_the_bet_say_nothing
0.00s call     tests/test_payload.py::test_the_calendar_bound_holds_at_both_ends[0.0-0.0]
0.00s teardown tests/test_validate.py::test_a_parent_of_the_wrong_kind_is_named_as_such
0.00s teardown tests/test_payload.py::test_the_calendar_bound_holds_at_both_ends[-inf--3652058]
0.00s call     tests/test_payload.py::test_the_calendar_bound_holds_at_both_ends[-5.0--5.0]
0.00s call     tests/test_model.py::test_a_pitch_and_a_task_share_one_size_field_and_a_project_has_none
0.00s teardown tests/test_coedit.py::test_the_yjs_bundle_inlines_as_a_classic_script
0.00s teardown tests/test_coedit.py::test_every_index_into_the_document_is_converted
0.00s teardown tests/test_validate.py::test_a_shelved_task_is_not_counted_against_its_pitchs_appetite
0.00s teardown tests/test_validate.py::test_a_word_nobody_defined_is_a_problem_and_not_a_crash
0.00s setup    tests/test_validate.py::test_a_task_may_hang_straight_off_a_project
0.00s call     tests/test_validate.py::test_a_parent_cycle_does_not_send_the_delete_walk_round_for_ever
0.00s teardown tests/test_validate.py::test_a_name_nobody_recognises_is_a_warning_not_a_refusal
0.00s call     tests/test_model.py::test_a_name_that_is_not_a_login_gets_no_path_at_all[a/b]
0.00s teardown tests/test_validate.py::test_a_fully_specified_record_has_no_problems
0.00s call     tests/test_model.py::test_a_name_that_is_not_a_login_gets_no_path_at_all[aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa]
0.00s call     tests/test_model.py::test_a_login_becomes_the_one_path_it_may_be_written_at[aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa]
0.00s teardown tests/test_validate.py::test_each_rung_accepts_exactly_its_own_status_words
0.00s call     tests/test_model.py::test_a_body_with_no_checklist_counts_nothing_rather_than_zero_of_zero
0.00s teardown tests/test_validate.py::test_grandfathering_does_not_soften_a_rule_older_than_the_record
0.00s call     tests/test_model.py::test_a_checklist_inside_a_code_fence_is_somebody_elses_example
0.00s teardown tests/test_payload.py::test_a_number_json_cannot_hold_leaves_as_null[inf]
0.00s teardown tests/test_coedit.py::test_absorbing_holds_for_every_body_the_index_spaces_disagree_about[the
0.00s setup    tests/test_validate.py::test_no_message_names_a_field_the_way_the_file_spells_it
0.00s call     tests/test_payload.py::test_the_calendar_bound_holds_at_both_ends[5.0-5.0]
0.00s teardown tests/test_model.py::test_the_goal_is_a_field_and_the_notes_are_the_body
0.00s setup    tests/test_validate.py::test_a_stale_vocabulary_still_schedules_and_renders
0.00s call     tests/test_model.py::test_a_name_that_is_not_a_login_gets_no_path_at_all[ann-]
0.00s call     tests/test_model.py::test_a_name_that_is_not_a_login_gets_no_path_at_all[ann
0.00s teardown tests/test_coedit.py::test_absorbing_holds_for_every_body_the_index_spaces_disagree_about[a
0.00s call     tests/test_model.py::test_a_login_becomes_the_one_path_it_may_be_written_at[a-b]
0.00s teardown tests/test_payload.py::test_the_calendar_bound_holds_at_both_ends[nan-3652058]
0.00s call     tests/test_model.py::test_a_name_that_is_not_a_login_gets_no_path_at_all[.]
0.00s teardown tests/test_coedit.py::test_the_corpus_says_what_a_mixed_index_space_does_to_each_body[backspacing
0.00s call     tests/test_model.py::test_a_login_becomes_the_one_path_it_may_be_written_at[yellowhammer7]
0.00s setup    tests/test_validate.py::test_a_kind_that_reads_no_status_has_no_vocabulary_to_violate
0.00s call     tests/test_model.py::test_a_login_becomes_the_one_path_it_may_be_written_at[Oxpeckerly]
0.00s call     tests/test_model.py::test_a_name_that_is_not_a_login_gets_no_path_at_all[..]
0.00s call     tests/test_model.py::test_a_name_that_is_not_a_login_gets_no_path_at_all[-ann]
0.00s teardown tests/test_web.py::test_the_other_failures_the_tuple_names_are_answered_too
0.00s call     tests/test_model.py::test_a_name_that_is_not_a_login_gets_no_path_at_all[../config/defaults]
0.00s teardown tests/test_coedit.py::test_the_corpus_says_what_a_mixed_index_space_does_to_each_body[CJK,
0.00s call     tests/test_model.py::test_a_name_that_is_not_a_login_gets_no_path_at_all[ann\n]
0.00s teardown tests/test_validate.py::test_the_statuses_that_demand_nothing_are_not_asked_who_is_on_them
0.00s teardown tests/test_coedit.py::test_the_corpus_says_what_a_mixed_index_space_does_to_each_body[the
0.00s teardown tests/test_coedit.py::test_the_policy_did_not_have_to_move_for_the_socket
0.00s call     tests/test_model.py::test_a_name_that_is_not_a_login_gets_no_path_at_all[]
0.00s call     tests/test_model.py::test_a_name_that_is_not_a_login_gets_no_path_at_all[ann\nbo]
0.00s teardown tests/test_model.py::test_a_login_becomes_the_one_path_it_may_be_written_at[jackdawrie]
0.00s setup    tests/test_validate.py::test_a_title_must_not_be_empty
0.00s teardown tests/test_web.py::test_the_server_warms_the_index_before_it_binds
0.00s teardown tests/test_payload.py::test_the_calendar_bound_holds_at_both_ends[0.0-0.0]
0.00s setup    tests/test_validate.py::test_review_waived_satisfies_both_the_todo_and_the_wip_reviewer_gates
0.00s setup    tests/test_validate.py::test_an_id_must_match_the_pattern_and_agree_with_the_kind
0.00s teardown tests/test_payload.py::test_the_calendar_bound_holds_at_both_ends[-5.0--5.0]
0.00s teardown tests/test_coedit.py::test_the_browser_splices_on_a_whole_character
0.00s setup    tests/test_model.py::test_a_sentence_somebody_wrote_about_themselves_survives_a_pick
0.00s teardown tests/test_coedit.py::test_absorbing_holds_for_every_body_the_index_spaces_disagree_about[CJK,
0.00s teardown tests/test_validate.py::test_no_message_names_a_field_the_way_the_file_spells_it
0.00s teardown tests/test_validate.py::test_regression_a_record_may_not_depend_on_its_own_ancestor_or_descendant
0.00s teardown tests/test_model.py::test_a_record_created_from_nothing_carries_no_delimiters_in_its_body
0.00s teardown tests/test_coedit.py::test_absorbing_holds_for_every_body_the_index_spaces_disagree_about[backspacing
0.00s setup    tests/test_coedit.py::test_the_vendored_yjs_and_the_server_write_the_same_seed
0.00s teardown tests/test_validate.py::test_an_id_must_match_the_pattern_and_agree_with_the_kind
0.00s teardown tests/test_payload.py::test_a_number_json_cannot_hold_leaves_as_null[-inf]
0.00s setup    tests/test_model.py::test_a_heading_inside_a_code_fence_is_not_a_section
0.00s teardown tests/test_coedit.py::test_characters_are_credited_to_the_socket_they_arrived_on
0.00s teardown tests/test_validate.py::test_nothing_is_asked_of_a_record_nobody_has_looked_at
0.00s setup    tests/test_validate.py::test_a_pitch_whose_tasks_are_reviewed_is_reviewed
0.00s teardown tests/test_model.py::test_optional_fields_still_accept_real_values
0.00s setup    tests/test_validate.py::test_a_word_nobody_defined_is_a_problem_and_not_a_crash
0.00s teardown tests/test_validate.py::test_a_cycle_nobody_dated_is_reported_rather_than_ignored
0.00s setup    tests/test_validate.py::test_every_person_field_is_checked_against_the_roster
0.00s teardown tests/test_validate.py::test_a_title_must_not_be_empty
0.00s teardown tests/test_model.py::test_a_name_that_is_not_a_login_gets_no_path_at_all[]
0.00s teardown tests/test_validate.py::test_a_task_may_hang_straight_off_a_project
0.00s setup    tests/test_validate.py::test_the_rule_only_blocks_a_record_written_after_it_existed
0.00s teardown tests/test_model.py::test_a_login_becomes_the_one_path_it_may_be_written_at[Oxpeckerly]
0.00s teardown tests/test_validate.py::test_every_person_field_is_checked_against_the_roster
0.00s teardown tests/test_model.py::test_a_login_becomes_the_one_path_it_may_be_written_at[a--b]
0.00s teardown tests/test_validate.py::test_review_waived_satisfies_both_the_todo_and_the_wip_reviewer_gates
0.00s teardown tests/test_model.py::test_a_login_becomes_the_one_path_it_may_be_written_at[accentor9]
0.00s setup    tests/test_validate.py::test_a_parent_cycle_does_not_send_the_delete_walk_round_for_ever
0.00s setup    tests/test_model.py::test_a_login_typed_into_the_frontmatter_is_ignored_rather_than_believed
0.00s setup    tests/test_validate.py::test_a_project_belongs_to_nothing
0.00s teardown tests/test_validate.py::test_a_roster_that_does_not_exist_checks_nothing
0.00s setup    tests/test_validate.py::test_every_depends_on_target_must_exist
0.00s setup    tests/test_model.py::test_a_file_in_people_that_is_not_named_for_a_login_is_refused
0.00s setup    tests/test_validate.py::test_a_depends_on_cycle_is_reported_on_every_record_in_it
0.00s teardown tests/test_validate.py::test_every_depends_on_target_must_exist
0.00s teardown tests/test_validate.py::test_a_project_belongs_to_nothing
0.00s setup    tests/test_coedit.py::test_the_author_is_whoever_inserted_the_most_and_everyone_else_is_credited
0.00s setup    tests/test_validate.py::test_work_in_progress_needs_somebody_on_it
0.00s setup    tests/test_validate.py::test_a_wip_record_needs_assigned_on
0.00s teardown tests/test_validate.py::test_the_rule_only_blocks_a_record_written_after_it_existed
0.00s teardown tests/test_validate.py::test_a_project_is_not_bet_because_it_holds_bets
0.00s setup    tests/test_model.py::test_status_and_kind_are_still_constrained
0.00s teardown tests/test_validate.py::test_a_pitch_whose_tasks_are_reviewed_is_reviewed
0.00s setup    tests/test_validate.py::test_the_form_is_told_to_ask_for_somebody
0.00s setup    tests/test_model.py::test_a_checklist_is_counted_including_its_sub_items
0.00s teardown tests/test_model.py::test_a_login_becomes_the_one_path_it_may_be_written_at[aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa]
0.00s teardown tests/test_payload.py::test_a_number_json_cannot_hold_leaves_as_null[nan]
0.00s setup    tests/test_model.py::test_the_goal_is_a_field_and_the_notes_are_the_body
0.00s setup    tests/test_validate.py::test_a_pitch_with_nothing_under_it_still_needs_a_reviewer
0.00s setup    tests/test_validate.py::test_regression_a_record_may_not_depend_on_its_own_ancestor_or_descendant
0.00s teardown tests/test_coedit.py::test_the_author_is_whoever_inserted_the_most_and_everyone_else_is_credited
0.00s setup    tests/test_model.py::test_a_pitch_and_a_task_share_one_size_field_and_a_project_has_none
0.00s setup    tests/test_validate.py::test_a_todo_record_needs_a_reviewer_unless_review_is_waived
0.00s teardown tests/test_validate.py::test_in_progress_wants_somebody_other_than_the_owner_from_underneath_too
0.00s setup    tests/test_coedit.py::test_an_empty_room_is_kept_warm_and_then_dropped
0.00s setup    tests/test_coedit.py::test_every_case_in_the_corpus_makes_two_index_spaces_disagree
0.00s setup    tests/test_coedit.py::test_a_string_offset_is_not_a_document_offset
0.00s teardown tests/test_validate.py::test_a_chore_nobody_pitched_keeps_its_own_cycle_and_a_parented_task_does_not
0.00s teardown tests/test_validate.py::test_a_todo_record_needs_an_owner
0.00s setup    tests/test_validate.py::test_tasks_that_add_up_to_more_than_the_bet_say_so
0.00s teardown tests/test_model.py::test_a_login_becomes_the_one_path_it_may_be_written_at[a-b]
0.00s setup    tests/test_validate.py::test_depending_on_a_shelved_record_is_only_a_warning
0.00s setup    tests/test_validate.py::test_a_project_inherits_through_its_pitches
0.00s setup    tests/test_validate.py::test_nothing_is_asked_of_a_record_nobody_has_looked_at
0.00s teardown tests/test_validate.py::test_a_wip_record_needs_a_reviewer_who_is_not_its_owner
0.00s teardown tests/test_validate.py::test_tasks_that_add_up_to_more_than_the_bet_say_so
0.00s setup    tests/test_validate.py::test_a_project_is_not_bet_because_it_holds_bets
0.00s setup    tests/test_validate.py::test_a_shelved_task_reviews_nothing
0.00s teardown tests/test_validate.py::test_a_todo_record_needs_a_size
0.00s setup    tests/test_validate.py::test_a_pitch_under_a_project_and_a_task_under_a_pitch_are_the_shape
0.00s teardown tests/test_model.py::test_a_login_becomes_the_one_path_it_may_be_written_at[yellowhammer7]
0.00s setup    tests/test_validate.py::test_a_task_without_a_parent_is_only_a_warning
0.00s teardown tests/test_coedit.py::test_folding_in_somebody_elses_commit_credits_nobody
0.00s setup    tests/test_validate.py::test_a_parent_cycle_does_not_send_the_reviewer_walk_round_for_ever
0.00s teardown tests/test_validate.py::test_a_pitch_whose_tasks_name_nobody_still_needs_a_reviewer
0.00s teardown tests/test_coedit.py::test_an_empty_room_is_kept_warm_and_then_dropped
0.00s teardown tests/test_validate.py::test_a_parent_cycle_does_not_send_the_reviewer_walk_round_for_ever
0.00s setup    tests/test_validate.py::test_in_progress_wants_somebody_other_than_the_owner_from_underneath_too
0.00s setup    tests/test_validate.py::test_a_shelved_task_is_not_counted_against_its_pitchs_appetite
0.00s setup    tests/test_validate.py::test_a_parent_chain_cycle_is_reported_on_every_record_in_it
0.00s teardown tests/test_validate.py::test_a_depends_on_cycle_is_reported_on_every_record_in_it
0.00s teardown tests/test_validate.py::test_a_project_inherits_through_its_pitches
0.00s setup    tests/test_validate.py::test_a_todo_pitch_needs_shaped_by
0.00s teardown tests/test_validate.py::test_a_parent_chain_cycle_is_reported_on_every_record_in_it
0.00s teardown tests/test_validate.py::test_a_task_without_a_parent_is_only_a_warning
0.00s teardown tests/test_validate.py::test_a_pitch_with_nothing_under_it_still_needs_a_reviewer
0.00s teardown tests/test_validate.py::test_grandfathering_turns_a_newer_rule_into_a_warning_on_an_older_record
0.00s setup    tests/test_validate.py::test_a_done_record_needs_at_least_one_pr
0.00s teardown tests/test_validate.py::test_a_wip_record_needs_assigned_on
0.00s setup    tests/test_validate.py::test_a_wip_record_needs_a_reviewer_who_is_not_its_owner
0.00s teardown tests/test_validate.py::test_a_todo_pitch_needs_shaped_by
0.00s setup    tests/test_validate.py::test_a_parent_of_the_wrong_kind_is_named_as_such
0.00s setup    tests/test_model.py::test_a_person_record_takes_its_login_from_the_path
0.00s teardown tests/test_coedit.py::test_a_body_with_an_em_dash_is_absorbed_exactly
0.00s setup    tests/test_coedit.py::test_every_index_into_the_document_is_converted
0.00s setup    tests/test_validate.py::test_a_shelved_record_has_no_requirements_at_all
0.00s teardown tests/test_validate.py::test_tasks_that_fit_inside_the_bet_say_nothing
0.00s teardown tests/test_validate.py::test_a_pitch_under_a_project_and_a_task_under_a_pitch_are_the_shape
0.00s setup    tests/test_model.py::test_sections_are_keyed_by_their_heading_lowercased_and_flat
0.00s setup    tests/test_payload.py::test_a_number_json_can_hold_is_left_exactly_alone
0.00s setup    tests/test_validate.py::test_grandfathering_does_not_soften_a_rule_older_than_the_record
0.00s setup    tests/test_validate.py::test_a_todo_record_needs_an_owner
0.00s teardown tests/test_model.py::test_a_record_needs_only_id_kind_and_title
0.00s setup    tests/test_coedit.py::test_absorbing_keeps_the_untouched_half_of_the_document
0.00s teardown tests/test_model.py::test_status_and_kind_are_still_constrained
0.00s teardown tests/test_coedit.py::test_absorbing_holds_for_every_shape_of_edit_in_a_body_that_is_not_ascii
0.00s setup    tests/test_validate.py::test_a_todo_record_needs_somebody_on_it
0.00s setup    tests/test_model.py::test_a_section_is_dropped_with_everything_written_underneath_it
0.00s teardown tests/test_validate.py::test_a_todo_record_needs_a_reviewer_unless_review_is_waived
0.00s setup    tests/test_coedit.py::test_a_room_with_nothing_in_it_has_nobody_to_attribute_a_commit_to
0.00s setup    tests/test_model.py::test_a_heading_survives_a_subsection_that_survives_it
0.00s teardown tests/test_validate.py::test_depending_on_a_shelved_record_is_only_a_warning
0.00s setup    tests/test_validate.py::test_the_statuses_that_demand_nothing_are_not_asked_who_is_on_them
0.00s teardown tests/test_validate.py::test_a_todo_record_needs_somebody_on_it
0.00s setup    tests/test_validate.py::test_a_todo_record_needs_a_size
0.00s teardown tests/test_validate.py::test_a_done_record_needs_at_least_one_pr
0.00s teardown tests/test_validate.py::test_a_shelved_record_has_no_requirements_at_all
0.00s setup    tests/test_model.py::test_an_empty_frontmatter_block_is_frontmatter_and_not_body
0.00s setup    tests/test_model.py::test_sizes_are_optional_on_both_subclasses
0.00s setup    tests/test_model.py::test_a_checklist_inside_a_code_fence_is_somebody_elses_example
0.00s teardown tests/test_validate.py::test_work_in_progress_needs_somebody_on_it
0.00s setup    tests/test_coedit.py::test_an_index_inside_a_character_is_not_an_error_and_that_is_the_defect
0.00s setup    tests/test_model.py::test_a_box_at_the_end_of_a_file_is_a_box
0.00s setup    tests/test_model.py::test_a_record_created_from_nothing_carries_no_delimiters_in_its_body
0.00s setup    tests/test_model.py::test_an_empty_section_is_present_and_empty_so_a_reader_can_tell_them_apart
0.00s teardown tests/test_coedit.py::test_absorbing_keeps_the_untouched_half_of_the_document
0.00s setup    tests/test_coedit.py::test_a_body_with_an_em_dash_is_absorbed_exactly
0.00s setup    tests/test_model.py::test_a_heading_over_nothing_but_another_empty_heading_goes_too
0.00s teardown tests/test_model.py::test_an_empty_frontmatter_block_is_frontmatter_and_not_body
0.00s teardown tests/test_model.py::test_a_record_opens_at_the_foot_of_its_own_ladder
0.00s teardown tests/test_coedit.py::test_every_case_in_the_corpus_makes_two_index_spaces_disagree
0.00s setup    tests/test_coedit.py::test_absorbing_holds_for_every_shape_of_edit_in_a_body_that_is_not_ascii
0.00s teardown tests/test_validate.py::test_a_parent_cycle_does_not_send_the_delete_walk_round_for_ever
0.00s teardown tests/test_model.py::test_a_heading_survives_a_subsection_that_survives_it
0.00s teardown tests/test_coedit.py::test_a_room_with_nothing_in_it_has_nobody_to_attribute_a_commit_to
0.00s teardown tests/test_payload.py::test_a_number_json_can_hold_is_left_exactly_alone
0.00s setup    tests/test_coedit.py::test_folding_in_somebody_elses_commit_credits_nobody
0.00s teardown tests/test_model.py::test_a_section_is_dropped_with_everything_written_underneath_it
0.00s teardown tests/test_coedit.py::test_a_string_offset_is_not_a_document_offset
0.00s teardown tests/test_model.py::test_a_checklist_is_counted_including_its_sub_items
0.00s setup    tests/test_model.py::test_optional_fields_still_accept_real_values
0.00s teardown tests/test_model.py::test_a_heading_over_nothing_but_another_empty_heading_goes_too
0.00s teardown tests/test_model.py::test_a_box_at_the_end_of_a_file_is_a_box
0.00s teardown tests/test_model.py::test_a_heading_inside_a_code_fence_is_not_a_section
0.00s teardown tests/test_model.py::test_sizes_are_optional_on_both_subclasses
0.00s teardown tests/test_model.py::test_a_body_with_no_checklist_counts_nothing_rather_than_zero_of_zero
0.00s teardown tests/test_model.py::test_an_empty_section_is_present_and_empty_so_a_reader_can_tell_them_apart
0.00s teardown tests/test_model.py::test_a_checklist_inside_a_code_fence_is_somebody_elses_example
0.00s teardown tests/test_model.py::test_a_pitch_and_a_task_share_one_size_field_and_a_project_has_none

# --- suite (rest) ---
17.42s call     tests/test_search.py::test_the_box_and_the_server_find_the_same_records
11.15s call     tests/test_facets.py::test_two_values_of_one_field_mean_either
4.73s call     tests/test_hill.py::test_the_ball_is_painted_where_the_geometry_says
2.82s call     tests/test_search.py::test_the_language_is_evaluated_the_same_in_the_browser
2.02s call     tests/test_facets.py::test_an_open_menu_is_not_painted_over[graph]
1.81s call     tests/test_cascade.py::test_every_control_on_every_page_is_drawn_the_same[graph]
1.65s call     tests/test_delete.py::test_the_delete_under_a_record_is_the_delete_of_that_record
1.58s call     tests/test_hill.py::test_cancelling_an_edit_rolls_the_ball_back
1.46s call     tests/test_facets.py::test_the_people_page_honours_both_values_too
1.46s call     tests/test_facets.py::test_the_way_out_appears_only_when_there_is_one
1.46s call     tests/test_hill.py::test_dragging_the_ball_lands_on_a_stop
1.45s call     tests/test_delete.py::test_it_takes_two_presses_and_the_first_one_writes_nothing
1.43s call     tests/test_teaching.py::test_a_status_nobody_may_set_is_never_taught_a_lesson
1.29s call     tests/test_search.py::test_a_word_only_in_a_shaping_document_is_not_a_match
1.27s call     tests/test_records.py::test_the_landing_box_and_the_server_find_the_same_records
1.27s call     tests/test_delete.py::test_a_refusal_is_shown_where_the_question_was_asked
1.26s call     tests/test_delete.py::test_the_commit_bar_is_not_on_screen_when_there_is_nothing_to_commit
1.23s call     tests/test_hill.py::test_the_hill_takes_a_keyboard
1.21s call     tests/test_cascade.py::test_every_control_on_every_page_is_drawn_the_same[table]
1.19s call     tests/test_facets.py::test_a_facet_reads_as_a_menu_and_not_as_a_box_to_type_in
1.19s call     tests/test_search.py::test_nothing_malformed_is_quietly_accepted
1.18s call     tests/test_facets.py::test_an_open_menu_is_not_painted_over[table]
1.17s call     tests/test_hill.py::test_the_ball_follows_the_field_when_something_else_sets_it
1.17s call     tests/test_search.py::test_both_halves_refuse_the_same_queries_with_the_same_sentence
1.17s call     tests/test_facets.py::test_the_empty_option_asks_about_the_list_and_not_inside_it
1.16s call     tests/test_cascade.py::test_every_control_on_every_page_is_drawn_the_same[detail]
1.15s call     tests/test_cascade.py::test_every_control_on_every_page_is_drawn_the_same[create]
1.14s call     tests/test_hill.py::test_a_cancelled_drag_puts_the_ball_back
1.13s call     tests/test_teaching.py::test_the_sentence_follows_the_ball
1.13s call     tests/test_hill.py::test_pressing_a_stop_moves_the_ball_and_the_form
1.12s call     tests/test_facets.py::test_clearing_puts_every_field_back
1.07s call     tests/test_delete.py::test_delete_leaves_while_an_edit_is_open
1.06s call     tests/test_facets.py::test_the_closed_control_says_what_is_set
1.06s call     tests/test_facets.py::test_one_value_is_named_and_unticking_it_puts_the_field_back
1.03s call     tests/test_facets.py::test_escape_closes_the_menu_and_hands_the_keyboard_back
1.02s call     tests/test_facets.py::test_the_server_answers_the_same_two_values
0.99s call     tests/test_facets.py::test_opening_one_field_closes_the_last
0.98s call     tests/test_facets.py::test_an_open_menu_is_not_painted_over[timeline]
0.95s call     tests/test_facets.py::test_a_link_opens_with_its_boxes_ticked
0.82s call     tests/test_cascade.py::test_every_control_on_every_page_is_drawn_the_same[timeline]
0.55s call     tests/test_search.py::test_every_searchable_field_is_reachable_from_the_box
0.20s call     tests/test_cascade.py::test_every_kind_chip_is_the_same_shape[task]
0.19s call     tests/test_cascade.py::test_the_nav_marks_where_you_are_even_on_a_link_you_have_already_used
0.16s call     tests/test_facets.py::test_no_two_scripts_on_a_page_declare_the_same_name[records]
0.16s call     tests/test_records.py::test_the_landing_lists_every_record_newest_edit_first
0.16s call     tests/test_cascade.py::test_the_row_a_pages_own_controls_stand_in_is_a_row_on_every_page
0.16s call     tests/test_cascade.py::test_a_link_that_is_a_control_is_drawn_as_one_on_every_page
0.16s call     tests/test_cascade.py::test_every_kind_chip_is_the_same_shape[project]
0.15s call     tests/test_cascade.py::test_every_kind_chip_is_the_same_shape[pitch]
0.14s call     tests/test_records.py::test_a_search_that_matches_nothing_says_so_in_the_views_own_words
0.13s call     tests/test_records.py::test_every_row_carries_the_predicates_the_server_computes
0.13s call     tests/test_records.py::test_a_predicate_in_the_url_filters_rows_and_an_unmatched_one_is_a_sentence
0.12s setup    tests/test_search.py::test_the_box_and_the_server_find_the_same_records
0.12s call     tests/test_search.py::test_a_query_that_reads_leaves_nothing_said
0.12s setup    tests/test_cascade.py::test_the_full_page_class_does_not_beat_the_editing_class
0.12s setup    tests/test_cascade.py::test_the_handle_between_the_panes_is_a_control_in_one_view_and_nowhere_else
0.12s call     tests/test_search.py::test_a_half_typed_query_says_what_is_wrong_with_it
0.11s setup    tests/test_teaching.py::test_a_status_nobody_may_set_is_never_taught_a_lesson
0.10s setup    tests/test_facets.py::test_the_people_page_honours_both_values_too
0.10s call     tests/test_index.py::test_the_seed_index_carries_the_scheduler_and_validator_output
0.10s setup    tests/test_search.py::test_parentheses_change_the_answer
0.10s call     tests/test_records.py::test_the_who_column_reads_the_field_the_rung_says
0.09s call     tests/test_facets.py::test_no_two_scripts_on_a_page_declare_the_same_name[graph]
0.09s call     tests/test_cascade.py::test_every_commit_bar_sticks_to_the_same_edge_and_one_rule_decides_it
0.09s call     tests/test_cascade.py::test_a_conflict_report_is_a_report_on_the_table_as_well_as_the_detail_page
0.08s setup    tests/test_cascade.py::test_every_control_on_every_page_is_drawn_the_same[graph]
0.08s setup    tests/test_cascade.py::test_every_control_on_every_page_is_drawn_the_same[detail]
0.08s setup    tests/test_cascade.py::test_a_problem_on_a_frozen_column_still_gets_its_ground[warn-title]
0.08s setup    tests/test_cascade.py::test_the_box_on_a_record_page_is_monospace_and_fits_its_pane
0.08s setup    tests/test_facets.py::test_the_way_out_appears_only_when_there_is_one
0.08s setup    tests/test_cascade.py::test_every_control_on_every_page_is_drawn_the_same[table]
0.08s setup    tests/test_cascade.py::test_no_stylesheet_has_an_unclosed_comment
0.08s setup    tests/test_cascade.py::test_the_handle_between_the_panes_is_one_control_on_the_one_stylesheet
0.08s setup    tests/test_cascade.py::test_a_hidden_control_stays_hidden_on_the_one_stylesheet
0.08s setup    tests/test_cascade.py::test_the_record_pages_bar_still_beats_the_field_rule_it_once_lost_to
0.08s setup    tests/test_cascade.py::test_every_control_on_every_page_is_drawn_the_same[timeline]
0.08s setup    tests/test_cascade.py::test_every_control_on_every_page_is_drawn_the_same[create]
0.08s setup    tests/test_cascade.py::test_a_problem_on_a_frozen_column_still_gets_its_ground[warn-id]
0.08s setup    tests/test_cascade.py::test_a_problem_on_a_frozen_column_still_gets_its_ground[blocker-id]
0.08s call     tests/test_facets.py::test_no_two_scripts_on_a_page_declare_the_same_name[table]
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_cascade.py::test_a_refused_cell_says_so_on_a_frozen_column_too[id]
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_cascade.py::test_the_suggestion_popup_hangs_off_the_body_where_nothing_clips_it
0.08s call     tests/test_facets.py::test_no_two_scripts_on_a_page_declare_the_same_name[detail]
0.08s call     tests/test_facets.py::test_no_two_scripts_on_a_page_declare_the_same_name[cycle]
0.08s setup    tests/test_cascade.py::test_a_frozen_cell_never_asks_for_an_outset_shadow
0.08s setup    tests/test_cascade.py::test_the_title_header_keeps_the_rule_along_its_bottom_edge
0.08s call     tests/test_facets.py::test_no_two_scripts_on_a_page_declare_the_same_name[people]
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_mark_does_not_shrink_out_of_the_line_it_sits_in
0.08s setup    tests/test_cascade.py::test_the_frozen_headers_are_drawn_over_the_rows_that_pass_under_them
0.08s setup    tests/test_cascade.py::test_a_problem_on_a_frozen_column_still_gets_its_ground[warn-owner]
0.08s setup    tests/test_facets.py::test_two_values_of_one_field_mean_either
0.08s setup    tests/test_cascade.py::test_the_frozen_edge_is_drawn_only_while_the_table_is_scrolled
0.08s setup    tests/test_facets.py::test_the_empty_option_asks_about_the_list_and_not_inside_it
0.08s setup    tests/test_cascade.py::test_a_problem_on_a_frozen_column_still_gets_its_ground[blocker-title]
0.08s setup    tests/test_facets.py::test_one_value_is_named_and_unticking_it_puts_the_field_back
0.08s setup    tests/test_cascade.py::test_a_problem_on_a_frozen_column_still_gets_its_ground[blocker-owner]
0.08s setup    tests/test_facets.py::test_opening_one_field_closes_the_last
0.08s setup    tests/test_cascade.py::test_a_refused_cell_says_so_on_a_frozen_column_too[title]
0.08s setup    tests/test_facets.py::test_the_closed_control_says_what_is_set
0.08s setup    tests/test_cascade.py::test_a_refused_cell_says_so_on_a_frozen_column_too[owner]
0.08s setup    tests/test_facets.py::test_escape_closes_the_menu_and_hands_the_keyboard_back
0.08s setup    tests/test_facets.py::test_the_server_answers_the_same_two_values
0.07s setup    tests/test_search.py::test_both_halves_refuse_the_same_queries_with_the_same_sentence
0.07s setup    tests/test_search.py::test_a_half_typed_query_says_what_is_wrong_with_it
0.07s setup    tests/test_search.py::test_nothing_malformed_is_quietly_accepted
0.07s setup    tests/test_search.py::test_a_query_that_reads_leaves_nothing_said
0.07s call     tests/test_facets.py::test_no_two_scripts_on_a_page_declare_the_same_name[timeline]
0.07s setup    tests/test_facets.py::test_clearing_puts_every_field_back
0.07s call     tests/test_hill.py::test_the_hill_can_say_the_word_without_printing_it
0.07s setup    tests/test_cascade.py::test_a_refusal_is_coloured_as_one_and_a_receipt_is_not
0.07s setup    tests/test_search.py::test_every_searchable_field_is_reachable_from_the_box
0.07s setup    tests/test_cascade.py::test_the_picker_is_hidden_by_the_attribute_and_not_by_source_order
0.07s call     tests/test_records.py::test_an_export_of_a_repository_carries_the_times
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_cascade.py::test_the_open_picker_is_painted_over_the_sticky_header_and_not_under_it
0.07s setup    tests/test_search.py::test_a_word_only_in_a_shaping_document_is_not_a_match
0.07s setup    tests/test_cascade.py::test_the_picker_scrolls_inside_itself_rather_than_off_the_page
0.07s setup    tests/test_cascade.py::test_a_refusal_lands_somewhere_a_sighted_reader_can_read_it
0.07s setup    tests/test_search.py::test_the_language_is_evaluated_the_same_in_the_browser
0.07s setup    tests/test_teaching.py::test_the_inbox_ladders_keep_the_slot_for_their_own_sentence
0.07s call     tests/test_hill.py::test_the_card_draws_the_hill_and_keeps_the_word
0.07s setup    tests/test_search.py::test_a_bare_word_is_a_substring_of_the_searchable_text
0.07s setup    tests/test_delete.py::test_the_delete_under_a_record_is_the_delete_of_that_record
0.07s setup    tests/test_hill.py::test_dragging_the_ball_lands_on_a_stop
0.07s setup    tests/test_teaching.py::test_every_word_a_planned_record_stands_on_is_decided_about
0.07s setup    tests/test_delete.py::test_delete_leaves_while_an_edit_is_open
0.07s setup    tests/test_hill.py::test_a_cancelled_drag_puts_the_ball_back
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_delete.py::test_the_commit_bar_is_not_on_screen_when_there_is_nothing_to_commit
0.07s setup    tests/test_search.py::test_adjacent_terms_are_anded
0.07s setup    tests/test_hill.py::test_the_hill_takes_a_keyboard
0.07s setup    tests/test_facets.py::test_an_open_menu_is_not_painted_over[graph]
0.07s setup    tests/test_hill.py::test_the_status_row_is_a_hill_and_the_dropdown_is_gone
0.07s setup    tests/test_delete.py::test_a_refusal_is_shown_where_the_question_was_asked
0.07s setup    tests/test_delete.py::test_delete_stands_beside_edit_and_wears_what_edit_wears
0.07s setup    tests/test_hill.py::test_the_ball_is_painted_where_the_geometry_says
0.07s setup    tests/test_teaching.py::test_every_sentence_written_reaches_the_page
0.07s setup    tests/test_facets.py::test_an_open_menu_is_not_painted_over[timeline]
0.07s setup    tests/test_teaching.py::test_the_status_row_carries_the_map_the_script_reads
0.07s setup    tests/test_search.py::test_two_tags_can_be_asked_for_at_once
0.07s call     tests/test_index.py::test_work_running_past_its_cycles_build_is_a_filter
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_facets.py::test_a_link_opens_with_its_boxes_ticked
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_hill.py::test_the_ball_follows_the_field_when_something_else_sets_it
0.07s setup    tests/test_hill.py::test_the_card_draws_the_hill_and_keeps_the_word
0.07s setup    tests/test_facets.py::test_no_two_scripts_on_a_page_declare_the_same_name[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_delete.py::test_the_panel_says_what_the_delete_will_take_with_it
0.07s setup    tests/test_teaching.py::test_the_sentence_follows_the_ball
0.07s setup    tests/test_delete.py::test_the_question_names_the_record_it_is_about
0.07s setup    tests/test_facets.py::test_no_two_scripts_on_a_page_declare_the_same_name[table]
0.07s setup    tests/test_teaching.py::test_a_reader_who_cannot_write_is_not_taught
0.07s setup    tests/test_teaching.py::test_the_lock_keeps_its_slot_and_both_its_modes
0.07s setup    tests/test_hill.py::test_a_word_the_card_does_not_know_gets_no_ball_either
0.07s setup    tests/test_facets.py::test_no_two_scripts_on_a_page_declare_the_same_name[graph]
0.07s setup    tests/test_teaching.py::test_a_word_with_nothing_to_teach_still_gets_its_span
0.07s setup    tests/test_teaching.py::test_each_sentence_describes_the_control_it_sits_with
0.07s setup    tests/test_delete.py::test_a_leaf_record_asks_a_plain_question
0.07s setup    tests/test_teaching.py::test_the_pitch_template_names_both_ways_to_get_the_level_wrong
0.07s setup    tests/test_teaching.py::test_an_empty_lesson_is_hidden_in_the_mode_that_shows_the_rest
0.07s setup    tests/test_search.py::test_not_takes_records_away
0.07s call     tests/test_index.py::test_a_pr_reference_is_searchable
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_an_unknown_field_matches_nothing_rather_than_everything
0.07s setup    tests/test_search.py::test_a_field_asks_that_field_and_nothing_else
0.07s setup    tests/test_facets.py::test_no_two_scripts_on_a_page_declare_the_same_name[detail]
0.07s setup    tests/test_delete.py::test_the_control_is_only_on_the_record_page
0.07s setup    tests/test_facets.py::test_no_two_scripts_on_a_page_declare_the_same_name[cycle]
0.07s setup    tests/test_search.py::test_a_malformed_query_says_so_and_matches_nothing
0.07s setup    tests/test_facets.py::test_no_two_scripts_on_a_page_declare_the_same_name[people]
0.07s setup    tests/test_search.py::test_the_empty_menu_option_is_askable_in_the_language
0.07s setup    tests/test_search.py::test_a_pr_is_found_however_it_is_written
0.07s call     tests/test_hill.py::test_a_word_the_card_does_not_know_gets_no_ball_either
0.06s call     tests/test_records.py::test_an_unreadable_query_goes_to_the_error_region_not_to_a_row
0.06s call     tests/test_records.py::test_a_state_only_the_script_reaches_is_announced_and_only_once
0.06s call     tests/test_records.py::test_the_issues_view_box_searches_issues_and_nothing_else
0.06s call     tests/test_records.py::test_a_lost_payload_degrades_to_an_unfiltered_list_and_says_so
0.06s call     tests/test_records.py::test_an_empty_view_and_an_empty_plan_are_different_sentences
0.06s setup    tests/test_index.py::test_the_has_blocker_predicate_is_the_strict_half_of_missing_required_fields
0.06s setup    tests/test_cascade.py::test_every_commit_bar_sticks_to_the_same_edge_and_one_rule_decides_it
0.06s setup    tests/test_cascade.py::test_a_drawn_mark_has_a_size_of_its_own[draft-create]
0.06s setup    tests/test_cascade.py::test_the_timeline_window_controls_stand_on_one_line
0.06s setup    tests/test_index.py::test_the_seed_facets_are_the_menus_the_table_will_show
0.06s setup    tests/test_cascade.py::test_a_bar_and_the_key_that_names_it_are_drawn_the_same_way
0.06s setup    tests/test_cascade.py::test_a_drawn_mark_has_a_size_of_its_own[draft-cancel]
0.05s setup    tests/test_cascade.py::test_every_kind_chip_is_the_same_shape[pitch]
0.05s setup    tests/test_index.py::test_the_seed_incomplete_records_are_the_ones_missing_fields
0.05s setup    tests/test_index.py::test_the_seed_review_waiver_is_the_only_one
0.05s setup    tests/test_cascade.py::test_the_draft_rows_controls_stand_on_one_line
0.05s setup    tests/test_cascade.py::test_the_row_a_pages_own_controls_stand_in_is_a_row_on_every_page
0.05s setup    tests/test_index.py::test_a_status_nobody_uses_is_left_out_of_the_menu_and_a_strange_one_is_not
0.05s setup    tests/test_index.py::test_the_seed_diamond_reverses_into_blocks
0.05s setup    tests/test_index.py::test_the_seed_blocked_set_is_exactly_the_live_diamond
0.05s setup    tests/test_cascade.py::test_every_kind_chip_is_the_same_shape[task]
0.05s setup    tests/test_cascade.py::test_the_timeline_still_says_which_of_its_two_controls_is_the_verb
0.05s setup    tests/test_index.py::test_a_predicate_never_touches_a_record_that_has_no_span
0.05s setup    tests/test_index.py::test_a_pitchs_dependency_is_inherited_by_its_tasks
0.05s setup    tests/test_index.py::test_a_record_in_progress_with_nothing_linked_is_a_question_not_a_rule
0.05s setup    tests/test_index.py::test_searching_the_seed_corpus_finds_the_task_by_its_title
0.05s setup    tests/test_cascade.py::test_every_kind_chip_is_the_same_shape[project]
0.05s setup    tests/test_cascade.py::test_a_link_that_is_a_control_is_drawn_as_one_on_every_page
0.05s setup    tests/test_cascade.py::test_an_overrunning_bar_still_reads_as_overrunning
0.05s setup    tests/test_index.py::test_task_2b6c94_is_unblocked_because_its_only_blocker_is_done
0.05s setup    tests/test_index.py::test_the_build_end_a_predicate_uses_is_the_one_the_timeline_uses
0.05s setup    tests/test_index.py::test_the_seed_index_has_the_shape_of_the_corpus
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 setup    tests/test_cascade.py::test_the_nav_marks_where_you_are_even_on_a_link_you_have_already_used
0.05s call     tests/test_teaching.py::test_every_sentence_written_reaches_the_page
0.04s call     tests/test_records.py::test_an_export_without_git_omits_the_time_column
0.03s call     tests/test_teaching.py::test_a_word_with_nothing_to_teach_still_gets_its_span
0.03s call     tests/test_records.py::test_the_header_row_is_sticky_and_nothing_on_this_page_outranks_it
0.03s call     tests/test_teaching.py::test_the_inbox_ladders_keep_the_slot_for_their_own_sentence
0.03s call     tests/test_teaching.py::test_an_empty_lesson_is_hidden_in_the_mode_that_shows_the_rest
0.03s call     tests/test_records.py::test_the_nav_says_records_at_the_root_and_table_at_table
0.03s call     tests/test_cascade.py::test_a_drawn_mark_has_a_size_of_its_own[draft-create]
0.03s call     tests/test_cascade.py::test_a_drawn_mark_has_a_size_of_its_own[draft-cancel]
0.02s call     tests/test_cascade.py::test_a_bar_and_the_key_that_names_it_are_drawn_the_same_way
0.02s call     tests/test_cascade.py::test_the_draft_rows_controls_stand_on_one_line
0.02s call     tests/test_cascade.py::test_the_timeline_window_controls_stand_on_one_line
0.02s call     tests/test_cascade.py::test_an_overrunning_bar_still_reads_as_overrunning
0.02s call     tests/test_records.py::test_the_inbox_routes_render_the_landing_held_to_one_kind
0.02s call     tests/test_cascade.py::test_the_timeline_still_says_which_of_its_two_controls_is_the_verb
0.02s call     tests/test_records.py::test_each_view_offers_its_own_create_button
0.02s call     tests/test_records.py::test_a_filtered_out_row_is_display_none_and_not_merely_marked
0.02s call     tests/test_records.py::test_the_page_furniture_stands_outside_the_scroll_box
0.02s call     tests/test_delete.py::test_the_control_is_only_on_the_record_page
0.02s call     tests/test_teaching.py::test_each_sentence_describes_the_control_it_sits_with
0.02s call     tests/test_delete.py::test_only_somebody_the_server_would_take_a_write_from_is_offered_the_button
0.01s call     tests/test_search.py::test_two_tags_can_be_asked_for_at_once
0.01s call     tests/test_teaching.py::test_every_word_a_planned_record_stands_on_is_decided_about
0.01s call     tests/test_teaching.py::test_the_status_row_carries_the_map_the_script_reads
0.01s call     tests/test_cascade.py::test_no_stylesheet_has_an_unclosed_comment
0.01s call     tests/test_teaching.py::test_the_lock_keeps_its_slot_and_both_its_modes
0.01s call     tests/test_teaching.py::test_a_record_that_locks_and_teaches_points_at_both
0.01s call     tests/test_delete.py::test_delete_stands_beside_edit_and_wears_what_edit_wears
0.01s call     tests/test_delete.py::test_a_leaf_record_asks_a_plain_question
0.01s call     tests/test_hill.py::test_the_status_row_is_a_hill_and_the_dropdown_is_gone
0.01s call     tests/test_delete.py::test_the_panel_says_what_the_delete_will_take_with_it
0.01s call     tests/test_delete.py::test_the_question_names_the_record_it_is_about
0.01s call     tests/test_hill.py::test_the_locked_control_carries_its_explanation_for_a_screen_reader
0.01s call     tests/test_teaching.py::test_a_reader_who_cannot_write_is_not_taught
0.00s call     tests/test_hill.py::test_the_read_only_hill_has_no_stops_on_it
0.00s call     tests/test_records.py::test_a_plan_with_no_records_says_so_from_the_server
0.00s call     tests/test_cascade.py::test_the_full_page_class_does_not_beat_the_editing_class
0.00s call     tests/test_cascade.py::test_every_rule_that_corrects_a_frozen_column_outweighs_it
0.00s call     tests/test_cascade.py::test_the_handle_between_the_panes_is_a_control_in_one_view_and_nowhere_else
0.00s call     tests/test_cascade.py::test_the_column_control_is_drawn_as_a_control_and_the_label_is_not
0.00s call     tests/test_cascade.py::test_the_frozen_edge_is_drawn_only_while_the_table_is_scrolled
0.00s call     tests/test_index.py::test_the_searchable_text_holds_an_inbox_records_author
0.00s call     tests/test_hill.py::test_a_derived_state_locks_the_control_in_the_dom_not_in_paint
0.00s call     tests/test_cascade.py::test_a_frozen_cell_never_asks_for_an_outset_shadow
0.00s call     tests/test_search.py::test_a_bare_word_is_a_substring_of_the_searchable_text
0.00s call     tests/test_search.py::test_parentheses_change_the_answer
0.00s call     tests/test_cascade.py::test_the_handle_between_the_panes_is_one_control_on_the_one_stylesheet
0.00s call     tests/test_cascade.py::test_the_record_pages_bar_still_beats_the_field_rule_it_once_lost_to
0.00s call     tests/test_index.py::test_a_stored_blocks_key_in_frontmatter_is_ignored
0.00s call     tests/test_cascade.py::test_the_frozen_columns_keep_the_position_their_left_offset_is_meant_for
0.00s call     tests/test_search.py::test_not_takes_records_away
0.00s call     tests/test_search.py::test_an_unknown_field_matches_nothing_rather_than_everything
0.00s call     tests/test_cascade.py::test_a_refusal_lands_somewhere_a_sighted_reader_can_read_it
0.00s call     tests/test_index.py::test_the_has_blocker_predicate_is_the_strict_half_of_missing_required_fields
0.00s call     tests/test_cascade.py::test_a_problem_on_a_frozen_column_still_gets_its_ground[warn-id]
0.00s call     tests/test_cascade.py::test_a_refusal_is_coloured_as_one_and_a_receipt_is_not
0.00s call     tests/test_cascade.py::test_a_problem_on_a_frozen_column_still_gets_its_ground[warn-title]
0.00s call     tests/test_cascade.py::test_a_problem_on_a_frozen_column_still_gets_its_ground[blocker-owner]
0.00s call     tests/test_cascade.py::test_a_problem_on_a_frozen_column_still_gets_its_ground[blocker-id]
0.00s call     tests/test_cascade.py::test_a_problem_on_a_frozen_column_still_gets_its_ground[blocker-title]
0.00s call     tests/test_cascade.py::test_a_problem_on_a_frozen_column_still_gets_its_ground[warn-owner]
0.00s call     tests/test_cascade.py::test_a_refused_cell_says_so_on_a_frozen_column_too[id]
0.00s call     tests/test_cascade.py::test_a_refused_cell_says_so_on_a_frozen_column_too[owner]
0.00s call     tests/test_search.py::test_a_field_asks_that_field_and_nothing_else
0.00s call     tests/test_search.py::test_adjacent_terms_are_anded
0.00s call     tests/test_cascade.py::test_a_refused_cell_says_so_on_a_frozen_column_too[title]
0.00s call     tests/test_index.py::test_task_2b6c94_is_unblocked_because_its_only_blocker_is_done
0.00s call     tests/test_search.py::test_a_pr_is_found_however_it_is_written
0.00s call     tests/test_cascade.py::test_the_frozen_headers_are_drawn_over_the_rows_that_pass_under_them
0.00s call     tests/test_hill.py::test_an_issue_whose_pitch_is_done_reads_done_with_a_locked_hill_and_the_hint
0.00s call     tests/test_index.py::test_a_for_later_list_is_the_only_record_of_scope_being_cut
0.00s call     tests/test_index.py::test_searching_the_seed_corpus_finds_the_task_by_its_title
0.00s call     tests/test_hill.py::test_a_record_cannot_stand_where_only_a_note_can
0.00s call     tests/test_index.py::test_a_container_is_as_far_along_as_the_work_beneath_it
0.00s call     tests/test_cascade.py::test_the_suggestion_popup_hangs_off_the_body_where_nothing_clips_it
0.00s call     tests/test_cascade.py::test_a_hidden_control_stays_hidden_on_the_one_stylesheet
0.00s call     tests/test_index.py::test_spans_and_explanations_come_from_the_scheduler
0.00s call     tests/test_index.py::test_a_parent_chain_that_ends_outside_the_plan_still_finds_the_project_it_names
0.00s setup    tests/test_index.py::test_children_lists_each_parents_children_by_id
0.00s call     tests/test_cascade.py::test_the_picker_is_hidden_by_the_attribute_and_not_by_source_order
0.00s call     tests/test_index.py::test_problems_come_from_validate_all
0.00s setup    tests/test_records.py::test_the_issues_view_box_searches_issues_and_nothing_else
0.00s call     tests/test_cascade.py::test_the_title_header_keeps_the_rule_along_its_bottom_edge
0.00s setup    tests/test_records.py::test_a_state_only_the_script_reaches_is_announced_and_only_once
0.00s call     tests/test_index.py::test_the_missing_required_fields_predicate_reads_the_problems
0.00s setup    tests/test_records.py::test_an_export_without_git_omits_the_time_column
0.00s setup    tests/test_index.py::test_no_filters_and_no_query_returns_the_whole_plan_sorted_by_id
0.00s setup    tests/test_records.py::test_the_landing_lists_every_record_newest_edit_first
0.00s call     tests/test_index.py::test_values_within_one_field_are_ored
0.00s setup    tests/test_records.py::test_a_lost_payload_degrades_to_an_unfiltered_list_and_says_so
0.00s call     tests/test_index.py::test_a_container_is_weighed_by_what_is_under_it_and_not_by_half_a_week
0.00s setup    tests/test_records.py::test_a_plan_with_no_records_says_so_from_the_server
0.00s setup    tests/test_index.py::test_every_computed_predicate_is_filterable
0.00s setup    tests/test_index.py::test_the_plan_is_keyed_by_id
0.00s setup    tests/test_index.py::test_every_record_is_a_key_in_every_edge_map
0.00s call     tests/test_hill.py::test_a_promoted_note_stands_where_the_record_it_became_does
0.00s setup    tests/test_records.py::test_the_landing_box_and_the_server_find_the_same_records
0.00s setup    tests/test_index.py::test_the_predicate_facet_is_the_one_predicate_list
0.00s setup    tests/test_index.py::test_facets_cover_every_filterable_field
0.00s setup    tests/test_index.py::test_a_value_nothing_carries_matches_nothing
0.00s setup    tests/test_index.py::test_blocks_is_the_reverse_of_depends_on
0.00s call     tests/test_index.py::test_facets_are_sorted_distinct_values_as_strings
0.00s call     tests/test_index.py::test_the_blocked_predicate_needs_a_blocker_that_is_neither_done_nor_shelved
0.00s setup    tests/test_records.py::test_a_filtered_out_row_is_display_none_and_not_merely_marked
0.00s call     tests/test_cascade.py::test_the_box_on_a_record_page_is_monospace_and_fits_its_pane
0.00s call     tests/test_index.py::test_the_seed_incomplete_records_are_the_ones_missing_fields
0.00s call     tests/test_index.py::test_search_is_a_case_insensitive_substring_match
0.00s setup    tests/test_index.py::test_the_project_facet_follows_the_parent_closure
0.00s setup    tests/test_records.py::test_the_header_row_is_sticky_and_nothing_on_this_page_outranks_it
0.00s call     tests/test_cascade.py::test_the_open_picker_is_painted_over_the_sticky_header_and_not_under_it
0.00s setup    tests/test_records.py::test_the_page_furniture_stands_outside_the_scroll_box
0.00s setup    tests/test_records.py::test_an_export_of_a_repository_carries_the_times
0.00s call     tests/test_index.py::test_the_seed_blocked_set_is_exactly_the_live_diamond
0.00s call     tests/test_search.py::test_the_empty_menu_option_is_askable_in_the_language
0.00s call     tests/test_index.py::test_fields_are_anded_across
0.00s setup    tests/test_records.py::test_the_nav_says_records_at_the_root_and_table_at_table
0.00s setup    tests/test_records.py::test_a_predicate_in_the_url_filters_rows_and_an_unmatched_one_is_a_sentence
0.00s call     tests/test_index.py::test_predicates_are_ored_within_the_field
0.00s call     tests/test_index.py::test_the_review_waived_predicate_finds_deliberate_waivers_only
0.00s call     tests/test_index.py::test_every_computed_predicate_is_filterable
0.00s call     tests/test_index.py::test_the_seed_review_waiver_is_the_only_one
0.00s call     tests/test_index.py::test_a_predicate_never_touches_a_record_that_has_no_span
0.00s call     tests/test_index.py::test_the_unblocked_predicate_is_the_complement_of_blocked
0.00s setup    tests/test_records.py::test_an_unreadable_query_goes_to_the_error_region_not_to_a_row
0.00s setup    tests/test_records.py::test_every_row_carries_the_predicates_the_server_computes
0.00s call     tests/test_index.py::test_a_field_nobody_filled_in_can_be_asked_for
0.00s call     tests/test_index.py::test_live_work_with_no_checklist_is_findable_and_shaping_work_is_not
0.00s call     tests/test_index.py::test_filters_and_search_narrow_together
0.00s setup    tests/test_records.py::test_an_empty_view_and_an_empty_plan_are_different_sentences
0.00s setup    tests/test_records.py::test_the_who_column_reads_the_field_the_rung_says
0.00s setup    tests/test_records.py::test_the_inbox_routes_render_the_landing_held_to_one_kind
0.00s setup    tests/test_records.py::test_a_search_that_matches_nothing_says_so_in_the_views_own_words
0.00s call     tests/test_index.py::test_work_bet_in_an_earlier_cycle_and_still_running_counts_against_this_one
0.00s call     tests/test_index.py::test_the_overruns_cycle_predicate_reads_the_span
0.00s setup    tests/test_records.py::test_each_view_offers_its_own_create_button
0.00s call     tests/test_index.py::test_a_child_that_is_done_counts_for_all_of_it_even_with_work_left_under_it
0.00s call     tests/test_index.py::test_a_pitch_is_as_far_along_as_its_tasks_weighted_by_their_sizes
0.00s call     tests/test_index.py::test_a_task_under_a_pitch_is_counted_in_the_cycle_its_pitch_was_bet_into
0.00s call     tests/test_index.py::test_a_carried_parent_charges_nothing_because_its_children_already_did
0.00s call     tests/test_index.py::test_a_ready_task_carried_into_this_cycle_is_counted_by_its_dates
0.00s call     tests/test_index.py::test_a_shelved_task_is_in_neither_half_of_its_pitchs_progress
0.00s call     tests/test_index.py::test_a_record_in_progress_with_nothing_linked_is_a_question_not_a_rule
0.00s call     tests/test_hill.py::test_every_stop_knows_which_way_is_up
0.00s call     tests/test_index.py::test_a_list_valued_field_matches_if_any_element_matches
0.00s call     tests/test_index.py::test_a_dangling_dependency_does_not_count_as_a_blocker
0.00s call     tests/test_index.py::test_a_pitch_with_tasks_ignores_its_own_body_checklist
0.00s teardown tests/test_teaching.py::test_the_inbox_ladders_keep_the_slot_for_their_own_sentence
0.00s call     tests/test_index.py::test_a_container_with_nothing_under_it_shows_no_fraction_at_all
0.00s call     tests/test_index.py::test_an_undated_cycle_counts_only_what_was_bet_into_it_by_name
0.00s call     tests/test_index.py::test_a_record_outside_any_project_matches_no_project_filter
0.00s call     tests/test_index.py::test_a_menu_never_offers_an_option_that_can_select_nothing
0.00s call     tests/test_cascade.py::test_the_table_body_scrolls_in_a_box_that_clips_what_is_inside_it
0.00s call     tests/test_index.py::test_the_searchable_text_is_the_fields_and_not_the_document
0.00s call     tests/test_index.py::test_a_checklist_in_the_body_is_counted_once_into_the_index
0.00s call     tests/test_index.py::test_a_parent_that_names_nothing_does_not_take_the_whole_index_down
0.00s call     tests/test_index.py::test_blocked_by_keeps_only_edges_to_records_that_exist
0.00s call     tests/test_search.py::test_the_two_field_lists_are_the_same
0.00s call     tests/test_hill.py::test_no_plan_kind_is_offered_an_issue_s_or_a_note_s_fields
0.00s call     tests/test_index.py::test_work_finished_in_the_earlier_cycle_is_not_carried_into_this_one
0.00s call     tests/test_index.py::test_the_searchable_text_holds_the_names_a_record_is_known_by
0.00s call     tests/test_index.py::test_an_absent_value_is_a_question_and_not_a_fake_name
0.00s call     tests/test_search.py::test_a_malformed_query_says_so_and_matches_nothing
0.00s call     tests/test_search.py::test_the_aliases_and_the_free_text_fields_are_the_same
0.00s call     tests/test_hill.py::test_an_unknown_status_gets_no_ball_and_says_its_word
0.00s call     tests/test_index.py::test_the_build_end_a_predicate_uses_is_the_one_the_timeline_uses
0.00s call     tests/test_cascade.py::test_the_picker_scrolls_inside_itself_rather_than_off_the_page
0.00s teardown tests/test_hill.py::test_dragging_the_ball_lands_on_a_stop
0.00s call     tests/test_cascade.py::test_a_mark_does_not_shrink_out_of_the_line_it_sits_in
0.00s call     tests/test_hill.py::test_a_text_control_can_carry_a_placeholder_and_refuse_the_pen
0.00s call     tests/test_hill.py::test_the_browser_is_handed_the_numbers_the_page_was_drawn_with
0.00s call     tests/test_hill.py::test_every_issue_word_stands_on_the_hill
0.00s teardown tests/test_hill.py::test_the_hill_takes_a_keyboard
0.00s teardown tests/test_hill.py::test_the_ball_is_painted_where_the_geometry_says
0.00s teardown tests/test_cascade.py::test_every_control_on_every_page_is_drawn_the_same[detail]
0.00s call     tests/test_hill.py::test_every_hill_stop_is_on_the_line
0.00s teardown tests/test_facets.py::test_a_facet_reads_as_a_menu_and_not_as_a_box_to_type_in
0.00s teardown tests/test_facets.py::test_the_people_page_honours_both_values_too
0.00s teardown tests/test_index.py::test_empty_is_spelled_the_same_on_both_sides_of_the_wire
0.00s teardown tests/test_cascade.py::test_every_kind_chip_is_the_same_shape[pitch]
0.00s teardown tests/test_cascade.py::test_every_control_on_every_page_is_drawn_the_same[graph]
0.00s teardown tests/test_delete.py::test_the_delete_under_a_record_is_the_delete_of_that_record
0.00s teardown tests/test_cascade.py::test_every_kind_chip_is_the_same_shape[task]
0.00s call     tests/test_index.py::test_the_seed_facets_are_the_menus_the_table_will_show
0.00s teardown tests/test_facets.py::test_the_empty_option_asks_about_the_list_and_not_inside_it
0.00s teardown tests/test_search.py::test_a_half_typed_query_says_what_is_wrong_with_it
0.00s teardown tests/test_facets.py::test_opening_one_field_closes_the_last
0.00s teardown tests/test_search.py::test_the_box_and_the_server_find_the_same_records
0.00s teardown tests/test_hill.py::test_the_ball_follows_the_field_when_something_else_sets_it
0.00s teardown tests/test_facets.py::test_the_closed_control_says_what_is_set
0.00s teardown tests/test_facets.py::test_an_open_menu_is_not_painted_over[timeline]
0.00s teardown tests/test_cascade.py::test_every_control_on_every_page_is_drawn_the_same[create]
0.00s teardown tests/test_facets.py::test_an_open_menu_is_not_painted_over[graph]
0.00s teardown tests/test_cascade.py::test_every_control_on_every_page_is_drawn_the_same[timeline]
0.00s teardown tests/test_facets.py::test_the_server_answers_the_same_two_values
0.00s teardown tests/test_records.py::test_an_unreadable_query_goes_to_the_error_region_not_to_a_row
0.00s teardown tests/test_cascade.py::test_a_bar_and_the_key_that_names_it_are_drawn_the_same_way
0.00s teardown tests/test_facets.py::test_escape_closes_the_menu_and_hands_the_keyboard_back
0.00s teardown tests/test_teaching.py::test_a_word_with_nothing_to_teach_still_gets_its_span
0.00s teardown tests/test_facets.py::test_one_value_is_named_and_unticking_it_puts_the_field_back
0.00s teardown tests/test_hill.py::test_a_cancelled_drag_puts_the_ball_back
0.00s teardown tests/test_facets.py::test_the_way_out_appears_only_when_there_is_one
0.00s teardown tests/test_teaching.py::test_the_sentence_follows_the_ball
0.00s teardown tests/test_cascade.py::test_every_control_on_every_page_is_drawn_the_same[table]
0.00s teardown tests/test_facets.py::test_clearing_puts_every_field_back
0.00s teardown tests/test_facets.py::test_a_link_opens_with_its_boxes_ticked
0.00s teardown tests/test_search.py::test_a_word_only_in_a_shaping_document_is_not_a_match
0.00s teardown tests/test_cascade.py::test_every_kind_chip_is_the_same_shape[project]
0.00s teardown tests/test_delete.py::test_a_refusal_is_shown_where_the_question_was_asked
0.00s teardown tests/test_facets.py::test_an_open_menu_is_not_painted_over[table]
0.00s teardown tests/test_facets.py::test_two_values_of_one_field_mean_either
0.00s teardown tests/test_hill.py::test_pressing_a_stop_moves_the_ball_and_the_form
0.00s teardown tests/test_delete.py::test_the_control_is_only_on_the_record_page
0.00s teardown tests/test_delete.py::test_the_commit_bar_is_not_on_screen_when_there_is_nothing_to_commit
0.00s teardown tests/test_cascade.py::test_a_link_that_is_a_control_is_drawn_as_one_on_every_page
0.00s call     tests/test_index.py::test_a_value_nothing_carries_matches_nothing
0.00s teardown tests/test_delete.py::test_delete_leaves_while_an_edit_is_open
0.00s teardown tests/test_search.py::test_nothing_malformed_is_quietly_accepted
0.00s call     tests/test_index.py::test_the_project_facet_follows_the_parent_closure
0.00s teardown tests/test_teaching.py::test_a_status_nobody_may_set_is_never_taught_a_lesson
0.00s teardown tests/test_cascade.py::test_the_nav_marks_where_you_are_even_on_a_link_you_have_already_used
0.00s teardown tests/test_cascade.py::test_every_commit_bar_sticks_to_the_same_edge_and_one_rule_decides_it
0.00s teardown tests/test_records.py::test_a_search_that_matches_nothing_says_so_in_the_views_own_words
0.00s teardown tests/test_cascade.py::test_the_row_a_pages_own_controls_stand_in_is_a_row_on_every_page
0.00s teardown tests/test_records.py::test_the_landing_box_and_the_server_find_the_same_records
0.00s teardown tests/test_hill.py::test_a_word_the_card_does_not_know_gets_no_ball_either
0.00s teardown tests/test_hill.py::test_the_card_draws_the_hill_and_keeps_the_word
0.00s teardown tests/test_delete.py::test_it_takes_two_presses_and_the_first_one_writes_nothing
0.00s teardown tests/test_search.py::test_a_query_that_reads_leaves_nothing_said
0.00s teardown tests/test_records.py::test_a_state_only_the_script_reaches_is_announced_and_only_once
0.00s teardown tests/test_hill.py::test_cancelling_an_edit_rolls_the_ball_back
0.00s call     tests/test_index.py::test_no_filters_and_no_query_returns_the_whole_plan_sorted_by_id
0.00s teardown tests/test_search.py::test_both_halves_refuse_the_same_queries_with_the_same_sentence
0.00s call     tests/test_teaching.py::test_the_pitch_template_names_both_ways_to_get_the_level_wrong
0.00s teardown tests/test_facets.py::test_no_two_scripts_on_a_page_declare_the_same_name[detail]
0.00s teardown tests/test_search.py::test_the_language_is_evaluated_the_same_in_the_browser
0.00s teardown tests/test_delete.py::test_delete_stands_beside_edit_and_wears_what_edit_wears
0.00s teardown tests/test_facets.py::test_no_two_scripts_on_a_page_declare_the_same_name[people]
0.00s teardown tests/test_search.py::test_every_searchable_field_is_reachable_from_the_box
0.00s teardown tests/test_records.py::test_a_lost_payload_degrades_to_an_unfiltered_list_and_says_so
0.00s call     tests/test_index.py::test_a_pitchs_dependency_is_inherited_by_its_tasks
0.00s call     tests/test_index.py::test_the_seed_index_has_the_shape_of_the_corpus
0.00s teardown tests/test_facets.py::test_no_two_scripts_on_a_page_declare_the_same_name[cycle]
0.00s teardown tests/test_delete.py::test_only_somebody_the_server_would_take_a_write_from_is_offered_the_button
0.00s teardown tests/test_cascade.py::test_a_conflict_report_is_a_report_on_the_table_as_well_as_the_detail_page
0.00s teardown tests/test_facets.py::test_no_two_scripts_on_a_page_declare_the_same_name[graph]
0.00s teardown tests/test_delete.py::test_a_leaf_record_asks_a_plain_question
0.00s teardown tests/test_facets.py::test_no_two_scripts_on_a_page_declare_the_same_name[records]
0.00s teardown tests/test_facets.py::test_no_two_scripts_on_a_page_declare_the_same_name[table]
0.00s teardown tests/test_teaching.py::test_an_empty_lesson_is_hidden_in_the_mode_that_shows_the_rest
0.00s teardown tests/test_records.py::test_an_export_without_git_omits_the_time_column
0.00s teardown tests/test_cascade.py::test_the_picker_is_hidden_by_the_attribute_and_not_by_source_order
0.00s teardown tests/test_cascade.py::test_an_overrunning_bar_still_reads_as_overrunning
0.00s teardown tests/test_index.py::test_work_running_past_its_cycles_build_is_a_filter
0.00s setup    tests/test_teaching.py::test_a_record_that_locks_and_teaches_points_at_both
0.00s teardown tests/test_cascade.py::test_a_drawn_mark_has_a_size_of_its_own[draft-cancel]
0.00s teardown tests/test_facets.py::test_no_two_scripts_on_a_page_declare_the_same_name[timeline]
0.00s teardown tests/test_cascade.py::test_a_drawn_mark_has_a_size_of_its_own[draft-create]
0.00s teardown tests/test_delete.py::test_the_panel_says_what_the_delete_will_take_with_it
0.00s teardown tests/test_records.py::test_a_predicate_in_the_url_filters_rows_and_an_unmatched_one_is_a_sentence
0.00s call     tests/test_records.py::test_the_time_is_relative_when_recent_and_absolute_past_two_weeks
0.00s call     tests/test_index.py::test_a_status_nobody_uses_is_left_out_of_the_menu_and_a_strange_one_is_not
0.00s teardown tests/test_records.py::test_an_export_of_a_repository_carries_the_times
0.00s setup    tests/test_index.py::test_work_running_past_its_cycles_build_is_a_filter
0.00s teardown tests/test_cascade.py::test_the_timeline_window_controls_stand_on_one_line
0.00s teardown tests/test_cascade.py::test_the_draft_rows_controls_stand_on_one_line
0.00s call     tests/test_index.py::test_the_seed_diamond_reverses_into_blocks
0.00s teardown tests/test_delete.py::test_the_question_names_the_record_it_is_about
0.00s teardown tests/test_teaching.py::test_every_sentence_written_reaches_the_page
0.00s teardown tests/test_index.py::test_a_predicate_never_touches_a_record_that_has_no_span
0.00s teardown tests/test_cascade.py::test_a_refusal_lands_somewhere_a_sighted_reader_can_read_it
0.00s teardown tests/test_records.py::test_the_issues_view_box_searches_issues_and_nothing_else
0.00s teardown tests/test_search.py::test_parentheses_change_the_answer
0.00s teardown tests/test_hill.py::test_the_read_only_hill_has_no_stops_on_it
0.00s setup    tests/test_hill.py::test_the_locked_control_carries_its_explanation_for_a_screen_reader
0.00s teardown tests/test_cascade.py::test_no_stylesheet_has_an_unclosed_comment
0.00s setup    tests/test_index.py::test_the_seed_index_carries_the_scheduler_and_validator_output
0.00s teardown tests/test_cascade.py::test_a_refusal_is_coloured_as_one_and_a_receipt_is_not
0.00s teardown tests/test_cascade.py::test_the_full_page_class_does_not_beat_the_editing_class
0.00s teardown tests/test_cascade.py::test_a_refused_cell_says_so_on_a_frozen_column_too[id]
0.00s teardown tests/test_teaching.py::test_every_word_a_planned_record_stands_on_is_decided_about
0.00s teardown tests/test_cascade.py::test_a_problem_on_a_frozen_column_still_gets_its_ground[warn-id]
0.00s teardown tests/test_hill.py::test_the_status_row_is_a_hill_and_the_dropdown_is_gone
0.00s teardown tests/test_cascade.py::test_the_frozen_columns_keep_the_position_their_left_offset_is_meant_for
0.00s teardown tests/test_records.py::test_the_who_column_reads_the_field_the_rung_says
0.00s teardown tests/test_index.py::test_the_seed_index_carries_the_scheduler_and_validator_output
0.00s teardown tests/test_cascade.py::test_the_column_control_is_drawn_as_a_control_and_the_label_is_not
0.00s teardown tests/test_cascade.py::test_a_problem_on_a_frozen_column_still_gets_its_ground[blocker-owner]
0.00s teardown tests/test_cascade.py::test_a_problem_on_a_frozen_column_still_gets_its_ground[warn-title]
0.00s teardown tests/test_teaching.py::test_each_sentence_describes_the_control_it_sits_with
0.00s teardown tests/test_cascade.py::test_a_problem_on_a_frozen_column_still_gets_its_ground[blocker-id]
0.00s teardown tests/test_cascade.py::test_a_problem_on_a_frozen_column_still_gets_its_ground[blocker-title]
0.00s teardown tests/test_teaching.py::test_the_lock_keeps_its_slot_and_both_its_modes
0.00s setup    tests/test_index.py::test_a_pr_reference_is_searchable
0.00s teardown tests/test_index.py::test_a_pr_reference_is_searchable
0.00s teardown tests/test_cascade.py::test_the_handle_between_the_panes_is_a_control_in_one_view_and_nowhere_else
0.00s teardown tests/test_teaching.py::test_the_status_row_carries_the_map_the_script_reads
0.00s teardown tests/test_cascade.py::test_the_frozen_edge_is_drawn_only_while_the_table_is_scrolled
0.00s teardown tests/test_records.py::test_an_empty_view_and_an_empty_plan_are_different_sentences
0.00s teardown tests/test_cascade.py::test_the_handle_between_the_panes_is_one_control_on_the_one_stylesheet
0.00s teardown tests/test_cascade.py::test_the_timeline_still_says_which_of_its_two_controls_is_the_verb
0.00s teardown tests/test_cascade.py::test_the_picker_scrolls_inside_itself_rather_than_off_the_page
0.00s teardown tests/test_cascade.py::test_a_mark_does_not_shrink_out_of_the_line_it_sits_in
0.00s teardown tests/test_cascade.py::test_a_problem_on_a_frozen_column_still_gets_its_ground[warn-owner]
0.00s teardown tests/test_hill.py::test_the_hill_can_say_the_word_without_printing_it
0.00s teardown tests/test_records.py::test_each_view_offers_its_own_create_button
0.00s teardown tests/test_cascade.py::test_a_refused_cell_says_so_on_a_frozen_column_too[owner]
0.00s call     tests/test_teaching.py::test_no_lesson_runs_to_wallpaper
0.00s teardown tests/test_cascade.py::test_the_record_pages_bar_still_beats_the_field_rule_it_once_lost_to
0.00s teardown tests/test_cascade.py::test_the_frozen_headers_are_drawn_over_the_rows_that_pass_under_them
0.00s teardown tests/test_cascade.py::test_the_title_header_keeps_the_rule_along_its_bottom_edge
0.00s teardown tests/test_cascade.py::test_the_suggestion_popup_hangs_off_the_body_where_nothing_clips_it
0.00s teardown tests/test_index.py::test_children_lists_each_parents_children_by_id
0.00s teardown tests/test_records.py::test_the_landing_lists_every_record_newest_edit_first
0.00s teardown tests/test_cascade.py::test_a_frozen_cell_never_asks_for_an_outset_shadow
0.00s teardown tests/test_cascade.py::test_every_rule_that_corrects_a_frozen_column_outweighs_it
0.00s teardown tests/test_cascade.py::test_the_table_body_scrolls_in_a_box_that_clips_what_is_inside_it
0.00s teardown tests/test_cascade.py::test_a_refused_cell_says_so_on_a_frozen_column_too[title]
0.00s teardown tests/test_records.py::test_every_row_carries_the_predicates_the_server_computes
0.00s call     tests/test_hill.py::test_no_two_stops_on_one_hill_share_a_place
0.00s teardown tests/test_records.py::test_the_page_furniture_stands_outside_the_scroll_box
0.00s teardown tests/test_hill.py::test_the_locked_control_carries_its_explanation_for_a_screen_reader
0.00s teardown tests/test_cascade.py::test_the_box_on_a_record_page_is_monospace_and_fits_its_pane
0.00s teardown tests/test_cascade.py::test_the_open_picker_is_painted_over_the_sticky_header_and_not_under_it
0.00s teardown tests/test_cascade.py::test_a_hidden_control_stays_hidden_on_the_one_stylesheet
0.00s teardown tests/test_records.py::test_the_inbox_routes_render_the_landing_held_to_one_kind
0.00s teardown tests/test_index.py::test_a_pitch_with_tasks_ignores_its_own_body_checklist
0.00s teardown tests/test_records.py::test_the_header_row_is_sticky_and_nothing_on_this_page_outranks_it
0.00s teardown tests/test_records.py::test_a_filtered_out_row_is_display_none_and_not_merely_marked
0.00s teardown tests/test_index.py::test_a_status_nobody_uses_is_left_out_of_the_menu_and_a_strange_one_is_not
0.00s setup    tests/test_index.py::test_work_bet_in_an_earlier_cycle_and_still_running_counts_against_this_one
0.00s teardown tests/test_teaching.py::test_a_reader_who_cannot_write_is_not_taught
0.00s setup    tests/test_hill.py::test_every_hill_stop_is_on_the_line
0.00s setup    tests/test_index.py::test_a_dangling_dependency_does_not_count_as_a_blocker
0.00s teardown tests/test_index.py::test_a_record_in_progress_with_nothing_linked_is_a_question_not_a_rule
0.00s teardown tests/test_teaching.py::test_a_record_that_locks_and_teaches_points_at_both
0.00s call     tests/test_hill.py::test_the_status_ladder_is_the_validator_s_and_not_a_hand_copy
0.00s teardown tests/test_hill.py::test_a_text_control_can_carry_a_placeholder_and_refuse_the_pen
0.00s teardown tests/test_search.py::test_two_tags_can_be_asked_for_at_once
0.00s call     tests/test_index.py::test_children_lists_each_parents_children_by_id
0.00s teardown tests/test_index.py::test_a_pitchs_dependency_is_inherited_by_its_tasks
0.00s teardown tests/test_search.py::test_a_pr_is_found_however_it_is_written
0.00s teardown tests/test_search.py::test_not_takes_records_away
0.00s teardown tests/test_index.py::test_the_build_end_a_predicate_uses_is_the_one_the_timeline_uses
0.00s teardown tests/test_index.py::test_the_has_blocker_predicate_is_the_strict_half_of_missing_required_fields
0.00s teardown tests/test_index.py::test_searching_the_seed_corpus_finds_the_task_by_its_title
0.00s teardown tests/test_search.py::test_adjacent_terms_are_anded
0.00s teardown tests/test_index.py::test_the_seed_incomplete_records_are_the_ones_missing_fields
0.00s teardown tests/test_records.py::test_the_nav_says_records_at_the_root_and_table_at_table
0.00s teardown tests/test_search.py::test_a_bare_word_is_a_substring_of_the_searchable_text
0.00s teardown tests/test_search.py::test_an_unknown_field_matches_nothing_rather_than_everything
0.00s teardown tests/test_index.py::test_task_2b6c94_is_unblocked_because_its_only_blocker_is_done
0.00s teardown tests/test_search.py::test_a_malformed_query_says_so_and_matches_nothing
0.00s setup    tests/test_search.py::test_the_two_field_lists_are_the_same
0.00s teardown tests/test_search.py::test_a_field_asks_that_field_and_nothing_else
0.00s call     tests/test_index.py::test_the_predicate_facet_is_the_one_predicate_list
0.00s setup    tests/test_hill.py::test_the_status_ladder_is_the_validator_s_and_not_a_hand_copy
0.00s teardown tests/test_index.py::test_the_seed_blocked_set_is_exactly_the_live_diamond
0.00s setup    tests/test_hill.py::test_every_stop_knows_which_way_is_up
0.00s teardown tests/test_index.py::test_a_list_valued_field_matches_if_any_element_matches
0.00s teardown tests/test_records.py::test_a_plan_with_no_records_says_so_from_the_server
0.00s call     tests/test_index.py::test_facets_cover_every_filterable_field
0.00s teardown tests/test_search.py::test_the_empty_menu_option_is_askable_in_the_language
0.00s call     tests/test_index.py::test_every_record_is_a_key_in_every_edge_map
0.00s teardown tests/test_teaching.py::test_the_pitch_template_names_both_ways_to_get_the_level_wrong
0.00s call     tests/test_index.py::test_the_plan_is_keyed_by_id
0.00s teardown tests/test_index.py::test_the_seed_diamond_reverses_into_blocks
0.00s teardown tests/test_index.py::test_the_seed_facets_are_the_menus_the_table_will_show
0.00s teardown tests/test_index.py::test_the_seed_review_waiver_is_the_only_one
0.00s setup    tests/test_hill.py::test_no_two_stops_on_one_hill_share_a_place
0.00s setup    tests/test_records.py::test_the_time_is_relative_when_recent_and_absolute_past_two_weeks
0.00s teardown tests/test_index.py::test_the_seed_index_has_the_shape_of_the_corpus
0.00s setup    tests/test_index.py::test_the_unblocked_predicate_is_the_complement_of_blocked
0.00s call     tests/test_index.py::test_blocks_is_the_reverse_of_depends_on
0.00s call     tests/test_hill.py::test_every_status_a_record_can_hold_has_a_stop
0.00s teardown tests/test_hill.py::test_a_derived_state_locks_the_control_in_the_dom_not_in_paint
0.00s teardown tests/test_index.py::test_a_for_later_list_is_the_only_record_of_scope_being_cut
0.00s teardown tests/test_hill.py::test_an_issue_whose_pitch_is_done_reads_done_with_a_locked_hill_and_the_hint
0.00s teardown tests/test_index.py::test_every_record_is_a_key_in_every_edge_map
0.00s setup    tests/test_hill.py::test_an_unknown_status_gets_no_ball_and_says_its_word
0.00s teardown tests/test_index.py::test_blocks_is_the_reverse_of_depends_on
0.00s call     tests/test_hill.py::test_halfway_up_is_halfway_up
0.00s teardown tests/test_index.py::test_a_stored_blocks_key_in_frontmatter_is_ignored
0.00s teardown tests/test_index.py::test_filters_and_search_narrow_together
0.00s teardown tests/test_index.py::test_the_project_facet_follows_the_parent_closure
0.00s setup    tests/test_index.py::test_a_for_later_list_is_the_only_record_of_scope_being_cut
0.00s setup    tests/test_index.py::test_a_carried_parent_charges_nothing_because_its_children_already_did
0.00s teardown tests/test_index.py::test_facets_cover_every_filterable_field
0.00s teardown tests/test_index.py::test_the_plan_is_keyed_by_id
0.00s teardown tests/test_index.py::test_a_child_that_is_done_counts_for_all_of_it_even_with_work_left_under_it
0.00s setup    tests/test_teaching.py::test_no_lesson_runs_to_wallpaper
0.00s teardown tests/test_index.py::test_the_predicate_facet_is_the_one_predicate_list
0.00s teardown tests/test_index.py::test_a_parent_chain_that_ends_outside_the_plan_still_finds_the_project_it_names
0.00s call     tests/test_hill.py::test_what_a_person_owns_on_an_issue_or_a_note_and_what_the_server_stamps
0.00s call     tests/test_index.py::test_empty_is_spelled_the_same_on_both_sides_of_the_wire
0.00s teardown tests/test_index.py::test_problems_come_from_validate_all
0.00s teardown tests/test_index.py::test_facets_are_sorted_distinct_values_as_strings
0.00s teardown tests/test_index.py::test_blocked_by_keeps_only_edges_to_records_that_exist
0.00s teardown tests/test_hill.py::test_every_stop_knows_which_way_is_up
0.00s teardown tests/test_hill.py::test_no_plan_kind_is_offered_an_issue_s_or_a_note_s_fields
0.00s call     tests/test_hill.py::test_the_lock_hint_keeps_the_two_pages_own_words
0.00s teardown tests/test_index.py::test_spans_and_explanations_come_from_the_scheduler
0.00s teardown tests/test_index.py::test_a_dangling_dependency_does_not_count_as_a_blocker
0.00s teardown tests/test_index.py::test_the_searchable_text_holds_the_names_a_record_is_known_by
0.00s setup    tests/test_index.py::test_a_field_nobody_filled_in_can_be_asked_for
0.00s setup    tests/test_hill.py::test_a_text_control_can_carry_a_placeholder_and_refuse_the_pen
0.00s setup    tests/test_index.py::test_the_review_waived_predicate_finds_deliberate_waivers_only
0.00s teardown tests/test_index.py::test_a_parent_that_names_nothing_does_not_take_the_whole_index_down
0.00s teardown tests/test_records.py::test_the_time_is_relative_when_recent_and_absolute_past_two_weeks
0.00s teardown tests/test_index.py::test_an_absent_value_is_a_question_and_not_a_fake_name
0.00s teardown tests/test_index.py::test_the_searchable_text_is_the_fields_and_not_the_document
0.00s teardown tests/test_index.py::test_the_searchable_text_holds_an_inbox_records_author
0.00s teardown tests/test_index.py::test_a_record_outside_any_project_matches_no_project_filter
0.00s teardown tests/test_hill.py::test_what_a_person_owns_on_an_issue_or_a_note_and_what_the_server_stamps
0.00s call     tests/test_hill.py::test_nothing_is_drawn_below_the_ground
0.00s setup    tests/test_search.py::test_the_aliases_and_the_free_text_fields_are_the_same
0.00s setup    tests/test_hill.py::test_the_hill_can_say_the_word_without_printing_it
0.00s setup    tests/test_index.py::test_a_record_outside_any_project_matches_no_project_filter
0.00s teardown tests/test_index.py::test_a_container_is_weighed_by_what_is_under_it_and_not_by_half_a_week
0.00s teardown tests/test_index.py::test_a_value_nothing_carries_matches_nothing
0.00s setup    tests/test_hill.py::test_an_issue_whose_pitch_is_done_reads_done_with_a_locked_hill_and_the_hint
0.00s setup    tests/test_index.py::test_a_stored_blocks_key_in_frontmatter_is_ignored
0.00s teardown tests/test_index.py::test_every_computed_predicate_is_filterable
0.00s teardown tests/test_index.py::test_no_filters_and_no_query_returns_the_whole_plan_sorted_by_id
0.00s teardown tests/test_hill.py::test_every_issue_word_stands_on_the_hill
0.00s teardown tests/test_index.py::test_the_review_waived_predicate_finds_deliberate_waivers_only
0.00s call     tests/test_hill.py::test_the_two_that_came_off_the_path_stand_under_the_summit
0.00s setup    tests/test_index.py::test_a_container_is_weighed_by_what_is_under_it_and_not_by_half_a_week
0.00s setup    tests/test_index.py::test_a_task_under_a_pitch_is_counted_in_the_cycle_its_pitch_was_bet_into
0.00s teardown tests/test_index.py::test_a_container_is_as_far_along_as_the_work_beneath_it
0.00s setup    tests/test_index.py::test_the_blocked_predicate_needs_a_blocker_that_is_neither_done_nor_shelved
0.00s teardown tests/test_index.py::test_the_missing_required_fields_predicate_reads_the_problems
0.00s teardown tests/test_index.py::test_values_within_one_field_are_ored
0.00s teardown tests/test_index.py::test_fields_are_anded_across
0.00s setup    tests/test_hill.py::test_what_a_person_owns_on_an_issue_or_a_note_and_what_the_server_stamps
0.00s teardown tests/test_index.py::test_a_field_nobody_filled_in_can_be_asked_for
0.00s setup    tests/test_index.py::test_a_menu_never_offers_an_option_that_can_select_nothing
0.00s teardown tests/test_index.py::test_predicates_are_ored_within_the_field
0.00s setup    tests/test_index.py::test_blocked_by_keeps_only_edges_to_records_that_exist
0.00s teardown tests/test_search.py::test_the_two_field_lists_are_the_same
0.00s teardown tests/test_index.py::test_work_bet_in_an_earlier_cycle_and_still_running_counts_against_this_one
0.00s setup    tests/test_index.py::test_a_parent_that_names_nothing_does_not_take_the_whole_index_down
0.00s setup    tests/test_index.py::test_predicates_are_ored_within_the_field
0.00s setup    tests/test_index.py::test_search_is_a_case_insensitive_substring_match
0.00s teardown tests/test_index.py::test_the_overruns_cycle_predicate_reads_the_span
0.00s setup    tests/test_index.py::test_a_child_that_is_done_counts_for_all_of_it_even_with_work_left_under_it
0.00s setup    tests/test_index.py::test_fields_are_anded_across
0.00s setup    tests/test_index.py::test_work_finished_in_the_earlier_cycle_is_not_carried_into_this_one
0.00s teardown tests/test_index.py::test_search_is_a_case_insensitive_substring_match
0.00s setup    tests/test_index.py::test_spans_and_explanations_come_from_the_scheduler
0.00s setup    tests/test_index.py::test_a_container_is_as_far_along_as_the_work_beneath_it
0.00s setup    tests/test_index.py::test_values_within_one_field_are_ored
0.00s teardown tests/test_index.py::test_the_unblocked_predicate_is_the_complement_of_blocked
0.00s setup    tests/test_index.py::test_live_work_with_no_checklist_is_findable_and_shaping_work_is_not
0.00s teardown tests/test_index.py::test_a_checklist_in_the_body_is_counted_once_into_the_index
0.00s setup    tests/test_index.py::test_facets_are_sorted_distinct_values_as_strings
0.00s teardown tests/test_index.py::test_a_pitch_is_as_far_along_as_its_tasks_weighted_by_their_sizes
0.00s setup    tests/test_index.py::test_an_absent_value_is_a_question_and_not_a_fake_name
0.00s teardown tests/test_hill.py::test_a_promoted_note_stands_where_the_record_it_became_does
0.00s setup    tests/test_index.py::test_empty_is_spelled_the_same_on_both_sides_of_the_wire
0.00s teardown tests/test_index.py::test_the_blocked_predicate_needs_a_blocker_that_is_neither_done_nor_shelved
0.00s setup    tests/test_index.py::test_a_container_with_nothing_under_it_shows_no_fraction_at_all
0.00s setup    tests/test_index.py::test_an_undated_cycle_counts_only_what_was_bet_into_it_by_name
0.00s setup    tests/test_index.py::test_problems_come_from_validate_all
0.00s setup    tests/test_index.py::test_filters_and_search_narrow_together
0.00s teardown tests/test_index.py::test_a_ready_task_carried_into_this_cycle_is_counted_by_its_dates
0.00s setup    tests/test_hill.py::test_every_issue_word_stands_on_the_hill
0.00s teardown tests/test_hill.py::test_a_record_cannot_stand_where_only_a_note_can
0.00s setup    tests/test_index.py::test_the_searchable_text_holds_the_names_a_record_is_known_by
0.00s setup    tests/test_index.py::test_a_list_valued_field_matches_if_any_element_matches
0.00s setup    tests/test_hill.py::test_halfway_up_is_halfway_up
0.00s teardown tests/test_index.py::test_a_task_under_a_pitch_is_counted_in_the_cycle_its_pitch_was_bet_into
0.00s teardown tests/test_index.py::test_a_carried_parent_charges_nothing_because_its_children_already_did
0.00s setup    tests/test_index.py::test_a_parent_chain_that_ends_outside_the_plan_still_finds_the_project_it_names
0.00s teardown tests/test_index.py::test_live_work_with_no_checklist_is_findable_and_shaping_work_is_not
0.00s setup    tests/test_index.py::test_the_searchable_text_holds_an_inbox_records_author
0.00s teardown tests/test_index.py::test_a_container_with_nothing_under_it_shows_no_fraction_at_all
0.00s teardown tests/test_index.py::test_a_menu_never_offers_an_option_that_can_select_nothing
0.00s setup    tests/test_index.py::test_a_checklist_in_the_body_is_counted_once_into_the_index
0.00s setup    tests/test_index.py::test_the_searchable_text_is_the_fields_and_not_the_document
0.00s teardown tests/test_index.py::test_an_undated_cycle_counts_only_what_was_bet_into_it_by_name
0.00s setup    tests/test_hill.py::test_the_browser_is_handed_the_numbers_the_page_was_drawn_with
0.00s teardown tests/test_index.py::test_a_shelved_task_is_in_neither_half_of_its_pitchs_progress
0.00s teardown tests/test_hill.py::test_every_hill_stop_is_on_the_line
0.00s setup    tests/test_index.py::test_a_ready_task_carried_into_this_cycle_is_counted_by_its_dates
0.00s teardown tests/test_search.py::test_the_aliases_and_the_free_text_fields_are_the_same
0.00s setup    tests/test_hill.py::test_the_lock_hint_keeps_the_two_pages_own_words
0.00s teardown tests/test_index.py::test_work_finished_in_the_earlier_cycle_is_not_carried_into_this_one
0.00s setup    tests/test_index.py::test_a_pitch_is_as_far_along_as_its_tasks_weighted_by_their_sizes
0.00s setup    tests/test_index.py::test_a_shelved_task_is_in_neither_half_of_its_pitchs_progress
0.00s setup    tests/test_index.py::test_the_overruns_cycle_predicate_reads_the_span
0.00s setup    tests/test_hill.py::test_a_promoted_note_stands_where_the_record_it_became_does
0.00s setup    tests/test_index.py::test_a_pitch_with_tasks_ignores_its_own_body_checklist
0.00s setup    tests/test_index.py::test_the_missing_required_fields_predicate_reads_the_problems
0.00s setup    tests/test_hill.py::test_no_plan_kind_is_offered_an_issue_s_or_a_note_s_fields
0.00s setup    tests/test_hill.py::test_a_derived_state_locks_the_control_in_the_dom_not_in_paint
0.00s teardown tests/test_hill.py::test_no_two_stops_on_one_hill_share_a_place
0.00s teardown tests/test_hill.py::test_the_status_ladder_is_the_validator_s_and_not_a_hand_copy
0.00s teardown tests/test_teaching.py::test_no_lesson_runs_to_wallpaper
0.00s teardown tests/test_hill.py::test_an_unknown_status_gets_no_ball_and_says_its_word
0.00s teardown tests/test_hill.py::test_the_browser_is_handed_the_numbers_the_page_was_drawn_with
0.00s setup    tests/test_hill.py::test_the_two_that_came_off_the_path_stand_under_the_summit
0.00s setup    tests/test_hill.py::test_every_status_a_record_can_hold_has_a_stop
0.00s setup    tests/test_hill.py::test_a_record_cannot_stand_where_only_a_note_can
0.00s teardown tests/test_hill.py::test_halfway_up_is_halfway_up
0.00s setup    tests/test_hill.py::test_nothing_is_drawn_below_the_ground
0.00s teardown tests/test_hill.py::test_the_lock_hint_keeps_the_two_pages_own_words
0.00s teardown tests/test_hill.py::test_every_status_a_record_can_hold_has_a_stop
0.00s teardown tests/test_hill.py::test_the_two_that_came_off_the_path_stand_under_the_summit
0.00s teardown tests/test_hill.py::test_nothing_is_drawn_below_the_ground
