mud/tests/test_entity_posture.py
Jared Miller 9c480f8d47
Remove duplicate mock_writer/mock_reader fixtures
Removed identical local copies from 45 test files. These fixtures
are already defined in conftest.py.
2026-02-16 15:29:21 -05:00

155 lines
4.3 KiB
Python

"""Tests for Entity.posture property."""
from mudlib.entity import Entity, Mob
from mudlib.player import Player
def test_entity_default_posture():
"""Entity with no special state should be 'standing'."""
entity = Entity(name="Test", x=0, y=0)
assert entity.posture == "standing"
def test_entity_resting():
"""Entity with resting=True should be 'resting'."""
entity = Entity(name="Test", x=0, y=0, resting=True)
assert entity.posture == "resting"
def test_entity_unconscious_no_pl():
"""Entity with pl <= 0 should be 'unconscious'."""
entity = Entity(name="Test", x=0, y=0, pl=0.0)
assert entity.posture == "unconscious"
def test_entity_unconscious_negative_pl():
"""Entity with negative pl should be 'unconscious'."""
entity = Entity(name="Test", x=0, y=0, pl=-10.0)
assert entity.posture == "unconscious"
def test_entity_unconscious_no_stamina():
"""Entity with stamina <= 0 should be 'unconscious'."""
entity = Entity(name="Test", x=0, y=0, stamina=0.0)
assert entity.posture == "unconscious"
def test_entity_unconscious_negative_stamina():
"""Entity with negative stamina should be 'unconscious'."""
entity = Entity(name="Test", x=0, y=0, stamina=-5.0)
assert entity.posture == "unconscious"
def test_entity_unconscious_beats_resting():
"""Unconscious priority > resting priority."""
entity = Entity(name="Test", x=0, y=0, pl=0.0, resting=True)
assert entity.posture == "unconscious"
def test_player_flying(mock_reader, mock_writer):
"""Player with flying=True should be 'flying'."""
player = Player(
name="Test", x=0, y=0, reader=mock_reader, writer=mock_writer, flying=True
)
assert player.posture == "flying"
def test_player_flying_beats_resting(mock_reader, mock_writer):
"""Flying priority > resting priority."""
player = Player(
name="Test",
x=0,
y=0,
reader=mock_reader,
writer=mock_writer,
flying=True,
resting=True,
)
assert player.posture == "flying"
def test_player_unconscious_beats_flying(mock_reader, mock_writer):
"""Unconscious priority > flying priority."""
player = Player(
name="Test",
x=0,
y=0,
reader=mock_reader,
writer=mock_writer,
flying=True,
pl=0.0,
)
assert player.posture == "unconscious"
def test_player_fighting_in_combat_mode(mock_reader, mock_writer):
"""Player with mode='combat' should be 'fighting'."""
player = Player(
name="Test",
x=0,
y=0,
reader=mock_reader,
writer=mock_writer,
mode_stack=["normal", "combat"],
)
assert player.posture == "fighting"
def test_player_fighting_beats_flying(mock_reader, mock_writer):
"""Fighting priority > flying priority."""
player = Player(
name="Test",
x=0,
y=0,
reader=mock_reader,
writer=mock_writer,
mode_stack=["normal", "combat"],
flying=True,
)
assert player.posture == "fighting"
def test_player_fighting_beats_resting(mock_reader, mock_writer):
"""Fighting priority > resting priority."""
player = Player(
name="Test",
x=0,
y=0,
reader=mock_reader,
writer=mock_writer,
mode_stack=["normal", "combat"],
resting=True,
)
assert player.posture == "fighting"
def test_player_unconscious_beats_fighting(mock_reader, mock_writer):
"""Unconscious priority > fighting priority."""
player = Player(
name="Test",
x=0,
y=0,
reader=mock_reader,
writer=mock_writer,
mode_stack=["normal", "combat"],
stamina=0.0,
)
assert player.posture == "unconscious"
def test_mob_default_posture():
"""Mob with default state should be 'standing'."""
mob = Mob(name="Goku", x=10, y=10, description="A fighter")
assert mob.posture == "standing"
def test_mob_resting():
"""Mob with resting=True should be 'resting'."""
mob = Mob(name="Goku", x=10, y=10, description="A fighter", resting=True)
assert mob.posture == "resting"
def test_mob_unconscious():
"""Mob with pl=0 should be 'unconscious'."""
mob = Mob(name="Goku", x=10, y=10, description="A fighter", pl=0.0)
assert mob.posture == "unconscious"