|
============================= test session starts ============================== |
|
platform linux -- Python 3.12.3, pytest-9.0.2, pluggy-1.6.0 -- /usr/bin/python3 |
|
cachedir: .pytest_cache |
|
rootdir: /home/jleechan/projects/worktree_level3/mvp_site |
|
configfile: pytest.ini |
|
plugins: xdist-3.8.0, anyio-4.12.1, testmon-2.2.0, django-4.7.0, mock-3.15.1, langsmith-0.7.6, timeout-2.4.0, asyncio-1.3.0, cov-7.0.0 |
|
asyncio: mode=Mode.STRICT, debug=False, asyncio_default_fixture_loop_scope=None, asyncio_default_test_loop_scope=function |
|
collecting ... collected 48 items |
|
|
|
mvp_site/tests/test_level_up_stale_flags.py::TestLevelUpStaleFlags::test_level_up_in_progress_cleared_when_new_level_up_available PASSED [ 2%] |
|
mvp_site/tests/test_level_up_stale_flags.py::TestLevelUpStaleFlags::test_rewards_pending_cleared_on_level_up_exit PASSED [ 4%] |
|
mvp_site/tests/test_level_up_stale_flags.py::TestLevelUpStaleFlags::test_character_creation_flags_cleared_on_level_up_exit PASSED [ 6%] |
|
mvp_site/tests/test_level_up_stale_flags.py::TestLevelUpStaleFlags::test_routing_after_level_up_exit_with_cleared_flags PASSED [ 8%] |
|
mvp_site/tests/test_level_up_stale_flags.py::TestRewardBoxLevelUpInjection::test_inject_levelup_choices_when_rewards_box_available_but_rewards_pending_null PASSED [ 10%] |
|
mvp_site/tests/test_level_up_stale_flags.py::TestRewardBoxLevelUpInjection::test_inject_levelup_choices_with_multilevel_target_from_xp PASSED [ 12%] |
|
mvp_site/tests/test_level_up_stale_flags.py::TestRewardBoxLevelUpInjection::test_inject_levelup_choices_requires_crossed_rewards_box_threshold PASSED [ 14%] |
|
mvp_site/tests/test_level_up_stale_flags.py::TestRewardBoxLevelUpInjection::test_inject_levelup_choices_accepts_post_threshold_rewards_box_fallback PASSED [ 16%] |
|
mvp_site/tests/test_level_up_stale_flags.py::TestRewardBoxLevelUpInjection::test_inject_levelup_choices_ignored_when_rewards_box_stale PASSED [ 18%] |
|
mvp_site/tests/test_level_up_stale_flags.py::TestRewardBoxLevelUpInjection::test_inject_levelup_choices_rewards_box_false_no_injection PASSED [ 20%] |
|
mvp_site/tests/test_level_up_stale_flags.py::TestRewardBoxLevelUpInjection::test_inject_levelup_choices_rewards_box_none_no_injection PASSED [ 22%] |
|
mvp_site/tests/test_level_up_stale_flags.py::TestRewardBoxLevelUpInjection::test_inject_levelup_choices_both_rewards_pending_and_rewards_box_set PASSED [ 25%] |
|
mvp_site/tests/test_level_up_stale_flags.py::TestRewardBoxLevelUpInjection::test_inject_levelup_choices_rewards_box_level_up_with_no_planning_block PASSED [ 27%] |
|
mvp_site/tests/test_level_up_stale_flags.py::TestLevelUpChoiceOrdering::test_level_up_now_is_first_when_injected_with_existing_llm_choices PASSED [ 29%] |
|
mvp_site/tests/test_level_up_stale_flags.py::TestLevelUpChoiceOrdering::test_level_up_now_is_first_when_llm_provided_it_last PASSED [ 31%] |
|
mvp_site/tests/test_level_up_stale_flags.py::TestLevelUpChoiceOrdering::test_level_up_now_is_first_when_planning_block_is_none PASSED [ 33%] |
|
mvp_site/tests/test_level_up_stale_flags.py::TestLevelUpChoiceOrdering::test_level_up_now_already_first_no_reorder PASSED [ 35%] |
|
mvp_site/tests/test_level_up_stale_flags.py::TestRewardsPendingUntilLevelUp::test_check_level_up_resets_stale_processed_while_level_up_outstanding PASSED [ 37%] |
|
mvp_site/tests/test_level_up_stale_flags.py::TestRewardsPendingUntilLevelUp::test_check_level_up_does_not_reset_processed_when_level_reached_same_turn PASSED [ 39%] |
|
mvp_site/tests/test_level_up_stale_flags.py::TestRewardsPendingUntilLevelUp::test_has_pending_rewards_true_when_level_up_processed_but_not_leveled PASSED [ 41%] |
|
mvp_site/tests/test_level_up_stale_flags.py::TestRewardsPendingUntilLevelUp::test_has_pending_rewards_false_when_player_reached_pending_new_level PASSED [ 43%] |
|
mvp_site/tests/test_level_up_stale_flags.py::TestRewardsBoxPlanningBlockAtomicity::test_atomicity_inject_when_rewards_box_level_up_but_no_planning PASSED [ 45%] |
|
mvp_site/tests/test_level_up_stale_flags.py::TestRewardsBoxPlanningBlockAtomicity::test_atomicity_suppress_when_rewards_box_level_up_no_planning_no_inject PASSED [ 47%] |
|
mvp_site/tests/test_level_up_stale_flags.py::TestRewardsBoxPlanningBlockAtomicity::test_atomicity_passes_when_both_present PASSED [ 50%] |
|
mvp_site/tests/test_level_up_stale_flags.py::TestRewardsBoxPlanningBlockAtomicity::test_canonical_pair_synthesizes_rewards_box_when_only_planning_signals_level_up PASSED [ 52%] |
|
mvp_site/tests/test_level_up_stale_flags.py::TestRewardsBoxPlanningBlockAtomicity::test_canonical_pair_keeps_rewards_box_during_level_up_in_progress PASSED [ 54%] |
|
mvp_site/tests/test_level_up_stale_flags.py::TestRewardsBoxPlanningBlockAtomicity::test_canonical_pair_falls_back_to_planning_signal_when_modal_flags_are_missing PASSED [ 56%] |
|
mvp_site/tests/test_level_up_stale_flags.py::TestRewardsBoxPlanningBlockAtomicity::test_canonical_pair_does_not_resurrect_stale_modal_from_planning_alone PASSED [ 58%] |
|
mvp_site/tests/test_level_up_stale_flags.py::TestRewardsBoxPlanningBlockAtomicity::test_canonical_pair_suppresses_orphaned_level_up_planning_without_canonical_signal PASSED [ 60%] |
|
mvp_site/tests/test_level_up_stale_flags.py::TestRewardsBoxPlanningBlockAtomicity::test_canonical_pair_keeps_rewards_box_for_advanced_level_up_modal_despite_false_flags PASSED [ 62%] |
|
mvp_site/tests/test_level_up_stale_flags.py::TestRewardsBoxPlanningBlockAtomicity::test_canonical_pair_keeps_rewards_box_for_finishable_modal_despite_false_flags PASSED [ 64%] |
|
mvp_site/tests/test_level_up_stale_flags.py::TestRewardsBoxPlanningBlockAtomicity::test_canonical_pair_preserves_finish_choice_for_active_level_up_modal PASSED [ 66%] |
|
mvp_site/tests/test_level_up_stale_flags.py::TestRewardsBoxPlanningBlockAtomicity::test_atomicity_passes_when_neither_present PASSED [ 68%] |
|
mvp_site/tests/test_level_up_stale_flags.py::TestRewardsBoxPlanningBlockAtomicity::test_atomicity_dict_format_choices_support PASSED [ 70%] |
|
mvp_site/tests/test_level_up_stale_flags.py::TestRewardsBoxPlanningBlockAtomicity::test_atomicity_inject_failure_fallback_suppression PASSED [ 72%] |
|
mvp_site/tests/test_level_up_stale_flags.py::TestRewardsBoxPlanningBlockAtomicity::test_build_level_up_rewards_box_uses_empty_loot_list_when_no_items PASSED [ 75%] |
|
mvp_site/tests/test_level_up_stale_flags.py::TestRewardsBoxPlanningBlockAtomicity::test_get_campaign_state_unified_returns_jsonable_dict_shapes PASSED [ 77%] |
|
mvp_site/tests/test_level_up_stale_flags.py::TestRewardsBoxPlanningBlockAtomicity::test_get_campaign_state_unified_projects_level_up_ui_from_game_state PASSED [ 79%] |
|
mvp_site/tests/test_level_up_stale_flags.py::TestRewardsBoxPlanningBlockAtomicity::test_get_campaign_state_unified_ignores_story_stale_level_up_ui PASSED [ 81%] |
|
mvp_site/tests/test_level_up_stale_flags.py::TestRewardsBoxPlanningBlockAtomicity::test_get_campaign_state_unified_never_returns_level_up_planning_without_rewards_box PASSED [ 83%] |
|
mvp_site/tests/test_level_up_stale_flags.py::TestRewardsBoxPlanningBlockAtomicity::test_get_campaign_state_unified_preserves_latest_non_level_up_planning_block PASSED [ 85%] |
|
mvp_site/tests/test_level_up_stale_flags.py::TestRewardsBoxPlanningBlockAtomicity::test_get_campaign_state_unified_reads_flattened_top_level_rewards_box PASSED [ 87%] |
|
mvp_site/tests/test_level_up_stale_flags.py::TestRewardsBoxPlanningBlockAtomicity::test_resolve_canonical_level_up_ui_pair_suppresses_stale_rewards_box_after_level_applied PASSED [ 89%] |
|
mvp_site/tests/test_level_up_stale_flags.py::TestRewardsBoxPlanningBlockAtomicity::test_append_canonical_level_up_story_projection_appends_synthetic_pair PASSED [ 91%] |
|
mvp_site/tests/test_level_up_stale_flags.py::TestRewardsBoxPlanningBlockAtomicity::test_append_canonical_level_up_story_projection_noop_on_xp_gain_without_level_up PASSED [ 93%] |
|
mvp_site/tests/test_level_up_stale_flags.py::TestRewardsBoxPlanningBlockAtomicity::test_resolve_canonical_level_up_ui_pair_keeps_pending_when_in_progress_false PASSED [ 95%] |
|
mvp_site/tests/test_level_up_stale_flags.py::TestRewardsBoxPlanningBlockAtomicity::test_maybe_trigger_level_up_modal_sets_flags_from_false PASSED [ 97%] |
|
mvp_site/tests/test_level_up_stale_flags.py::TestRewardsBoxPlanningBlockAtomicity::test_maybe_trigger_level_up_modal_sets_flags_when_absent PASSED [100%] |
|
|
|
=============================== warnings summary =============================== |
|
<frozen importlib._bootstrap>:488 |
|
<frozen importlib._bootstrap>:488: DeprecationWarning: Type google._upb._message.MessageMapContainer uses PyType_Spec with a metaclass that has custom tp_new. This is deprecated and will no longer be allowed in Python 3.14. |
|
|
|
<frozen importlib._bootstrap>:488 |
|
<frozen importlib._bootstrap>:488: DeprecationWarning: Type google._upb._message.ScalarMapContainer uses PyType_Spec with a metaclass that has custom tp_new. This is deprecated and will no longer be allowed in Python 3.14. |
|
|
|
-- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html |
|
======================== 48 passed, 2 warnings in 1.42s ======================== |