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()
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
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()
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()
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)
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()
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()
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)
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")
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)