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)
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')
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)
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')
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()
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)