test(push): TDD coverage for all push gaps — force flag, mpack e2e, CLI flags, build
- Add test_push_force_flag.py (F1-F3): verifies 'force' key sent in unpack body - Add test_push_mpack_build.py (B1-B5): unit tests for build_mpack_from_walk - Add test_push_cli_flags.py (DRY1-3, DEL1-4, LEASE1-2, UP1): CLI flag coverage - Add test_push_mpack_e2e.py (E1-E2, E6-E7, V1-V3-port, VII1-port): e2e mpack path - Delete 6 stream-path test files (dead code, stream path removed in prior commit) - Excise stale stream-path tests from test_push_have_filter.py and test_push_object_integrity.py - Fix push.py: add 'force': force to unpack body in _run_mpack_path - Fix test_push_mpack_e2e.py: use shared event log for true call-order assertions
sha256:81b67d7cd1d4661770b8cef0287e7a3290e098fc3a8239480da22d4277ec8000
sha
+162
~4
−148
symbols
sha256:d2fac538a1b9dad298a04b90648a7179bd254aaf072c01ef6e4911f7dec10c3e
snapshot
+162
symbols added
~4
symbols modified
−148
symbols removed
0
dead code introduced
Semantic Changes
314 symbols
+
test_del2_404_treated_as_already_absent
method
method test_del2_404_treated_as_already_absent L235–252
+
test_lease1_rejected_when_remote_advanced
method
method test_lease1_rejected_when_remote_advanced L293–323
+
test_lease2_proceeds_when_cache_matches_remote
method
method test_lease2_proceeds_when_cache_matches_remote L325–357
+
test_up1_set_upstream_after_successful_push
method
method test_up1_set_upstream_after_successful_push L365–387
+
test_f1_force_true_sent_in_unpack_body
function
function test_f1_force_true_sent_in_unpack_body L189–215
+
test_f2_force_false_sent_in_unpack_body
function
function test_f2_force_false_sent_in_unpack_body L222–243
+
test_f3_force_key_present_in_all_pushes
function
function test_f3_force_key_present_in_all_pushes L250–268
+
test_b1_empty_walk_has_required_keys
function
function test_b1_empty_walk_has_required_keys L93–107
+
test_b2_single_commit_object_present
function
function test_b2_single_commit_object_present L114–150
+
test_b3_have_anchor_excludes_ancestor_commits
function
function test_b3_have_anchor_excludes_ancestor_commits L157–172
+
test_b4_mpack_serialises_to_valid_msgpack
function
function test_b4_mpack_serialises_to_valid_msgpack L179–193
+
test_b5_mpack_key_matches_push_formula
function
function test_b5_mpack_key_matches_push_formula L200–219
+
compute_snapshot_id
import
import compute_snapshot_id L39–39 ← moved from tests/test_push_object_loading.py
+
write_snapshot
import
import write_snapshot L40–40 ← moved from tests/test_push_no_streaming_delta.py
+
test_e1_three_step_sequence_in_order
function
function test_e1_three_step_sequence_in_order L190–220
+
test_e2_presign_key_matches_put_bytes
function
function test_e2_presign_key_matches_put_bytes L227–249
+
test_e6_non_merge_branch_have_is_single_head
function
function test_e6_non_merge_branch_have_is_single_head L381–416
+
test_e7_merge_commit_branch_have_includes_all_remote_heads
function
function test_e7_merge_commit_branch_have_includes_all_remote_heads L423–472
+
test_v1_second_push_commits_count_is_one
function
function test_v1_second_push_commits_count_is_one L256–275
+
test_v2_first_push_sends_all_commits
function
function test_v2_first_push_sends_all_commits L282–299
+
test_vii1_push_twice_second_sends_one_commit
function
function test_vii1_push_twice_second_sends_one_commit L331–374
−
test_b1_push_after_branch_merge_succeeds_without_force
method
method test_b1_push_after_branch_merge_succeeds_without_force L308–360
−
test_b2_push_requires_force_when_dev_genuinely_diverged
method
method test_b2_push_requires_force_when_dev_genuinely_diverged L362–405
−
test_c1_have_objects_excluded_even_for_non_ancestor
method
method test_c1_have_objects_excluded_even_for_non_ancestor L417–458
−
test_a1_force_push_sends_only_new_object
method
method test_a1_force_push_sends_only_new_object L172–221
−
test_a2_force_push_no_other_branches_sends_all
method
method test_a2_force_push_no_other_branches_sends_all L223–251
−
test_a3_diverged_dev_head_excluded_other_branches_used
method
method test_a3_diverged_dev_head_excluded_other_branches_used L253–295
−
test_d1_streaming_path_produces_no_delta_payloads
function
function test_d1_streaming_path_produces_no_delta_payloads L122–159
−
test_d2_successive_versions_sent_as_full_objects
function
function test_d2_successive_versions_sent_as_full_objects L166–198
−
test_d3_presign_path_may_use_delta_when_base_is_confirmed
function
function test_d3_presign_path_may_use_delta_when_base_is_confirmed L205–238
−
test_d4_structural_streaming_branch_no_delta
function
function test_d4_structural_streaming_branch_no_delta L245–262
−
compute_snapshot_id
import
import compute_snapshot_id L27–27 → moved to tests/test_push_mpack_e2e.py
−
test_walk_object_count_matches_push_objects_count
function
function test_walk_object_count_matches_push_objects_count L116–139
−
test_c3_semaphore_caps_concurrency
function
async_function test_c3_semaphore_caps_concurrency L110–138
−
test_c5_http_error_raises_transport_error
function
async_function test_c5_http_error_raises_transport_error L172–193
−
test_p8a_below_threshold_uses_stream
function
function test_p8a_below_threshold_uses_stream L67–69
−
test_p8b_object_threshold_triggers_presign
function
function test_p8b_object_threshold_triggers_presign L76–78
−
test_p8c_byte_threshold_triggers_presign
function
function test_p8c_byte_threshold_triggers_presign L85–89
−
test_p8d2_loopback_below_threshold_streams
function
function test_p8d2_loopback_below_threshold_streams L111–113
−
test_p8d3_push_py_has_no_loopback_guard
function
function test_p8d3_push_py_has_no_loopback_guard L120–138
−
test_p8d_loopback_presigns_above_threshold
function
function test_p8d_loopback_presigns_above_threshold L96–104
−
test_p8f_stream_these_objects_not_dropped
function
function test_p8f_stream_these_objects_not_dropped L209–232
−
test_p8g_delta_objects_never_presigned
function
function test_p8g_delta_objects_never_presigned L239–268
−
test_p8g_delta_threshold_uses_only_presign_candidates
function
function test_p8g_delta_threshold_uses_only_presign_candidates L271–293
−
test_c1_push_client_does_not_unpackb_full_content
function
function test_c1_push_client_does_not_unpackb_full_content L44–68
−
test_c2_push_client_uses_unpacker_for_response
function
function test_c2_push_client_uses_unpacker_for_response L75–93
−
test_c3_push_client_parses_progress_then_result_frame
function
function test_c3_push_client_parses_progress_then_result_frame L100–146
−
test_c4_push_client_uses_streaming_http_not_buffered
function
function test_c4_push_client_uses_streaming_http_not_buffered L153–195
−
test_VII1_push_then_push_new_commit_sends_one
method
method test_VII1_push_then_push_new_commit_sends_one L532–564
−
test_V1_second_push_commit_count_is_one
method
method test_V1_second_push_commit_count_is_one L406–427
−
test_VIII1_200_commit_chain_second_push_delta_is_one
method
method test_VIII1_200_commit_chain_second_push_delta_is_one L585–624
−
test_i2_external_ref_in_db_but_missing_from_storage_is_rejected
function
function test_i2_external_ref_in_db_but_missing_from_storage_is_rejected L109–140
0 comments
To add a comment, use the Muse CLI:
muse hub commit comment sha256:81b67d7cd1d4661770b8cef0287e7a3290e098fc3a8239480da22d4277ec8000 --body "your comment"
No comments yet. Be the first to start the discussion.