class HighLevelResponderTests(unittest.TestCase): def test_it_hooks_into_socket_sends_and_receives(self): transmitter = JsonTransmitter(self.connection_socket) handler = ResponseHandler(MoveGenerator()) responder = Responder(transmitter, handler) game_info = json.dumps({"board": {1: "o", 3: "o"}, "depth": 20}) self.sock.send(game_info) responder.respond() data_received = self.sock.recv(1024) updated_game = json.loads(data_received) WIN_MOVE = 2 self.assertEqual(WIN_MOVE, updated_game["ai_move"]) self.assertEqual("o", updated_game["winner_after_ai_move"]) self.assertEqual(None, updated_game["winner_on_board"]) def setUp(self): PORT = random.randint(2000, 60000) self.server = ServerSocket("localhost", PORT) self.server.initialize_and_listen_for_connections() self.sock = socket.socket() self.sock.connect(("localhost", PORT)) self.connection_socket = self.server.accept_connection_and_return_socket( ) def tearDown(self): self.sock.close() self.connection_socket.close()
class HighLevelResponderTests(unittest.TestCase): def test_it_hooks_into_socket_sends_and_receives(self): transmitter = JsonTransmitter(self.connection_socket) handler = ResponseHandler(MoveGenerator()) responder = Responder(transmitter,handler) game_info = json.dumps({ "board": {1:"o",3:"o"}, "depth": 20 }) self.sock.send(game_info) responder.respond() data_received = self.sock.recv(1024) updated_game = json.loads(data_received) WIN_MOVE = 2 self.assertEqual(WIN_MOVE, updated_game["ai_move"]) self.assertEqual("o" ,updated_game["winner_after_ai_move"]) self.assertEqual(None, updated_game["winner_on_board"]) def setUp(self): PORT = random.randint(2000,60000) self.server = ServerSocket("localhost",PORT) self.server.initialize_and_listen_for_connections() self.sock = socket.socket() self.sock.connect(("localhost",PORT)) self.connection_socket = self.server.accept_connection_and_return_socket() def tearDown(self): self.sock.close() self.connection_socket.close()
def test_accept_connection_delegates_to_its_socket(self): server = ServerSocket("localhost",5000) server.socket = mock.Mock() server.socket.accept = mock.MagicMock(return_value=("client socket","address")) self.assertEqual("client socket", server.accept_connection_and_return_socket())
from move_generator import MoveGenerator from response_handler import ResponseHandler from response_thread import ResponseThread command_line_parser = OptionParser() command_line_parser.add_option("-p", "--port", type="int", dest="port", help="Port for the server to run on") command_line_parser.set_defaults(port=5000) (options, args) = command_line_parser.parse_args() server = ServerSocket("localhost", options.port) print "Server starting on port %d..." % options.port server.initialize_and_listen_for_connections() while True: try: connection_socket = server.accept_connection_and_return_socket() transmitter = JsonTransmitter(connection_socket) move_generator = MoveGenerator() handler = ResponseHandler(move_generator) responder = Responder(transmitter, handler) ResponseThread(responder).start() except KeyboardInterrupt: print "\nShutting down server..." break