34 lines
1.0 KiB
Python
34 lines
1.0 KiB
Python
from __future__ import annotations
|
||
|
||
from shortdeck_server.arena_adapter import ArenaGame
|
||
|
||
|
||
def test_join_and_actions():
|
||
g = ArenaGame(starting_stack=100, max_players=3, small_blind=1, big_blind=2)
|
||
pid0 = g.join_game("aa")
|
||
pid1 = g.join_game("bb")
|
||
assert pid0 == 0
|
||
assert pid1 == 1
|
||
|
||
state = g.info()
|
||
# 在短牌扑克中,玩家加入后盲注已自动扣除
|
||
# 小盲(pid0): 100-1=99, 大盲(pid1): 100-2=98
|
||
assert state["stacks"] == [99, 98]
|
||
|
||
# 验证轮次管理:heads-up时小盲先行动
|
||
assert g.current_turn == 0
|
||
|
||
# 测试错误的玩家尝试行动
|
||
result = g.apply_action(1, "fold")
|
||
assert result["success"] == False
|
||
assert "不是玩家" in result["message"] or "turn" in result["message"].lower()
|
||
|
||
# 小盲玩家call (跟注到大盲)
|
||
g.apply_action(0, "call")
|
||
assert g.current_turn == 1
|
||
|
||
# 大盲玩家加注
|
||
g.apply_action(1, "bet", 10)
|
||
assert g.pot >= 10 # 底池至少包含加注金额
|
||
assert g.history[-1]["action"] == "bet"
|