def test_not_connected_exchange(self):
     client = AgentProxy('localhost:7000')
     try:
         client._exchange({'some': 'data'})
         assert False
     except AgentProxyException as e:
         assert str(e) == 'no connection is available.'
 def test_wrong_protocol_response(self, monkeypatch):
     skt = MockSocket.create()
     monkeypatch.setattr(socket, 'socket', lambda: skt)
     client = AgentProxy('localhost:7000')
     client.connect()
     try:
         client._exchange({'wrong': 'response'})
         assert False
     except AgentProxyException as e:
         assert str(e) == 'wring message format'
 def test_low_level_exception_on_exchange(self, monkeypatch):
     transport = NetString('skt')
     transport.write_string = lambda x: MockUtils.raise_(
         Exception('some error'))
     client = AgentProxy('localhost:7000')
     client.transport = transport
     client.skt = 'skt'
     try:
         client._exchange({'some': 'data'})
         assert False
     except AgentProxyException as e:
         assert str(e) == 'some error'
 def test_error_response(self, monkeypatch):
     skt = MockSocket.create()
     monkeypatch.setattr(socket, 'socket', lambda: skt)
     client = AgentProxy('localhost:7000')
     client.connect()
     try:
         client._exchange({'response': 'error'})
         assert False
     except AgentProxyException as e:
         assert str(e) == 'unknown error'
     try:
         client._exchange({'response': 'error', 'message': 'some error'})
         assert False
     except AgentProxyException as e:
         assert str(e) == 'some error'
 def test_exchange(self, monkeypatch):
     skt = MockSocket.create()
     monkeypatch.setattr(socket, 'socket', lambda: skt)
     client = AgentProxy('localhost:7000')
     client.connect()
     ret = client._exchange({'response': 'action', 'data': [1, 2, 3]})
     assert ret == [1, 2, 3]