39 lines
1.4 KiB
Python
39 lines
1.4 KiB
Python
"""
|
|
Tests for char module — IChar base class and CharacterCapabilities.
|
|
|
|
Covers: character construction, capability dataclass, active skill tracking.
|
|
"""
|
|
import pytest
|
|
from logger import Logger
|
|
|
|
|
|
class TestCharacterCapabilities:
|
|
def test_capabilities_dataclass(self):
|
|
from char.capabilities import CharacterCapabilities
|
|
caps = CharacterCapabilities(can_teleport_natively=True, can_teleport_with_charges=False)
|
|
assert caps.can_teleport_natively is True
|
|
assert caps.can_teleport_with_charges is False
|
|
|
|
|
|
class TestIChar:
|
|
def setup_method(self):
|
|
Logger.init()
|
|
Logger.remove_file_logger()
|
|
|
|
def test_ichar_initializes_skill_hotkeys(self):
|
|
from char.i_char import IChar
|
|
char = IChar({"left_attack": "1", "right_attack": "2"})
|
|
assert char._skill_hotkeys["left_attack"] == "1"
|
|
assert char._skill_hotkeys["right_attack"] == "2"
|
|
|
|
def test_ichar_active_skill_defaults_empty(self):
|
|
from char.i_char import IChar
|
|
char = IChar({"left_attack": "1", "right_attack": "2"})
|
|
assert char._active_skill["left"] == ""
|
|
assert char._active_skill["right"] == ""
|
|
|
|
def test_ichar_set_active_skill(self):
|
|
from char.i_char import IChar
|
|
char = IChar({"left_attack": "1", "right_attack": "2"})
|
|
char._set_active_skill("left", "hammer")
|
|
assert char._active_skill["left"] == "hammer" |