Skip to content

Commit 06e3145

Browse files
committed
Move XBoard opponent tests to own method
1 parent a904617 commit 06e3145

1 file changed

Lines changed: 49 additions & 6 deletions

File tree

test.py

Lines changed: 49 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -3542,14 +3542,8 @@ async def main():
35423542
board.push_san("d4")
35433543
board.push_san("Nf6")
35443544
board.push_san("c4")
3545-
opponent = chess.engine.Opponent("Turk", "Mechanical", 2100, True)
3546-
engine_rating = 3600
3547-
await protocol.send_opponent_information(opponent=opponent, engine_rating=engine_rating)
35483545

35493546
mock.expect("new")
3550-
mock.expect("name Mechanical Turk")
3551-
mock.expect("rating 3600 2100")
3552-
mock.expect("computer")
35533547
mock.expect("force")
35543548
mock.expect("d2d4")
35553549
mock.expect("g8f6")
@@ -3595,6 +3589,55 @@ async def main():
35953589
asyncio.set_event_loop_policy(chess.engine.EventLoopPolicy())
35963590
asyncio.run(main())
35973591

3592+
def test_xboard_opponent(self):
3593+
async def main():
3594+
protocol = chess.engine.XBoardProtocol()
3595+
mock = chess.engine.MockTransport(protocol)
3596+
3597+
mock.expect("xboard")
3598+
mock.expect("protover 2", ["feature ping=1 setboard=1 name=1 done=1"])
3599+
await protocol.initialize()
3600+
mock.assert_done()
3601+
3602+
limit = chess.engine.Limit(time=5)
3603+
board = chess.Board()
3604+
opponent = chess.engine.Opponent("Turk", "Mechanical", 2100, True)
3605+
await protocol.send_opponent_information(opponent=opponent, engine_rating=3600)
3606+
3607+
mock.expect("new")
3608+
mock.expect("name Mechanical Turk")
3609+
mock.expect("rating 3600 2100")
3610+
mock.expect("computer")
3611+
mock.expect("force")
3612+
mock.expect("st 5")
3613+
mock.expect("nopost")
3614+
mock.expect("easy")
3615+
mock.expect("go", ["move e2e4"])
3616+
mock.expect_ping()
3617+
result = await protocol.play(board, limit, game="game")
3618+
self.assertEqual(result.move, board.parse_san("e4"))
3619+
mock.assert_done()
3620+
3621+
new_opponent = chess.engine.Opponent("Turochamp", None, 800, True)
3622+
board.push(result.move)
3623+
mock.expect("new")
3624+
mock.expect("name Turochamp")
3625+
mock.expect("rating 3600 800")
3626+
mock.expect("computer")
3627+
mock.expect("force")
3628+
mock.expect("e2e4")
3629+
mock.expect("st 5")
3630+
mock.expect("nopost")
3631+
mock.expect("easy")
3632+
mock.expect("go", ["move e7e5"])
3633+
mock.expect_ping()
3634+
result = await protocol.play(board, limit, game="game", opponent=new_opponent)
3635+
self.assertEqual(result.move, board.parse_san("e5"))
3636+
mock.assert_done()
3637+
3638+
asyncio.set_event_loop_policy(chess.engine.EventLoopPolicy())
3639+
asyncio.run(main())
3640+
35983641
def test_xboard_analyse(self):
35993642
async def main():
36003643
protocol = chess.engine.XBoardProtocol()

0 commit comments

Comments
 (0)