diff --git a/netorcai/message.py b/netorcai/message.py index 8e1d053..cafba44 100644 --- a/netorcai/message.py +++ b/netorcai/message.py @@ -2,6 +2,7 @@ """Parsing module of the netorcai client library.""" from netorcai.version import metaprotocol_version + class PlayerInfo: def __init__(self, o): self.player_id = o["player_id"] @@ -9,11 +10,9 @@ def __init__(self, o): self.remote_address = o["remote_address"] self.is_connected = o["is_connected"] -def parse_players_info(array): - players_infos = list() - for element in array: - players_infos.append(PlayerInfo(element)) - return players_infos + def __repr__(self): + return "" % (self.nickname, self.player_id) + class PlayerActions: def __init__(self, o): @@ -21,11 +20,9 @@ def __init__(self, o): self.turn_number = o["turn_number"] self.actions = o["actions"] -def parse_players_actions(array): - players_actions = list() - for element in array: - players_actions.append(PlayerActions(element)) - return players_actions + def __repr__(self): + return "" % self.__dict__ + class LoginAckMessage: def __init__(self, o): @@ -34,6 +31,10 @@ def __init__(self, o): print("Warning: netorcai uses version '{}' while netorcai-client-python uses '{}'".format( self.metaprotocol_version, metaprotocol_version())) + def __repr__(self): + return "" % self.__dict__ + + class GameStartsMessage: def __init__(self, o): self.player_id = o["player_id"] @@ -42,26 +43,47 @@ def __init__(self, o): self.nb_turns_max = o["nb_turns_max"] self.ms_before_first_turn = o["milliseconds_before_first_turn"] self.ms_between_turns = o["milliseconds_between_turns"] - self.players_info = parse_players_info(o["players_info"]) + self.players_info = [PlayerInfo(info) for info in o["players_info"]] self.initial_game_state = o["initial_game_state"] + def __repr__(self): + return "" % ( + self.nb_players, self.nb_special_players, self.nb_turns_max) + + class GameEndsMessage: def __init__(self, o): self.winner_player_id = o["winner_player_id"] self.game_state = o["game_state"] + def __repr__(self): + return "" % self.winner_player_id + + class TurnMessage: def __init__(self, o): self.turn_number = o["turn_number"] - self.players_info = parse_players_info(o["players_info"]) + self.players_info = [PlayerInfo(info) for info in o["players_info"]] self.game_state = o["game_state"] + def __repr__(self): + return "" % self.turn_number + + class DoInitMessage: def __init__(self, o): self.nb_players = o["nb_players"] self.nb_special_players = o["nb_special_players"] self.nb_turns_max = o["nb_turns_max"] + def __repr__(self): + return "" % ( + self.nb_players, self.nb_special_players, self.nb_turns_max) + + class DoTurnMessage: def __init__(self, o): - self.player_actions = parse_players_actions(o["player_actions"]) + self.player_actions = [PlayerActions(action) for action in o["player_actions"]] + + def __repr__(self): + return "" % self.__dict__ diff --git a/tests/test_message.py b/tests/test_message.py index dbac17d..7aca1b6 100644 --- a/tests/test_message.py +++ b/tests/test_message.py @@ -16,33 +16,6 @@ def test_player_info(): assert pinfo.remote_address == "127.0.0.1:59840" assert pinfo.is_connected == True -def test_parse_players_info(): - s = '''[ - { - "player_id": 0, - "nickname": "jugador", - "remote_address": "127.0.0.1:59840", - "is_connected": true - }, - { - "player_id": 1, - "nickname": "bot", - "remote_address": "127.0.0.1:59842", - "is_connected": false - } - ]''' - - pinfos = parse_players_info(json.loads(s)) - assert len(pinfos) == 2 - assert pinfos[0].player_id == 0 - assert pinfos[0].nickname == "jugador" - assert pinfos[0].remote_address == "127.0.0.1:59840" - assert pinfos[0].is_connected == True - - assert pinfos[1].player_id == 1 - assert pinfos[1].nickname == "bot" - assert pinfos[1].remote_address == "127.0.0.1:59842" - assert pinfos[1].is_connected == False def test_game_starts(): s = '''{