diff options
Diffstat (limited to 'diplomacy/integration/webdiplomacy_net/tests/test_orders.py')
-rw-r--r-- | diplomacy/integration/webdiplomacy_net/tests/test_orders.py | 385 |
1 files changed, 385 insertions, 0 deletions
diff --git a/diplomacy/integration/webdiplomacy_net/tests/test_orders.py b/diplomacy/integration/webdiplomacy_net/tests/test_orders.py new file mode 100644 index 0000000..aed58c6 --- /dev/null +++ b/diplomacy/integration/webdiplomacy_net/tests/test_orders.py @@ -0,0 +1,385 @@ +# ============================================================================== +# Copyright (C) 2019 - Philip Paquette +# +# This program is free software: you can redistribute it and/or modify it under +# the terms of the GNU Affero General Public License as published by the Free +# Software Foundation, either version 3 of the License, or (at your option) any +# later version. +# +# This program is distributed in the hope that it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS +# FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more +# details. +# +# You should have received a copy of the GNU Affero General Public License along +# with this program. If not, see <https://www.gnu.org/licenses/>. +# ============================================================================== +""" Test order conversion. """ +from diplomacy.integration.webdiplomacy_net.orders import Order + +def compare_dicts(dict_1, dict_2): + """ Checks if two dictionaries are equal """ + keys_1 = set(dict_1.keys()) - {'convoyPath'} + keys_2 = set(dict_2.keys()) - {'convoyPath'} + if keys_1 != keys_2: + return False + for key in keys_1: + if dict_1[key] != dict_2[key]: + return False + return True + +def test_hold_army_001(): + """ Tests hold army """ + raw_order = 'A PAR H' + order_str = 'A PAR H' + order_dict = {'terrID': 47, + 'unitType': 'Army', + 'type': 'Hold', + 'toTerrID': '', + 'fromTerrID': '', + 'viaConvoy': ''} + order_from_string = Order(raw_order) + order_from_dict = Order(order_dict) + + # Validating + assert order_from_string.to_string() == order_str + assert compare_dicts(order_from_string.to_dict(), order_dict) + assert order_from_dict.to_string() == order_str + assert compare_dicts(order_from_dict.to_dict(), order_dict) + +def test_hold_army_002(): + """ Tests hold army """ + raw_order = 'A ABC H' + order_str = '' + order_dict = {} + order_from_string = Order(raw_order) + order_from_dict = Order(order_dict) + + # Validating + assert order_from_string.to_string() == order_str + assert compare_dicts(order_from_string.to_dict(), order_dict) + assert order_from_dict.to_string() == order_str + assert compare_dicts(order_from_dict.to_dict(), order_dict) + +def test_hold_fleet_001(): + """ Tests hold fleet """ + raw_order = 'F LON H' + order_str = 'F LON H' + order_dict = {'terrID': 6, + 'unitType': 'Fleet', + 'type': 'Hold', + 'toTerrID': '', + 'fromTerrID': '', + 'viaConvoy': ''} + order_from_string = Order(raw_order) + order_from_dict = Order(order_dict) + + # Validating + assert order_from_string.to_string() == order_str + assert compare_dicts(order_from_string.to_dict(), order_dict) + assert order_from_dict.to_string() == order_str + assert compare_dicts(order_from_dict.to_dict(), order_dict) + +def test_move_army_001(): + """ Tests move army """ + raw_order = 'A YOR - LON' + order_str = 'A YOR - LON' + order_dict = {'terrID': 4, + 'unitType': 'Army', + 'type': 'Move', + 'toTerrID': 6, + 'fromTerrID': '', + 'viaConvoy': 'No'} + order_from_string = Order(raw_order) + order_from_dict = Order(order_dict) + + # Validating + assert order_from_string.to_string() == order_str + assert compare_dicts(order_from_string.to_dict(), order_dict) + assert order_from_dict.to_string() == order_str + assert compare_dicts(order_from_dict.to_dict(), order_dict) + +def test_move_army_002(): + """ Tests move army """ + raw_order = 'A PAR - LON VIA' + order_str = 'A PAR - LON VIA' + order_dict = {'terrID': 47, + 'unitType': 'Army', + 'type': 'Move', + 'toTerrID': 6, + 'fromTerrID': '', + 'viaConvoy': 'Yes'} + order_from_string = Order(raw_order) + order_from_dict = Order(order_dict) + + # Validating + assert order_from_string.to_string() == order_str + assert compare_dicts(order_from_string.to_dict(), order_dict) + assert order_from_dict.to_string() == order_str + assert compare_dicts(order_from_dict.to_dict(), order_dict) + +def test_move_fleet_001(): + """ Tests move fleet """ + raw_order = 'F BRE - MAO' + order_str = 'F BRE - MAO' + order_dict = {'terrID': 46, + 'unitType': 'Fleet', + 'type': 'Move', + 'toTerrID': 61, + 'fromTerrID': '', + 'viaConvoy': 'No'} + order_from_string = Order(raw_order) + order_from_dict = Order(order_dict) + + # Validating + assert order_from_string.to_string() == order_str + assert compare_dicts(order_from_string.to_dict(), order_dict) + assert order_from_dict.to_string() == order_str + assert compare_dicts(order_from_dict.to_dict(), order_dict) + +def test_support_hold_001(): + """ Tests for support hold """ + raw_order = 'A PAR S F BRE' + order_str = 'A PAR S BRE' + order_dict = {'terrID': 47, + 'unitType': 'Army', + 'type': 'Support hold', + 'toTerrID': 46, + 'fromTerrID': '', + 'viaConvoy': ''} + order_from_string = Order(raw_order) + order_from_dict = Order(order_dict) + + # Validating + assert order_from_string.to_string() == order_str + assert compare_dicts(order_from_string.to_dict(), order_dict) + assert order_from_dict.to_string() == order_str + assert compare_dicts(order_from_dict.to_dict(), order_dict) + +def test_support_hold_002(): + """ Tests for support hold """ + raw_order = 'F MAO S F BRE' + order_str = 'F MAO S BRE' + order_dict = {'terrID': 61, + 'unitType': 'Fleet', + 'type': 'Support hold', + 'toTerrID': 46, + 'fromTerrID': '', + 'viaConvoy': ''} + order_from_string = Order(raw_order) + order_from_dict = Order(order_dict) + + # Validating + assert order_from_string.to_string() == order_str + assert compare_dicts(order_from_string.to_dict(), order_dict) + assert order_from_dict.to_string() == order_str + assert compare_dicts(order_from_dict.to_dict(), order_dict) + +def test_support_move_001(): + """ Tests support move """ + raw_order = 'A PAR S F MAO - BRE' + order_str = 'A PAR S MAO - BRE' + order_dict = {'terrID': 47, + 'unitType': 'Army', + 'type': 'Support move', + 'toTerrID': 46, + 'fromTerrID': 61, + 'viaConvoy': ''} + order_from_string = Order(raw_order) + order_from_dict = Order(order_dict) + + # Validating + assert order_from_string.to_string() == order_str + assert compare_dicts(order_from_string.to_dict(), order_dict) + assert order_from_dict.to_string() == order_str + assert compare_dicts(order_from_dict.to_dict(), order_dict) + +def test_support_move_002(): + """ Tests support move """ + raw_order = 'F MAO S A PAR - BRE' + order_str = 'F MAO S PAR - BRE' + order_dict = {'terrID': 61, + 'unitType': 'Fleet', + 'type': 'Support move', + 'toTerrID': 46, + 'fromTerrID': 47, + 'viaConvoy': ''} + order_from_string = Order(raw_order) + order_from_dict = Order(order_dict) + + # Validating + assert order_from_string.to_string() == order_str + assert compare_dicts(order_from_string.to_dict(), order_dict) + assert order_from_dict.to_string() == order_str + assert compare_dicts(order_from_dict.to_dict(), order_dict) + +def test_convoy_001(): + """ Tests convoy """ + raw_order = 'F MAO C A PAR - LON' + order_str = 'F MAO C A PAR - LON' + order_dict = {'terrID': 61, + 'unitType': 'Fleet', + 'type': 'Convoy', + 'toTerrID': 6, + 'fromTerrID': 47, + 'viaConvoy': ''} + order_from_string = Order(raw_order) + order_from_dict = Order(order_dict) + + # Validating + assert order_from_string.to_string() == order_str + assert compare_dicts(order_from_string.to_dict(), order_dict) + assert order_from_dict.to_string() == order_str + assert compare_dicts(order_from_dict.to_dict(), order_dict) + +def test_retreat_army_001(): + """ Tests retreat army """ + raw_order = 'A PAR R LON' + order_str = 'A PAR R LON' + order_dict = {'terrID': 47, + 'unitType': 'Army', + 'type': 'Retreat', + 'toTerrID': 6, + 'fromTerrID': '', + 'viaConvoy': ''} + order_from_string = Order(raw_order) + order_from_dict = Order(order_dict) + + # Validating + assert order_from_string.to_string() == order_str + assert compare_dicts(order_from_string.to_dict(), order_dict) + assert order_from_dict.to_string() == order_str + assert compare_dicts(order_from_dict.to_dict(), order_dict) + +def test_retreat_fleet_001(): + """ Tests retreat fleet """ + raw_order = 'F BRE R SPA/SC' + order_str = 'F BRE R SPA/SC' + order_dict = {'terrID': 46, + 'unitType': 'Fleet', + 'type': 'Retreat', + 'toTerrID': 77, + 'fromTerrID': '', + 'viaConvoy': ''} + order_from_string = Order(raw_order) + order_from_dict = Order(order_dict) + + # Validating + assert order_from_string.to_string() == order_str + assert compare_dicts(order_from_string.to_dict(), order_dict) + assert order_from_dict.to_string() == order_str + assert compare_dicts(order_from_dict.to_dict(), order_dict) + +def test_disband_army_001(): + """ Tests disband army """ + raw_order = 'A PAR D' + order_str = 'A PAR D' + order_dict = {'terrID': 47, + 'unitType': 'Army', + 'type': 'Disband', + 'toTerrID': '', + 'fromTerrID': '', + 'viaConvoy': ''} + order_from_string = Order(raw_order, phase_type='R') + order_from_dict = Order(order_dict, phase_type='R') + + # Validating + assert order_from_string.to_string() == order_str + assert compare_dicts(order_from_string.to_dict(), order_dict) + assert order_from_dict.to_string() == order_str + assert compare_dicts(order_from_dict.to_dict(), order_dict) + +def test_disband_fleet_001(): + """ Tests disband fleet """ + raw_order = 'F BRE D' + order_str = 'F BRE D' + order_dict = {'terrID': 46, + 'unitType': 'Fleet', + 'type': 'Disband', + 'toTerrID': '', + 'fromTerrID': '', + 'viaConvoy': ''} + order_from_string = Order(raw_order, phase_type='R') + order_from_dict = Order(order_dict, phase_type='R') + + # Validating + assert order_from_string.to_string() == order_str + assert compare_dicts(order_from_string.to_dict(), order_dict) + assert order_from_dict.to_string() == order_str + assert compare_dicts(order_from_dict.to_dict(), order_dict) + +def test_build_army_001(): + """ Tests build army """ + raw_order = 'A PAR B' + order_str = 'A PAR B' + order_dict = {'terrID': 47, + 'unitType': 'Army', + 'type': 'Build Army', + 'toTerrID': 47, + 'fromTerrID': '', + 'viaConvoy': ''} + order_from_string = Order(raw_order) + order_from_dict = Order(order_dict) + + # Validating + assert order_from_string.to_string() == order_str + assert compare_dicts(order_from_string.to_dict(), order_dict) + assert order_from_dict.to_string() == order_str + assert compare_dicts(order_from_dict.to_dict(), order_dict) + +def test_build_fleet_001(): + """ Tests build fleet """ + raw_order = 'F BRE B' + order_str = 'F BRE B' + order_dict = {'terrID': 46, + 'unitType': 'Fleet', + 'type': 'Build Fleet', + 'toTerrID': 46, + 'fromTerrID': '', + 'viaConvoy': ''} + order_from_string = Order(raw_order) + order_from_dict = Order(order_dict) + + # Validating + assert order_from_string.to_string() == order_str + assert compare_dicts(order_from_string.to_dict(), order_dict) + assert order_from_dict.to_string() == order_str + assert compare_dicts(order_from_dict.to_dict(), order_dict) + +def test_disband_army_002(): + """ Tests disband army """ + raw_order = 'A PAR D' + order_str = 'A PAR D' + order_dict = {'terrID': 47, + 'unitType': 'Army', + 'type': 'Destroy', + 'toTerrID': 47, + 'fromTerrID': '', + 'viaConvoy': ''} + order_from_string = Order(raw_order, phase_type='A') + order_from_dict = Order(order_dict, phase_type='A') + + # Validating + assert order_from_string.to_string() == order_str + assert compare_dicts(order_from_string.to_dict(), order_dict) + assert order_from_dict.to_string() == order_str + assert compare_dicts(order_from_dict.to_dict(), order_dict) + +def test_disband_fleet_002(): + """ Tests disband fleet """ + raw_order = 'F BRE D' + order_str = 'F BRE D' + order_dict = {'terrID': 46, + 'unitType': 'Fleet', + 'type': 'Destroy', + 'toTerrID': 46, + 'fromTerrID': '', + 'viaConvoy': ''} + order_from_string = Order(raw_order, phase_type='A') + order_from_dict = Order(order_dict, phase_type='A') + + # Validating + assert order_from_string.to_string() == order_str + assert compare_dicts(order_from_string.to_dict(), order_dict) + assert order_from_dict.to_string() == order_str + assert compare_dicts(order_from_dict.to_dict(), order_dict) |