def testPolyglot_2(self): """Testing Polyglot book creation""" widgets = uistuff.GladeWidgets("PyChess.glade") gamewidget.setWidgets(widgets) perspective_manager.set_widgets(widgets) self.games_persp = Games() perspective_manager.add_perspective(self.games_persp) self.database_persp = Database() self.database_persp.create_toolbuttons() perspective_manager.add_perspective(self.database_persp) PGN = "polyglot.pgn" if os.path.isfile(PGN): os.remove(PGN) with open(PGN, "w") as f: f.write(pgn) self.database_persp.open_chessfile(PGN) BIN = "polyglot_book.bin" if os.path.isfile(BIN): os.remove(BIN) def coro(): def on_book_created(persp, event): self.assertTrue(os.path.isfile(BIN)) book.path = BIN book.bookfile = True testcase = testcases[0] board = LBoard(Board) board.applyFen(testcase[0]) openings = book.getOpenings(board) self.assertEqual(sorted(openings), sorted([(newMove(E2, E4), 2, 0), (newMove(A2, A4), 0, 0)])) testcase = testcases[-1] board = LBoard(Board) board.applyFen(testcase[0]) openings = book.getOpenings(board) self.assertEqual(openings, []) event.set() event = asyncio.Event() self.database_persp.connect("bookfile_created", on_book_created, event) self.database_persp.create_book(BIN) yield from event.wait() loop = asyncio.get_event_loop() loop.set_debug(enabled=True) loop.run_until_complete(coro())
def addPerspectives(self): perspective_manager.set_widgets(self.widgets) for persp in (Welcome, Games, FICS, Database, Learn): perspective = persp() perspective_manager.add_perspective(perspective) perspective.create_toolbuttons() if persp == Database: perspective.connect("chessfile_opened", self.on_chessfile_opened) elif persp == Games: perspective.connect("gmwidg_created", self.on_gmwidg_created) newimage = get_pixbuf("glade/new24.png") new_button = Gtk.ToolButton.new(Gtk.Image.new_from_pixbuf(newimage)) new_button.set_tooltip_text(_("New Game")) new_button.connect("clicked", self.glade_handlers.on_new_game1_activate) perspective_manager.toolbar.insert(new_button, 0) openimage = get_pixbuf("glade/open24.png") open_button = Gtk.ToolButton.new(Gtk.Image.new_from_pixbuf(openimage)) open_button.set_tooltip_text(_("Open Game")) open_button.connect("clicked", self.glade_handlers.on_load_game1_activate) perspective_manager.toolbar.insert(open_button, 1)
def setUp(self): widgets = uistuff.GladeWidgets("PyChess.glade") gamewidget.setWidgets(widgets) perspective_manager.set_widgets(widgets) self.games_persp = Games() perspective_manager.add_perspective(self.games_persp) self.learn_persp = Learn() perspective_manager.add_perspective(self.learn_persp)
def setUp(self): widgets = uistuff.GladeWidgets("PyChess.glade") gamewidget.setWidgets(widgets) perspective_manager.set_widgets(widgets) self.welcome_persp = Welcome() perspective_manager.add_perspective(self.welcome_persp) self.games_persp = Games() perspective_manager.add_perspective(self.games_persp)
def setUp(self): widgets = uistuff.GladeWidgets("PyChess.glade") gamewidget.setWidgets(widgets) perspective_manager.set_widgets(widgets) self.games_persp = Games() perspective_manager.add_perspective(self.games_persp) self.database_persp = Database() self.database_persp.create_toolbuttons() perspective_manager.add_perspective(self.database_persp)
def testPolyglot_2(self): """Testing Polyglot book creation""" widgets = uistuff.GladeWidgets("PyChess.glade") gamewidget.setWidgets(widgets) perspective_manager.set_widgets(widgets) self.games_persp = Games() perspective_manager.add_perspective(self.games_persp) self.database_persp = Database() self.database_persp.create_toolbuttons() perspective_manager.add_perspective(self.database_persp) self.database_persp.open_chessfile(PGN) @asyncio.coroutine def coro(): def on_book_created(persp, event): self.assertTrue(os.path.isfile(BIN)) testcase = testcases[0] board = LBoard(Board) board.applyFen(testcase[0]) openings = book.getOpenings(board) self.assertEqual( sorted(openings), sorted([(newMove(E2, E4), 2, 0), (newMove(A2, A4), 0, 0)])) testcase = testcases[-1] board = LBoard(Board) board.applyFen(testcase[0]) openings = book.getOpenings(board) self.assertEqual(openings, []) event.set() event = asyncio.Event() self.database_persp.connect("bookfile_created", on_book_created, event) self.database_persp.create_book(BIN) yield from event.wait() loop = asyncio.get_event_loop() loop.set_debug(enabled=True) loop.run_until_complete(coro())
def setUp(self): widgets = uistuff.GladeWidgets("PyChess.glade") gamewidget.setWidgets(widgets) perspective_manager.set_widgets(widgets) self.games_persp = Games() perspective_manager.add_perspective(self.games_persp) self.learn_persp = Learn() self.learn_persp.create_toolbuttons() perspective_manager.add_perspective(self.learn_persp) perspective_manager.current_perspective = self.learn_persp dd = DiscovererDialog(discoverer) self.dd_task = create_task(dd.start())
def setUp(self): EmittingTestCase.setUp(self) self.manager = self.connection.bm widgets = uistuff.GladeWidgets("PyChess.glade") gamewidget.setWidgets(widgets) perspective_manager.set_widgets(widgets) self.games_persp = Games() perspective_manager.add_perspective(self.games_persp) self.fics_persp = FICS() perspective_manager.add_perspective(self.fics_persp) self.fics_persp.connection = self.connection self.connection.bm.connect("obsGameCreated", self.fics_persp.onObserveGameCreated)
def addPerspectives(self): perspective_manager.set_widgets(self.widgets) for persp in (Welcome, Games, FICS, Database): perspective = persp() perspective_manager.add_perspective(perspective) perspective.create_toolbuttons() if persp == Database: perspective.connect("chessfile_opened", self.on_chessfile_opened) new_button = Gtk.ToolButton.new_from_stock(Gtk.STOCK_NEW) new_button.set_tooltip_text(_("New Game")) new_button.connect("clicked", self.glade_handlers.on_new_game1_activate) perspective_manager.toolbar.insert(new_button, 0) open_button = Gtk.ToolButton.new_from_stock(Gtk.STOCK_OPEN) open_button.set_tooltip_text(_("Open Game")) open_button.connect("clicked", self.glade_handlers.on_load_game1_activate) perspective_manager.toolbar.insert(open_button, 1)
def setUp(self): EmittingTestCase.setUp(self) self.loop.set_debug(enabled=True) self.manager = self.connection.bm widgets = uistuff.GladeWidgets("PyChess.glade") gamewidget.setWidgets(widgets) perspective_manager.set_widgets(widgets) self.games_persp = Games() perspective_manager.add_perspective(self.games_persp) self.fics_persp = FICS() perspective_manager.add_perspective(self.fics_persp) self.fics_persp.connection = self.connection self.connection.bm.connect("obsGameCreated", self.fics_persp.onObserveGameCreated) self.connection.bm.connect("exGameCreated", self.fics_persp.onObserveGameCreated)
def addPerspectives(self): perspective_manager.set_widgets(self.widgets) for persp in (Welcome, Games, FICS, Database, Learn): perspective = persp() perspective_manager.add_perspective(perspective) perspective.create_toolbuttons() if persp == Database: perspective.connect("chessfile_opened", self.on_chessfile_opened) elif persp == Games: perspective.connect("gmwidg_created", self.on_gmwidg_created) new_button = Gtk.ToolButton.new_from_stock(Gtk.STOCK_NEW) new_button.set_tooltip_text(_("New Game")) new_button.connect("clicked", self.glade_handlers.on_new_game1_activate) perspective_manager.toolbar.insert(new_button, 0) open_button = Gtk.ToolButton.new_from_stock(Gtk.STOCK_OPEN) open_button.set_tooltip_text(_("Open Game")) open_button.connect("clicked", self.glade_handlers.on_load_game1_activate) perspective_manager.toolbar.insert(open_button, 1)
def setUp(self): if sys.platform == "win32": from asyncio.windows_events import ProactorEventLoop loop = ProactorEventLoop() asyncio.set_event_loop(loop) else: loop = asyncio.SelectorEventLoop() asyncio.set_event_loop(loop) self.loop = asyncio.get_event_loop() self.loop.set_debug(enabled=True) widgets = uistuff.GladeWidgets("PyChess.glade") gamewidget.setWidgets(widgets) perspective_manager.set_widgets(widgets) self.welcome_persp = Welcome() perspective_manager.add_perspective(self.welcome_persp) self.games_persp = Games() perspective_manager.add_perspective(self.games_persp)
def test3(self): """ Accepting a seek """ loop = asyncio.get_event_loop() loop.set_debug(enabled=True) widgets = uistuff.GladeWidgets("PyChess.glade") gamewidget.setWidgets(widgets) perspective_manager.set_widgets(widgets) self.welcome_persp = Welcome() perspective_manager.add_perspective(self.welcome_persp) self.games_persp = Games() perspective_manager.add_perspective(self.games_persp) self.fics_persp = FICS() perspective_manager.add_perspective(self.fics_persp) self.fics_persp.create_toolbuttons() self.lounge = perspective_manager.get_perspective("fics") self.lounge.open_lounge(self.connection, self.connection, "freechess.org") lines = [ "<s> 11 w=WLTL ti=00 rt=2030 t=1 i=0 r=r tp=lightning c=? rr=0-9999 a=t f=f", "fics% ", BLOCK_START + "52" + BLOCK_SEPARATOR + "158" + BLOCK_SEPARATOR, "<sr> 11 16", "fics% ", "Creating: WLTL (2030) gbtami (1771) rated lightning 1 0", "{Game 85 (WLTL vs. gbtami) Creating rated lightning match.}", "", "<12> rnbqkbnr pppppppp -------- -------- -------- -------- PPPPPPPP RNBQKBNR W -1 1 1 1 1 0 85 WLTL gbtami -1 1 0 39 39 60000 60000 1 none (0:00.000) none 1 0 0\n\nGame 85: A disconnection will be considered a forfeit.", BLOCK_END, "fics% " ] me = self.connection.players.get('gbtami') me.ratings[TYPE_LIGHTNING] = 1771 opponent = self.connection.players.get('WLTL') opponent.ratings[TYPE_LIGHTNING] = 2030 game = FICSGame(opponent, me, gameno=85, rated=True, game_type=GAME_TYPES['lightning'], private=False, minutes=1, inc=0, board=FICSBoard(60000, 60000, fen=FEN_START)) me.game = game opponent.game = game self.runAndAssertEquals("playGameCreated", lines, (game, )) gamemodel = self.games_persp.cur_gmwidg().gamemodel def on_game_started(game): p1 = gamemodel.players[1] p1.move_queue.put_nowait(Move(newMove(G8, F6))) gamemodel.connect("game_started", on_game_started) lines = [ "<12> rnbqkbnr pppppppp -------- -------- -------- -P------ P-PPPPPP RNBQKBNR B -1 1 1 1 1 0 85 WLTL gbtami 1 1 0 39 39 60000 60000 1 P/b2-b3 (0:00.000) b3 1 0 0", "fics% " ] game = self.connection.games[game] def coro(): yield from self.connection.process_lines(lines) self.loop.run_until_complete(coro()) self.assertEqual(game.move_queue.qsize(), 0) lines = [ BLOCK_START + "59" + BLOCK_SEPARATOR + "1" + BLOCK_SEPARATOR, "<12> rnbqkb-r pppppppp -----n-- -------- -------- -P------ P-PPPPPP RNBQKBNR W -1 1 1 1 1 1 85 WLTL gbtami -1 1 0 39 39 60000 60000 2 N/g8-f6 (0:00.000) Nf6 1 1 0", BLOCK_END, "fics% ", "<12> rnbqkb-r pppppppp -----n-- -------- -------- -P----P- P-PPPP-P RNBQKBNR B -1 1 1 1 1 0 85 WLTL gbtami 1 1 0 39 39 59900 60000 2 P/g2-g3 (0:00.100) g3 1 1 285", "fics% " ] def coro(): yield from self.connection.process_lines(lines) self.loop.run_until_complete(coro()) self.assertEqual(game.move_queue.qsize(), 0) self.assertEqual(gamemodel.ply, 3) print(gamemodel.boards[-1])
def test3(self): """ Accepting a seek """ loop = asyncio.get_event_loop() loop.set_debug(enabled=True) widgets = uistuff.GladeWidgets("PyChess.glade") gamewidget.setWidgets(widgets) perspective_manager.set_widgets(widgets) self.welcome_persp = Welcome() perspective_manager.add_perspective(self.welcome_persp) self.games_persp = Games() perspective_manager.add_perspective(self.games_persp) self.fics_persp = FICS() perspective_manager.add_perspective(self.fics_persp) self.fics_persp.create_toolbuttons() self.lounge = perspective_manager.get_perspective("fics") self.lounge.open_lounge(self.connection, self.connection, "freechess.org") lines = [ "<s> 11 w=WLTL ti=00 rt=2030 t=1 i=0 r=r tp=lightning c=? rr=0-9999 a=t f=f", "fics% ", BLOCK_START + "52" + BLOCK_SEPARATOR + "158" + BLOCK_SEPARATOR, "<sr> 11 16", "fics% ", "Creating: WLTL (2030) gbtami (1771) rated lightning 1 0", "{Game 85 (WLTL vs. gbtami) Creating rated lightning match.}", "", "<12> rnbqkbnr pppppppp -------- -------- -------- -------- PPPPPPPP RNBQKBNR W -1 1 1 1 1 0 85 WLTL gbtami -1 1 0 39 39 60000 60000 1 none (0:00.000) none 1 0 0\n\nGame 85: A disconnection will be considered a forfeit.", BLOCK_END, "fics% "] me = self.connection.players.get('gbtami') me.ratings[TYPE_LIGHTNING] = 1771 opponent = self.connection.players.get('WLTL') opponent.ratings[TYPE_LIGHTNING] = 2030 game = FICSGame(opponent, me, gameno=85, rated=True, game_type=GAME_TYPES['lightning'], private=False, minutes=1, inc=0, board=FICSBoard(60000, 60000, fen=FEN_START)) me.game = game opponent.game = game self.runAndAssertEquals("playGameCreated", lines, (game, )) gamemodel = self.games_persp.cur_gmwidg().gamemodel def on_game_started(game): p1 = gamemodel.players[1] p1.move_queue.put_nowait(Move(newMove(G8, F6))) gamemodel.connect("game_started", on_game_started) lines = [ "<12> rnbqkbnr pppppppp -------- -------- -------- -P------ P-PPPPPP RNBQKBNR B -1 1 1 1 1 0 85 WLTL gbtami 1 1 0 39 39 60000 60000 1 P/b2-b3 (0:00.000) b3 1 0 0", "fics% "] game = self.connection.games[game] def coro(): yield from self.connection.process_lines(lines) self.loop.run_until_complete(coro()) self.assertEqual(game.move_queue.qsize(), 0) lines = [ BLOCK_START + "59" + BLOCK_SEPARATOR + "1" + BLOCK_SEPARATOR, "<12> rnbqkb-r pppppppp -----n-- -------- -------- -P------ P-PPPPPP RNBQKBNR W -1 1 1 1 1 1 85 WLTL gbtami -1 1 0 39 39 60000 60000 2 N/g8-f6 (0:00.000) Nf6 1 1 0", BLOCK_END, "fics% ", "<12> rnbqkb-r pppppppp -----n-- -------- -------- -P----P- P-PPPP-P RNBQKBNR B -1 1 1 1 1 0 85 WLTL gbtami 1 1 0 39 39 59900 60000 2 P/g2-g3 (0:00.100) g3 1 1 285", "fics% "] def coro(): yield from self.connection.process_lines(lines) self.loop.run_until_complete(coro()) self.assertEqual(game.move_queue.qsize(), 0) self.assertEqual(gamemodel.ply, 3) print(gamemodel.boards[-1])