def test_clear_centers(): """ Tests - Clear centers """ game = Game() game.clear_centers() for power in game.powers.values(): assert not power.centers assert not game.error
def test_set_centers(): """ Tests - Sets centers """ game = Game() game.clear_centers() game.set_centers('FRANCE', ['PAR', 'MAR', 'GAS']) # GAS is not a valid SC loc game.set_centers('ENGLAND', ['PAR', 'LON']) assert game.get_power('AUSTRIA').centers == [] assert game.get_power('ENGLAND').centers == ['PAR', 'LON'] assert game.get_power('FRANCE').centers == ['MAR'] assert game.get_power('GERMANY').centers == [] assert game.get_power('ITALY').centers == [] assert game.get_power('RUSSIA').centers == [] assert game.get_power('TURKEY').centers == [] # Adding BUD to England without resetting game.set_centers('ENGLAND', 'BUD', reset=False) assert game.get_power('ENGLAND').centers == ['PAR', 'LON', 'BUD'] # Adding BUD to England with resetting game.set_centers('ENGLAND', ['BUD'], reset=True) assert game.get_power('ENGLAND').centers == ['BUD'] # Adding UKR to England (illegal SC) game.set_centers('ENGLAND', 'UKR', reset=False) assert game.get_power('ENGLAND').centers == ['BUD']
def on_cleared_centers(game, notification): """ Manage notification ClearedCenters. :param game: a Network game :param notification: notification received :type game: diplomacy.client.network_game.NetworkGame :type notification: diplomacy.communication.notifications.ClearedCenters """ Game.clear_centers(game, notification.power_name)
def on_clear_centers(context, response): """ Manage response for request ClearCenters. :param context: request context :param response: response received :return: None :type context: RequestFutureContext """ request = context.request # type: requests.ClearCenters Game.clear_centers(context.game, request.power_name)
def test_set_orders_no_replace(): """ Test - Sets orders with replace=False """ check_sorted = lambda list_1, list_2: sorted(list_1) == sorted(list_2) # Regular Movement Phase game = Game() game.clear_units() game.set_units('ITALY', ['A VEN', 'A PAR']) game.set_units('AUSTRIA', 'A VIE') game.set_orders('ITALY', ['A VEN - TYR', 'A PAR H'], replace=False) game.set_orders('AUSTRIA', 'A VIE - TYR', replace=False) game.set_orders('ITALY', 'A PAR - GAS', replace=False) orders = game.get_orders() assert check_sorted(orders['ITALY'], ['A VEN - TYR', 'A PAR H']) assert check_sorted(orders['AUSTRIA'], ['A VIE - TYR']) # NO_CHECK Movement Phase game = Game() game.add_rule('NO_CHECK') game.clear_units() game.set_units('ITALY', ['A VEN', 'A PAR']) game.set_units('AUSTRIA', 'A VIE') game.set_orders('ITALY', ['A VEN - TYR', 'A PAR H'], replace=False) game.set_orders('AUSTRIA', 'A VIE - TYR', replace=False) game.set_orders('ITALY', 'A PAR - GAS', replace=False) orders = game.get_orders() assert check_sorted(orders['ITALY'], ['A VEN - TYR', 'A PAR H', 'A PAR - GAS']) assert check_sorted(orders['AUSTRIA'], ['A VIE - TYR']) # Regular Retreat Phase game = Game() game.clear_units() game.set_units('ITALY', ['A BRE', 'A PAR']) game.set_units('AUSTRIA', 'A GAS') game.set_orders('ITALY', ['A BRE - GAS', 'A PAR S A BRE - GAS'], replace=False) game.set_orders('AUSTRIA', 'A GAS H', replace=False) game.process() game.set_orders('AUSTRIA', 'A GAS R MAR', replace=False) game.set_orders('AUSTRIA', 'A GAS R SPA', replace=False) orders = game.get_orders() assert check_sorted(orders['AUSTRIA'], ['A GAS R MAR']) # NO_CHECK Retreat Phase game = Game() game.add_rule('NO_CHECK') game.clear_units() game.set_units('ITALY', ['A BRE', 'A PAR']) game.set_units('AUSTRIA', 'A GAS') game.set_orders('ITALY', ['A BRE - GAS', 'A PAR S A BRE - GAS'], replace=False) game.set_orders('AUSTRIA', 'A GAS H', replace=False) game.process() game.set_orders('AUSTRIA', 'A GAS R MAR', replace=False) game.set_orders('AUSTRIA', 'A GAS R SPA', replace=False) orders = game.get_orders() assert check_sorted(orders['AUSTRIA'], ['A GAS R MAR']) # Regular Adjustment Phase game = Game() game.clear_units() game.clear_centers() game.set_units('FRANCE', ['A BRE', 'A PAR']) game.set_units('AUSTRIA', 'A GAS') game.set_orders('FRANCE', 'A PAR - PIC', replace=False) game.process() game.set_orders('FRANCE', ['A PIC - BEL', 'A BRE - PAR'], replace=False) game.process() game.set_orders('FRANCE', 'A BRE B', replace=False) game.set_orders('FRANCE', 'F BRE B', replace=False) orders = game.get_orders() assert check_sorted(orders['FRANCE'], ['A BRE B']) # NO_CHECK Adjustment Phase game = Game() game.add_rule('NO_CHECK') game.clear_units() game.clear_centers() game.set_units('FRANCE', ['A BRE', 'A PAR']) game.set_units('AUSTRIA', 'A GAS') game.set_orders('FRANCE', 'A PAR - PIC', replace=False) game.process() game.set_orders('FRANCE', ['A PIC - BEL', 'A BRE - PAR'], replace=False) game.process() game.set_orders('FRANCE', 'A BRE B', replace=False) game.set_orders('FRANCE', 'F BRE B', replace=False) orders = game.get_orders() assert check_sorted(orders['FRANCE'], ['A BRE B'])