paper-dynasty-discord/tests/command_logic/test_logic_groundballs.py
Cal Corum ee80cd72ae fix: apply Black formatting and resolve ruff lint violations
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>
2026-03-09 11:37:46 -05:00

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