Beispiel #1
0
 def __init__(self, tc, player_b=None, player_w=None, **kwargs):
     self.tc = tc
     kwargs.setdefault('board_size', 9)
     game_controller = gtp_controller.Game_controller('one', 'two')
     if player_b is None:
         player_b = gtp_engine_fixtures.Test_player()
     if player_w is None:
         player_w = gtp_engine_fixtures.Test_player()
     engine_b = gtp_engine_fixtures.make_player_engine(player_b)
     engine_w = gtp_engine_fixtures.make_player_engine(player_w)
     channel_b = gtp_controller_test_support.Testing_gtp_channel(engine_b)
     channel_w = gtp_controller_test_support.Testing_gtp_channel(engine_w)
     controller_b = gtp_controller.Gtp_controller(channel_b, 'player one')
     controller_w = gtp_controller.Gtp_controller(channel_w, 'player two')
     game_controller.set_player_controller('b', controller_b)
     game_controller.set_player_controller('w', controller_w)
     game = gtp_games.Gtp_game(game_controller, **kwargs)
     self.game_controller = game_controller
     self.game = game
     self.controller_b = controller_b
     self.controller_w = controller_w
     self.channel_b = channel_b
     self.channel_w = channel_w
     self.engine_b = channel_b.engine
     self.engine_w = channel_w.engine
     self.player_b = channel_b.engine.player
     self.player_w = channel_w.engine.player
Beispiel #2
0
def test_testing_gtp_channel_sequencing(tc):
    engine = gtp_engine_fixtures.get_test_engine()
    channel = gtp_controller_test_support.Testing_gtp_channel(engine)
    tc.assertRaisesRegexp(SupporterError, "response request without command",
                          channel.get_response)
    channel.send_command("test", [])
    tc.assertRaisesRegexp(SupporterError, "two commands in a row",
                          channel.send_command, "test", [])
Beispiel #3
0
def test_testing_gtp_channel_fatal_errors(tc):
    engine = gtp_engine_fixtures.get_test_engine()
    channel = gtp_controller_test_support.Testing_gtp_channel(engine)
    channel.send_command("fatal", [])
    tc.assertEqual(channel.get_response(), (True, "fatal error"))
    tc.assertRaisesRegexp(GtpChannelClosed,
                          "engine has closed the response channel",
                          channel.get_response)
    channel.close()
Beispiel #4
0
def test_testing_gtp_channel_alt(tc):
    engine = gtp_engine_fixtures.get_test_engine()
    channel = gtp_controller_test_support.Testing_gtp_channel(engine)
    channel.engine_exit_breaks_commands = False
    channel.send_command("test", [])
    tc.assertEqual(channel.get_response(), (False, "test response"))
    channel.send_command("quit", [])
    tc.assertEqual(channel.get_response(), (False, ""))
    channel.send_command("test", [])
    tc.assertRaisesRegexp(GtpChannelClosed,
                          "engine has closed the response channel",
                          channel.get_response)
    channel.close()
Beispiel #5
0
def test_testing_gtp_channel(tc):
    engine = gtp_engine_fixtures.get_test_engine()
    channel = gtp_controller_test_support.Testing_gtp_channel(engine)
    channel.send_command("play", ["b", "a3"])
    tc.assertEqual(channel.get_response(), (True, "unknown command"))
    channel.send_command("test", [])
    tc.assertEqual(channel.get_response(), (False, "test response"))
    channel.send_command("multiline", [])
    tc.assertEqual(channel.get_response(),
                   (False, "first line  \n  second line\nthird line"))
    channel.send_command("quit", [])
    tc.assertEqual(channel.get_response(), (False, ""))
    tc.assertRaisesRegexp(GtpChannelClosed,
                          "engine has closed the command channel",
                          channel.send_command, "quit", [])
    channel.close()
Beispiel #6
0
def test_testing_gtp_force_error(tc):
    engine = gtp_engine_fixtures.get_test_engine()
    channel = gtp_controller_test_support.Testing_gtp_channel(engine)
    channel.fail_next_command = True
    tc.assertRaisesRegexp(GtpTransportError,
                          "forced failure for send_command_line",
                          channel.send_command, "test", [])
    channel.send_command("test", [])
    channel.fail_next_response = True
    tc.assertRaisesRegexp(GtpTransportError,
                          "forced failure for get_response_line",
                          channel.get_response)
    channel.force_next_response = "# error\n\n"
    tc.assertRaisesRegexp(
        GtpProtocolError,
        "no success/failure indication from engine: first line is `# error`",
        channel.get_response)
    channel.fail_close = True
    tc.assertRaisesRegexp(GtpTransportError, "forced failure for close",
                          channel.close)
Beispiel #7
0
def get_test_channel():
    """Return a Testing_gtp_channel connected to the test engine."""
    engine = get_test_engine()
    return gtp_controller_test_support.Testing_gtp_channel(engine)