def flush_ai(self): client = Client() while True: try: client.consume('gameplay-ai') except Exception as e: break
def test_websockets_decorators(self): class WebsocketConsumer(websockets.WebsocketConsumer): strict_ordering = True def connect(self, message, **kwargs): self.order = message['order'] with apply_routes([route_class(WebsocketConsumer, path='/path')]): client = Client() client.send('websocket.connect', {'path': '/path', 'order': 1}) client.send('websocket.connect', {'path': '/path', 'order': 0}) client.consume('websocket.connect') self.assertEqual(client.consume('websocket.connect').order, 0) self.assertEqual(client.consume('websocket.connect').order, 1)
def test_ai_play(self): room = new_room_data( room_id='test', player_number=5, ) for i in range(5): nickname = ['doge', 'bitcoin', 'ethereum', 'egger', 'ha'] create_user(username='******'.format(nickname[i]), password='******', nickname='*AI-{}'.format(nickname[i]), email='*****@*****.**') for i in range(5): room['players'].append(AI(i)) room['game']['state'] = RoomState.BIDDING cache.set('room:test', room) client = Client() client.send_and_consume('gameplay-start', {'room_id': 'test'}) room = cache.get('room:test') while room['game']['state'] is RoomState.BIDDING: client.consume('gameplay-bid', fail_on_none=False) self.flush_ai() room = cache.get('room:test') president = room['game']['president'] client.consume('gameplay-friend-select') room = cache.get('room:test') for _ in range(50): client.consume('gameplay-play', fail_on_none=False) self.flush_ai() room = cache.get('room:test') self.assertIs(room['game']['state'], RoomState.RESULT) history = GameHistory.objects.all()[0] self.assertEqual(president, history.president.username)