Beispiel #1
0
 def flush_ai(self):
     client = Client()
     while True:
         try:
             client.consume('gameplay-ai')
         except Exception as e:
             break
Beispiel #2
0
    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)
Beispiel #3
0
    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)
Beispiel #4
0
    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)