Ejemplo n.º 1
0
    async def test_success(self):
        request = await self.client.post('/create-timer', data=timers_pb2.CreateTimerRequest(owner_id=667,
                                                                                             entity_id=777,
                                                                                             type=3,
                                                                                             speed=4,
                                                                                             border=500,
                                                                                             resources=66,
                                                                                             callback_data='abc').SerializeToString())

        request = await self.client.post('/change-speed', data=timers_pb2.ChangeSpeedRequest(owner_id=667,
                                                                                             entity_id=777,
                                                                                             type=3,
                                                                                             speed=40).SerializeToString())
        answer = await self.check_success(request, timers_pb2.ChangeSpeedResponse)

        queue_timer_id, queue_finish_at = operations.TIMERS_QUEUE.first()

        self.assertEqual(answer.timer.id, queue_timer_id)
        self.assertEqual(datetime.datetime.fromtimestamp(answer.timer.finish_at), queue_finish_at)

        results = await db.sql('SELECT * FROM timers')

        self.assertEqual(len(results), 1)

        self.assertEqual(results[0]['id'], answer.timer.id)
        self.assertEqual(results[0]['owner'], 667)
        self.assertEqual(results[0]['entity'], 777)
        self.assertEqual(results[0]['type'], 3)
        self.assertEqual(results[0]['speed'], 40)
Ejemplo n.º 2
0
    async def test_undefined_type(self):
        request = await self.client.post('/create-timer', data=timers_pb2.CreateTimerRequest(owner_id=667,
                                                                                             entity_id=777,
                                                                                             type=76574,
                                                                                             speed=4,
                                                                                             border=500,
                                                                                             callback_data='abc').SerializeToString())

        await self.check_error(request, error='timers.create_timer.unknown_type')
Ejemplo n.º 3
0
    async def test_duplicate_timer(self):
        request = await self.client.post('/create-timer', data=timers_pb2.CreateTimerRequest(owner_id=667,
                                                                                             entity_id=777,
                                                                                             type=3,
                                                                                             speed=4,
                                                                                             border=500,
                                                                                             resources=0,
                                                                                             callback_data='abc').SerializeToString())

        request = await self.client.post('/create-timer', data=timers_pb2.CreateTimerRequest(owner_id=667,
                                                                                             entity_id=777,
                                                                                             type=3,
                                                                                             speed=4,
                                                                                             border=500,
                                                                                             callback_data='abc').SerializeToString())

        await self.check_error(request, error='timers.create_timer.duplicate_timer')

        results = await db.sql('SELECT * FROM timers')
        self.assertEqual(len(results), 1)
Ejemplo n.º 4
0
    async def test_no_timer_found(self):
        request = await self.client.post('/create-timer', data=timers_pb2.CreateTimerRequest(owner_id=667,
                                                                                             entity_id=777,
                                                                                             type=3,
                                                                                             speed=4,
                                                                                             border=500,
                                                                                             resources=66,
                                                                                             callback_data='abc').SerializeToString())

        request = await self.client.post('/change-speed', data=timers_pb2.ChangeSpeedRequest(owner_id=667,
                                                                                             entity_id=888,
                                                                                             type=3,
                                                                                             speed=40).SerializeToString())
        await self.check_error(request, error='timers.change_speed.timer_not_found')
Ejemplo n.º 5
0
def create_cards_timer(account_id):
    try:
        tt_api.sync_request(
            url=conf.accounts_settings.TT_PLAYERS_TIMERS_CREATE_TIMER,
            data=timers_pb2.CreateTimerRequest(
                owner_id=account_id,
                entity_id=0,
                type=relations.PLAYER_TIMERS_TYPES.CARDS_MINER.value,
                speed=logic_cards_constants.NORMAL_PLAYER_SPEED,
                border=logic_cards_constants.RECEIVE_TIME,
                resources=0,
                callback_data=''),
            AnswerType=timers_pb2.CreateTimerResponse)
    except common_exceptions.TTAPIUnexpectedAPIStatus:
        raise exceptions.CanNotCreateCardsTimer()
Ejemplo n.º 6
0
    def handle(self, *args, **options):

        now = datetime.datetime.utcnow()

        for account in models.Account.objects.all().order_by('id').iterator():
            print('process account {}'.format(account.id))

            speed = logic_cards_constants.NORMAL_PLAYER_SPEED

            if now < account.premium_end_at:
                speed = logic_cards_constants.PREMIUM_PLAYER_SPEED

            tt_api.sync_request(
                url=conf.accounts_settings.TT_PLAYERS_TIMERS_CREATE_TIMER,
                data=timers_pb2.CreateTimerRequest(
                    owner_id=account.id,
                    entity_id=0,
                    type=relations.PLAYER_TIMERS_TYPES.CARDS_MINER.value,
                    speed=speed,
                    border=logic_cards_constants.RECEIVE_TIME,
                    resources=random.randint(
                        0, logic_cards_constants.RECEIVE_TIME - 1),
                    callback_data=''),
                AnswerType=timers_pb2.CreateTimerResponse)