コード例 #1
0
async def test_download(problem, mock_ws):
    with patch("azure.quantum.aio.optimization.problem.download_blob") as mock_download_blob,\
        patch("azure.quantum.aio.optimization.problem.BlobClient") as mock_blob_client,\
        patch("azure.quantum.aio.optimization.problem.ContainerClient") as mock_container_client:
        mock_download_blob.return_value=expected_terms()
        mock_blob_client.from_blob_url.return_value = Mock()
        mock_container_client.from_container_url.return_value = Mock()
        actual_result = await problem.download(mock_ws)
        assert actual_result.name == "test"
        azure.quantum.aio.optimization.problem.download_blob.assert_called_once()
コード例 #2
0
def request_next_move(return_value):
    server = Mock()
    server.game.max_nb_ticks = 500
    socket = AsyncMock()
    socket.recv.return_value = return_value
    gs, player = get_player(server, socket)
    player.logger = Mock()
    next_move = asyncio.run(player.request_next_move(123, gs))
    socket.send.assert_called_once()
    return next_move, player
コード例 #3
0
async def test_upload(mock_ws, pubo_problem):
    with patch("azure.quantum.aio.optimization.problem.BlobClient") as mock_blob_client, \
        patch("azure.quantum.aio.optimization.problem.ContainerClient") as mock_container_client, \
        patch("azure.quantum.aio.job.base_job.upload_blob") as mock_upload:
        mock_blob_client.from_blob_url.return_value = Mock()
        mock_container_client.from_container_url.return_value = Mock()
        assert(pubo_problem.uploaded_blob_uri == None)
        actual_result = await pubo_problem.upload(mock_ws)
        mock_upload.get_blob_uri_with_sas_token = AsyncMock()
        azure.quantum.aio.job.base_job.upload_blob.assert_called_once()
コード例 #4
0
 def test_socket_closed(self):
     server = Mock()
     server.game.max_nb_ticks = 500
     socket = AsyncMock()
     socket.recv.side_effect = websockets.ConnectionClosed(0, "")
     gs, player = get_player(server, socket)
     player.logger = Mock()
     next_move = asyncio.run(player.request_next_move(123, gs))
     socket.send.assert_called_once()
     self.assertEqual((None, Action.FORWARD), next_move)
     player.logger.warning.assert_called_once()
     player.server.game.unregister_player.assert_called_once()
コード例 #5
0
 def test_exception(self):
     server = Mock()
     server.game.max_nb_ticks = 500
     socket = AsyncMock()
     socket.recv.side_effect = Exception("dummy")
     gs, player = get_player(server, socket)
     player.logger = Mock()
     next_move = asyncio.run(player.request_next_move(123, gs))
     socket.send.assert_called_once()
     self.assertEqual((None, Action.FORWARD), next_move)
     player.logger.warning.assert_called_once()
     player.server.game.unregister_player.assert_not_called()
     self.assertTrue(len(player.player_state.history) > 0)
コード例 #6
0
    def test_send_winner_socket_closed(self):
        server = Mock()
        socket = AsyncMock()
        socket.send.side_effect = websockets.ConnectionClosed(0, "")
        viewer = SocketViewer(server, socket)
        viewer.logger = Mock()

        gs = GameState(GameMap(3))
        ps = PlayerState(1, "p1", gs.game_map, Position(1, 1))
        asyncio.run(viewer.send_winner(123, ps))

        viewer.logger.warning.assert_called_once()
        server.game.unregister_viewer.assert_called_once()
コード例 #7
0
    def test_send_tick_socket_closed(self):
        server = Mock()
        server.game.max_nb_ticks = 500
        socket = AsyncMock()
        socket.send.side_effect = websockets.ConnectionClosed(0, "")
        viewer = SocketViewer(server, socket)
        viewer.logger = Mock()

        gs = GameState(GameMap(3))
        asyncio.run(viewer.send_tick(123, gs))

        viewer.logger.warning.assert_called_once()
        server.game.unregister_viewer.assert_called_once()
コード例 #8
0
    def test_record_tick(self):
        server = Mock()
        server.game.max_nb_ticks = 500
        recorder = JsonRecorder(server.game, "/tmp/out.json")

        gs = GameState(GameMap(3))
        nb = 10
        for i in range(nb):
            recorder.record_tick(100 + i, gs)

        self.assertEqual(len(recorder.ticks), nb)
コード例 #9
0
    def test_send_winner(self):
        server = Mock()
        server.game.max_nb_ticks = 500
        socket = AsyncMock()
        viewer = SocketViewer(server, socket)

        gs = GameState(GameMap(3))
        ps = PlayerState(1, "p1", gs.game_map, Position(1, 1))
        asyncio.run(viewer.send_winner(123, ps))

        socket.send.assert_called_once()
        data = json.loads(socket.send.call_args[0][0])

        self.assertEqual(data["type"], "winner")
        self.assertEqual(data["tick"], 123)
        self.assertEqual(data["winner"]["name"], "p1")
コード例 #10
0
    def test_send_tick(self):
        server = Mock()
        server.game.max_nb_ticks = 500
        socket = AsyncMock()
        viewer = SocketViewer(server, socket)

        gs = GameState(GameMap(3))
        nb = 10
        for i in range(nb):
            asyncio.run(viewer.send_tick(100 + i, gs))

        self.assertEqual(nb, socket.send.call_count)
        data = json.loads(socket.send.call_args[0][0])

        self.assertEqual(data["type"], "tick")
        self.assertEqual(data["game"]["tick"], 100 + nb - 1)