Ejemplo n.º 1
0
def test_sub_austria_hold():
    """ Tests the SUB request """
    daide_str = 'SUB ( ( AUS AMY LVP ) HLD )'
    expected_str = 'SUB ((AUS AMY LVP) HLD)'
    request = RequestBuilder.from_bytes(str_to_bytes(daide_str))
    assert isinstance(request, requests.SUB), 'Expected a SUB request'
    assert bytes(request) == str_to_bytes(daide_str)
    assert str(request) == expected_str
    assert request.phase == ''
    assert request.power_name == 'AUSTRIA'
    assert request.orders == ['A LVP H']
Ejemplo n.º 2
0
def test_sub_win_hold():
    """ Tests the SUB request """
    daide_str = 'SUB ( WIN #1905 ) ( ( ENG AMY LVP ) HLD )'
    expected_str = 'SUB (WIN 1905) ((ENG AMY LVP) HLD)'
    request = RequestBuilder.from_bytes(str_to_bytes(daide_str))
    assert isinstance(request, requests.SUB), 'Expected a SUB request'
    assert bytes(request) == str_to_bytes(daide_str)
    assert str(request) == expected_str
    assert request.phase == 'W1905A'
    assert request.power_name == 'ENGLAND'
    assert request.orders == ['A LVP H']
Ejemplo n.º 3
0
def test_snd_009():
    """ Tests the SND request """
    daide_str = 'SND ( FRA GER ) ( HUH ( ERR PRP ( ALY ( FRA ENG GER ) VSS ( ITA ) ) ) )'
    expected_str = 'SND (FRA GER) (HUH (ERR PRP (ALY (FRA ENG GER) VSS (ITA))))'
    request = RequestBuilder.from_bytes(str_to_bytes(daide_str))
    assert isinstance(request, requests.SND), 'Expected a SND request'
    assert bytes(request) == str_to_bytes(daide_str)
    assert str(request) == expected_str
    assert request.phase == ''
    assert request.powers == ['FRANCE', 'GERMANY']
    assert request.message_bytes == str_to_bytes(
        'HUH ( ERR PRP ( ALY ( FRA ENG GER ) VSS ( ITA ) ) )')
Ejemplo n.º 4
0
def test_snd_005():
    """ Tests the SND request """
    daide_str = 'SND ( FRA ENG ) ( TRY ( PRP PCE ALY VSS DRW SLO NOT YES REJ BWX ) )'
    expected_str = 'SND (FRA ENG) (TRY (PRP PCE ALY VSS DRW SLO NOT YES REJ BWX))'
    request = RequestBuilder.from_bytes(str_to_bytes(daide_str))
    assert isinstance(request, requests.SND), 'Expected a SND request'
    assert bytes(request) == str_to_bytes(daide_str)
    assert str(request) == expected_str
    assert request.phase == ''
    assert request.powers == ['FRANCE', 'ENGLAND']
    assert request.message_bytes == str_to_bytes(
        'TRY ( PRP PCE ALY VSS DRW SLO NOT YES REJ BWX )')
Ejemplo n.º 5
0
def test_snd_003():
    """ Tests the SND request """
    daide_str = 'SND ( FRA ENG ) ( CCL ( PRP ( PCE ( FRA ENG GER ) ) ) )'
    expected_str = 'SND (FRA ENG) (CCL (PRP (PCE (FRA ENG GER))))'
    request = RequestBuilder.from_bytes(str_to_bytes(daide_str))
    assert isinstance(request, requests.SND), 'Expected a SND request'
    assert bytes(request) == str_to_bytes(daide_str)
    assert str(request) == expected_str
    assert request.phase == ''
    assert request.powers == ['FRANCE', 'ENGLAND']
    assert request.message_bytes == str_to_bytes(
        'CCL ( PRP ( PCE ( FRA ENG GER ) ) )')
Ejemplo n.º 6
0
def test_sub_multi_002():
    """ Tests the SUB request """
    daide_str = 'SUB ( ( ENG FLT BAR ) MTO ( STP NCS ) ) ' \
                '( ( ITA FLT NWY ) SUP ( ENG FLT BAR ) MTO STP )'
    expected_str = 'SUB ((ENG FLT BAR) MTO (STP NCS)) ' \
                   '((ITA FLT NWY) SUP (ENG FLT BAR) MTO STP)'
    request = RequestBuilder.from_bytes(str_to_bytes(daide_str))
    assert isinstance(request, requests.SUB), 'Expected a SUB request'
    assert bytes(request) == str_to_bytes(daide_str)
    assert str(request) == expected_str
    assert request.phase == ''
    assert request.power_name == 'ENGLAND'
    assert request.orders == ['F BAR - STP/NC', 'F NWY S F BAR - STP']
Ejemplo n.º 7
0
def test_not_sub_orders():
    """ Tests the NOT request """
    daide_str = 'NOT ( SUB ( ( ENG AMY YOR ) CTO NWY VIA ( NTH ) ) ' \
                '( ( ENG FLT NTH ) CVY ( ENG AMY YOR ) CTO NWY ) ' \
                '( ( ENG FLT NWG ) SUP ( ENG AMY YOR ) MTO NWY ) )'
    expected_str = 'NOT (SUB ((ENG AMY YOR) CTO NWY VIA (NTH)) ' \
                   '((ENG FLT NTH) CVY (ENG AMY YOR) CTO NWY) ' \
                   '((ENG FLT NWG) SUP (ENG AMY YOR) MTO NWY))'
    request = RequestBuilder.from_bytes(str_to_bytes(daide_str))
    assert isinstance(request, requests.NOT), 'Expected a NOT request'
    assert bytes(request) == str_to_bytes(daide_str)
    assert str(request) == expected_str
    assert isinstance(request.request,
                      requests.SUB), 'Expected a SUB not request'
