Run Black formatter across 83 files and fix 1514 ruff violations: - E722: bare except → typed exceptions (17 fixes) - E711/E712/E721: comparison style fixes with noqa for SQLAlchemy (44 fixes) - F841: unused variable assignments (70 fixes) - F541/F401: f-string and import cleanup (1383 auto-fixes) Remaining 925 errors are all F403/F405 (star imports) — structural, requires converting to explicit imports in a separate effort. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
368 lines
11 KiB
Python
368 lines
11 KiB
Python
from sqlmodel import Session
|
|
|
|
from command_logic.logic_gameplay import (
|
|
gb_result_10,
|
|
gb_result_13,
|
|
gb_result_2,
|
|
gb_result_3,
|
|
gb_result_4,
|
|
gb_result_5,
|
|
gb_result_6,
|
|
gb_result_7,
|
|
gb_result_8,
|
|
gb_result_9,
|
|
singles,
|
|
doubles,
|
|
triples,
|
|
gb_result_1,
|
|
complete_play,
|
|
)
|
|
from in_game.gameplay_models import Play
|
|
from tests.factory import Game
|
|
|
|
|
|
def test_groundball_1(session: Session):
|
|
session.get(Game, 2)
|
|
play_1 = session.get(Play, 1)
|
|
play_1.hit, play_1.batter_final = 1, 2
|
|
play_2 = complete_play(session, play_1)
|
|
|
|
play_2 = gb_result_1(session, play_2)
|
|
ending = complete_play(session, play_2)
|
|
|
|
assert ending.on_second == play_2.on_second
|
|
assert play_2.batter_final is None
|
|
|
|
|
|
async def test_groundball_2_1(session: Session):
|
|
play_1 = session.get(Play, 2)
|
|
play_1 = await singles(session, None, play_1, "*")
|
|
play_2 = complete_play(session, play_1)
|
|
|
|
play_2 = gb_result_2(session, play_2)
|
|
ending = complete_play(session, play_2)
|
|
|
|
assert ending.starting_outs == 0
|
|
assert ending.on_base_code == 0
|
|
|
|
|
|
async def test_groundball_2_2(session: Session):
|
|
play_1 = session.get(Play, 2)
|
|
play_1 = await doubles(session, None, play_1, "**")
|
|
play_1.starting_outs = 0
|
|
play_2 = complete_play(session, play_1)
|
|
|
|
play_2 = gb_result_2(session, play_2)
|
|
ending = complete_play(session, play_2)
|
|
|
|
assert ending.starting_outs == 2
|
|
assert ending.on_third == play_2.on_second
|
|
|
|
|
|
async def test_groundball_2_3(session: Session):
|
|
play_1 = session.get(Play, 2)
|
|
play_1 = await triples(session, None, play_1)
|
|
play_1.starting_outs = 0
|
|
play_2 = complete_play(session, play_1)
|
|
|
|
play_2 = gb_result_2(session, play_2)
|
|
ending = complete_play(session, play_2)
|
|
|
|
assert ending.starting_outs == 2
|
|
assert ending.on_base_code == 0
|
|
assert ending.away_score == 1
|
|
|
|
|
|
async def test_groundball_3_1(session: Session):
|
|
play_1 = session.get(Play, 2)
|
|
play_1 = await singles(session, None, play_1, "*")
|
|
play_2 = complete_play(session, play_1)
|
|
|
|
play_2 = gb_result_3(session, play_2)
|
|
ending = complete_play(session, play_2)
|
|
|
|
assert ending.starting_outs == 2
|
|
assert ending.on_base_code == 2
|
|
assert ending.away_score == 0
|
|
|
|
|
|
async def test_groundball_3_2(session: Session):
|
|
play_1 = session.get(Play, 2)
|
|
play_1 = await doubles(session, None, play_1, "**")
|
|
play_2 = complete_play(session, play_1)
|
|
|
|
play_2 = gb_result_3(session, play_2)
|
|
ending = complete_play(session, play_2)
|
|
|
|
assert ending.starting_outs == 2
|
|
assert ending.on_base_code == 3
|
|
assert ending.away_score == 0
|
|
|
|
|
|
async def test_groundball_3_3(session: Session):
|
|
play_1 = session.get(Play, 2)
|
|
play_1 = await triples(
|
|
session,
|
|
None,
|
|
play_1,
|
|
)
|
|
play_2 = complete_play(session, play_1)
|
|
|
|
play_2 = gb_result_3(session, play_2)
|
|
ending = complete_play(session, play_2)
|
|
|
|
assert ending.starting_outs == 2
|
|
assert ending.on_base_code == 0
|
|
assert ending.away_score == 1
|
|
|
|
|
|
async def test_groundball_4_1(session: Session):
|
|
play_1 = session.get(Play, 2)
|
|
play_1 = await singles(session, None, play_1, "*")
|
|
play_2 = complete_play(session, play_1)
|
|
|
|
play_2 = gb_result_4(session, play_2)
|
|
ending = complete_play(session, play_2)
|
|
|
|
assert ending.starting_outs == 2
|
|
assert ending.on_base_code == 1
|
|
assert ending.on_first == play_2.batter
|
|
|
|
|
|
async def test_groundball_4_2(session: Session):
|
|
play_1 = session.get(Play, 2)
|
|
play_1 = await singles(session, None, play_1, "*")
|
|
play_2 = complete_play(session, play_1)
|
|
play_2 = await singles(session, None, play_2, "**")
|
|
play_3 = complete_play(session, play_2)
|
|
|
|
play_3 = gb_result_4(session, play_3)
|
|
ending = complete_play(session, play_3)
|
|
|
|
assert ending.starting_outs == 2
|
|
assert ending.on_base_code == 1
|
|
assert (
|
|
ending.on_first == play_3.batter
|
|
) # Current batter reaches first (gb_4 rule: batter safe at first)
|
|
assert ending.away_score == 1
|
|
|
|
|
|
async def test_groundball_5_1(session: Session):
|
|
play_1 = session.get(Play, 2)
|
|
play_1 = await triples(session, None, play_1)
|
|
play_2 = complete_play(session, play_1)
|
|
|
|
play_2 = gb_result_5(session, play_2, True)
|
|
ending = complete_play(session, play_2)
|
|
|
|
assert ending.starting_outs == 2
|
|
assert ending.on_base_code == 0
|
|
assert ending.away_score == 1
|
|
|
|
|
|
async def test_groundball_5_2(session: Session):
|
|
play_1 = session.get(Play, 2)
|
|
play_1 = await triples(session, None, play_1)
|
|
play_2 = complete_play(session, play_1)
|
|
|
|
play_2 = gb_result_5(session, play_2, False)
|
|
ending = complete_play(session, play_2)
|
|
|
|
assert ending.starting_outs == 2
|
|
assert ending.on_base_code == 3
|
|
assert ending.away_score == 0
|
|
|
|
|
|
async def test_groundball_6_1(session: Session):
|
|
play_1 = session.get(Play, 2)
|
|
play_1 = await doubles(session, None, play_1, "**")
|
|
play_2 = complete_play(session, play_1)
|
|
|
|
play_2 = gb_result_6(session, play_2, True)
|
|
ending = complete_play(session, play_2)
|
|
|
|
assert ending.starting_outs == 2
|
|
assert ending.on_base_code == 3
|
|
|
|
|
|
async def test_groundball_6_2(session: Session):
|
|
play_1 = session.get(Play, 2)
|
|
play_1 = await doubles(session, None, play_1, "**")
|
|
play_2 = complete_play(session, play_1)
|
|
|
|
play_2 = gb_result_6(session, play_2, False)
|
|
ending = complete_play(session, play_2)
|
|
|
|
assert ending.starting_outs == 2
|
|
assert ending.on_base_code == 2
|
|
|
|
|
|
async def test_groundball_7_1(session: Session):
|
|
play_1 = session.get(Play, 2)
|
|
play_1 = await triples(session, None, play_1)
|
|
play_2 = complete_play(session, play_1)
|
|
|
|
play_2 = gb_result_7(session, play_2)
|
|
ending = complete_play(session, play_2)
|
|
|
|
assert ending.starting_outs == 2
|
|
assert ending.on_base_code == 3
|
|
assert ending.away_score == 0
|
|
|
|
|
|
async def test_groundball_7_2(session: Session):
|
|
play_1 = session.get(Play, 2)
|
|
play_1 = await singles(session, None, play_1, "*")
|
|
play_2 = complete_play(session, play_1)
|
|
play_2 = await singles(session, None, play_2, "**")
|
|
play_3 = complete_play(session, play_2)
|
|
|
|
play_3 = gb_result_7(session, play_3)
|
|
ending = complete_play(session, play_3)
|
|
|
|
assert ending.starting_outs == 2
|
|
assert ending.on_base_code == 6
|
|
assert ending.away_score == 0
|
|
|
|
|
|
async def test_groundball_8_1(session: Session):
|
|
play_1 = session.get(Play, 2)
|
|
play_1 = await triples(session, None, play_1)
|
|
play_2 = complete_play(session, play_1)
|
|
|
|
play_2 = gb_result_8(session, play_2)
|
|
ending = complete_play(session, play_2)
|
|
|
|
assert ending.starting_outs == 2
|
|
assert ending.on_base_code == 3
|
|
assert ending.away_score == 0
|
|
|
|
|
|
async def test_groundball_8_2(session: Session):
|
|
play_1 = session.get(Play, 2)
|
|
play_1 = await singles(session, None, play_1, "*")
|
|
play_2 = complete_play(session, play_1)
|
|
play_2 = await singles(session, None, play_2, "**")
|
|
play_3 = complete_play(session, play_2)
|
|
|
|
play_3 = gb_result_8(session, play_3)
|
|
ending = complete_play(session, play_3)
|
|
|
|
assert ending.starting_outs == 2
|
|
assert ending.on_base_code == 6
|
|
assert ending.away_score == 0
|
|
|
|
|
|
async def test_groundball_9_1(session: Session):
|
|
play_1 = session.get(Play, 2)
|
|
play_1 = await singles(session, None, play_1, "*")
|
|
play_2 = complete_play(session, play_1)
|
|
play_2 = await singles(session, None, play_2, "**")
|
|
play_3 = complete_play(session, play_2)
|
|
|
|
play_3 = gb_result_9(session, play_3)
|
|
ending = complete_play(session, play_3)
|
|
|
|
assert ending.starting_outs == 2
|
|
assert ending.on_base_code == 6
|
|
assert ending.away_score == 0
|
|
|
|
|
|
async def test_groundball_10_1(session: Session):
|
|
play_1 = session.get(Play, 2)
|
|
play_1 = await singles(session, None, play_1, "*")
|
|
play_2 = complete_play(session, play_1)
|
|
play_2 = await singles(session, None, play_2, "*")
|
|
play_3 = complete_play(session, play_2)
|
|
play_3 = await singles(session, None, play_3, "*")
|
|
play_4 = complete_play(session, play_3)
|
|
|
|
play_4 = gb_result_10(session, play_4)
|
|
ending = complete_play(session, play_4)
|
|
|
|
assert ending.starting_outs == 0
|
|
assert ending.on_base_code == 0
|
|
assert ending.away_score == 0
|
|
|
|
|
|
async def test_groundball_13_1_1(session: Session):
|
|
play_1 = session.get(Play, 2)
|
|
play_1 = await singles(session, None, play_1, "*")
|
|
play_2 = complete_play(session, play_1)
|
|
play_2 = await singles(session, None, play_2, "*")
|
|
play_3 = complete_play(session, play_2)
|
|
|
|
play_3.check_pos == "3B"
|
|
play_3 = gb_result_13(session, play_3)
|
|
ending = complete_play(session, play_3)
|
|
|
|
assert ending.starting_outs == 0
|
|
assert ending.on_base_code == 0
|
|
assert ending.away_score == 0
|
|
|
|
|
|
async def test_groundball_13_1_2(session: Session):
|
|
play_1 = session.get(Play, 2)
|
|
play_1.starting_outs = 0
|
|
play_1 = await singles(session, None, play_1, "*")
|
|
play_2 = complete_play(session, play_1)
|
|
play_2 = await singles(session, None, play_2, "*")
|
|
play_3 = complete_play(session, play_2)
|
|
|
|
play_3.check_pos = "3B"
|
|
play_3 = gb_result_13(session, play_3)
|
|
ending = complete_play(session, play_3)
|
|
|
|
assert ending.starting_outs == 2
|
|
assert ending.on_base_code == 1
|
|
assert ending.away_score == 0
|
|
|
|
|
|
async def test_groundball_13_1_3(session: Session):
|
|
play_1 = session.get(Play, 2)
|
|
play_1.starting_outs = 0
|
|
play_1 = await singles(session, None, play_1, "*")
|
|
play_2 = complete_play(session, play_1)
|
|
play_2 = await singles(session, None, play_2, "*")
|
|
play_3 = complete_play(session, play_2)
|
|
|
|
play_3.check_pos == "1B"
|
|
play_3 = gb_result_13(session, play_3)
|
|
ending = complete_play(session, play_3)
|
|
|
|
assert ending.starting_outs == 2
|
|
assert ending.on_base_code == 3
|
|
assert ending.away_score == 0
|
|
|
|
|
|
async def test_groundball_13_2(session: Session):
|
|
play_1 = session.get(Play, 2)
|
|
play_1 = await singles(session, None, play_1, "*")
|
|
play_2 = complete_play(session, play_1)
|
|
play_2 = await singles(session, None, play_2, "*")
|
|
play_3 = complete_play(session, play_2)
|
|
|
|
play_3.check_pos == "C"
|
|
play_3 = gb_result_13(session, play_3)
|
|
ending = complete_play(session, play_3)
|
|
|
|
assert ending.starting_outs == 0
|
|
assert ending.on_base_code == 0
|
|
assert ending.away_score == 0
|
|
|
|
|
|
async def test_groundball_13_3(session: Session):
|
|
play_1 = session.get(Play, 2)
|
|
play_1 = await singles(session, None, play_1, "*")
|
|
play_2 = complete_play(session, play_1)
|
|
play_2 = await singles(session, None, play_2, "*")
|
|
play_3 = complete_play(session, play_2)
|
|
|
|
play_3.check_pos == "1B"
|
|
play_3 = gb_result_13(session, play_3)
|
|
ending = complete_play(session, play_3)
|
|
|
|
assert ending.starting_outs == 0
|
|
assert ending.on_base_code == 0
|
|
assert ending.away_score == 0
|