def test_move_wrong_piece_to_dest(self): ''''Test requesting moving a wrong piece to a destination cell. ''' #Setup board with a two white pawns: board = Board() pawn1 = Pawn(board.white) pawn2 = Pawn(board.white) board[0, 4].piece = King(board.black) board[7, 4].piece = King(board.white) col1, col2, row = 1, 3, 5 board[col1, row].piece = pawn1 board[col2, row].piece = pawn2 #Simulate BoardController: selected_cell = board[col1, row] #board.on_cell_selected(selected_cell) #Preconditions: self.assertTrue(board.can_move_piece_in_cell_to(selected_cell, (col1, row-1))) #Try moving pawn2 to the destination for pawn1: self.assertFalse(board.can_move_piece_in_cell_to(board[col2,row], (col1, row-1))) self.assertRaises(MoveError, board.move_piece_in_cell_to, pawn2.owner, (col2,row), (col1, row-1))
def test_move_piece_in_cell_to_dest(self): '''Test moving a piece in a selected cell to a given destination. This method evaluates performing moves on the board in the same way the BoardController class does. ''' #Setup board with a white pawn at start position (1,6) board = Board() pawn = Pawn(board.white) board[0, 4].piece = King(board.black) board[7, 4].piece = King(board.white) col, row = 1, 6 board[col, row].piece = pawn #Simulate BoardController: selected_cell = board[col, row] #board.on_cell_selected(selected_cell) #Preconditions: self.assertTrue(board.can_move_piece_in_cell_to(selected_cell, (col, row-1))) self.assertTrue(board.can_move_piece_in_cell_to(selected_cell, (col, row-2))) #Check whether cells are aware of the moves that take pieces to them #self.assertTrue(len(board[col, row-1].moves) == 1) #self.assertTrue(len(board[col, row-2].moves) == 1) #Perform movement: board.move_piece_in_cell_to(pawn.owner, (col, row), (col, row-1)) #Check whether cells have been clean self.assertTrue(len(board[col, row-1].moves) == 0) self.assertTrue(len(board[col, row-2].moves) == 0)