Ejemplo n.º 8
0
def test_sub_multi_001():
    """ Tests the SUB request """
    daide_str = 'SUB ( ( ENG AMY LVP ) HLD ) ' \
                '( ( ENG FLT LON ) MTO NTH ) ' \
                '( ( ENG FLT EDI ) SUP ( ENG FLT LON ) MTO NTH )'
    expected_str = 'SUB ((ENG AMY LVP) HLD) ' \
                   '((ENG FLT LON) MTO NTH) ' \
                   '((ENG FLT EDI) SUP (ENG FLT LON) MTO NTH)'
    request = RequestBuilder.from_bytes(str_to_bytes(daide_str))
    assert isinstance(request, requests.SUB), 'Expected a SUB request'
    assert bytes(request) == str_to_bytes(daide_str)
    assert str(request) == expected_str
    assert request.phase == ''
    assert request.power_name == 'ENGLAND'
    assert request.orders == ['A LVP H', 'F LON - NTH', 'F EDI S F LON - NTH']
Ejemplo n.º 9
0
def test_prn_sub():
    """ Tests the PRN request """
    daide_str = 'PRN ( SUB ( ( ENG AMY LVP ) HLD ) ' \
                '( ( ENG FLT LON ) MTO NTH ) ' \
                '( ( ENG FLT EDI ) SUP ( ENG FLT LON ) MTO NTH )'
    request_message_daide_str = 'SUB ( ( ENG AMY LVP ) HLD ) ' \
                                '( ( ENG FLT LON ) MTO NTH ) ' \
                                '( ( ENG FLT EDI ) SUP ( ENG FLT LON ) MTO NTH'
    expected_str = 'PRN (SUB ((ENG AMY LVP) HLD) ' \
                   '((ENG FLT LON) MTO NTH) ' \
                   '((ENG FLT EDI) SUP (ENG FLT LON) MTO NTH)'
    request = RequestBuilder.from_bytes(str_to_bytes(daide_str))
    assert isinstance(request, requests.PRN), 'Expected a PRN request'
    assert bytes(request) == str_to_bytes(daide_str)
    assert str(request) == expected_str
    assert request.message_bytes == str_to_bytes(request_message_daide_str)
Ejemplo n.º 10
0
def test_sub_multi_004():
    """ Tests the SUB request """
    daide_str = 'SUB ( ( ENG AMY YOR ) CTO NWY VIA ( NTH ) ) ' \
                '( ( ENG FLT NTH ) CVY ( ENG AMY YOR ) CTO NWY ) ' \
                '( ( ENG FLT NWG ) SUP ( ENG AMY YOR ) MTO NWY )'
    expected_str = 'SUB ((ENG AMY YOR) CTO NWY VIA (NTH)) ' \
                   '((ENG FLT NTH) CVY (ENG AMY YOR) CTO NWY) ' \
                   '((ENG FLT NWG) SUP (ENG AMY YOR) MTO NWY)'
    request = RequestBuilder.from_bytes(str_to_bytes(daide_str))
    assert isinstance(request, requests.SUB), 'Expected a SUB request'
    assert bytes(request) == str_to_bytes(daide_str)
    assert str(request) == expected_str
    assert request.phase == ''
    assert request.power_name == 'ENGLAND'
    assert request.orders == [
        'A YOR - NWY VIA', 'F NTH C A YOR - NWY', 'F NWG S A YOR - NWY'
    ]
Ejemplo n.º 11
0
def test_sub_multi_003():
    """ Tests the SUB request """
    daide_str = 'SUB ( ( ITA AMY TUN ) CTO SYR VIA ( ION EAS ) ) ' \
                '( ( ITA FLT ION ) CVY ( ITA AMY TUN ) CTO SYR ) ' \
                '( ( ITA FLT EAS ) CVY ( ITA AMY TUN ) CTO SYR )'
    expected_str = 'SUB ((ITA AMY TUN) CTO SYR VIA (ION EAS)) ' \
                   '((ITA FLT ION) CVY (ITA AMY TUN) CTO SYR) ' \
                   '((ITA FLT EAS) CVY (ITA AMY TUN) CTO SYR)'
    request = RequestBuilder.from_bytes(str_to_bytes(daide_str))
    assert isinstance(request, requests.SUB), 'Expected a SUB request'
    assert bytes(request) == str_to_bytes(daide_str)
    assert str(request) == expected_str
    assert request.phase == ''
    assert request.power_name == 'ITALY'
    assert request.orders == [
        'A TUN - SYR VIA', 'F ION C A TUN - SYR', 'F EAS C A TUN - SYR'
    ]
Ejemplo n.º 12
0
    def _on_diplomacy_message(self, in_message):
        """ Handle a diplomacy message """
        messages = []
        request = RequestBuilder.from_bytes(in_message.content)

        try:
            LOGGER.info('[%d] request:[%s]', self._socket_no,
                        bytes_to_str(in_message.content))
            request.game_id = self.game_id
            message_responses = yield request_managers.handle_request(
                self.server, request, self)
        except exceptions.ResponseException:
            message_responses = [responses.REJ(bytes(request))]

        if message_responses:
            for response in message_responses:
                response_bytes = bytes(response)
                LOGGER.info('[%d] response:[%s]', self._socket_no, bytes_to_str(response_bytes) \
                                                                   if response_bytes else None)
                message = DiplomacyMessage()
                message.content = response_bytes
                messages.append(message)

        return messages