def test_day_started_signal(self): self.assertFalse( portal_settings.SETTINGS_ACCOUNT_OF_THE_DAY_KEY in settings) self.assertEqual(MessagePrototype._db_count(), 0) with mock.patch( 'the_tale.accounts.workers.accounts_manager.Worker.cmd_run_account_method' ) as cmd_run_account_method: portal_signals.day_started.send(self.__class__) self.assertEqual(cmd_run_account_method.call_count, 1) self.assertEqual( cmd_run_account_method.call_args, mock.call(account_id=self.account.id, method_name='prolong_premium', data={ 'days': portal_settings.PREMIUM_DAYS_FOR_HERO_OF_THE_DAY })) self.assertEqual( int(settings[portal_settings.SETTINGS_ACCOUNT_OF_THE_DAY_KEY]), self.account.id) self.assertEqual(MessagePrototype._db_count(), 1) message = MessagePrototype._db_get_object(0) self.assertEqual(message.sender_id, get_system_user().id) self.assertEqual(message.recipient_id, self.account.id)
def test_add_achievement__notify(self): with self.check_delta(GiveItemTaskPrototype._db_count, 2): with self.check_delta(MessagePrototype._db_count, 1): self.account_achievements_1.add_achievement(self.achievement_1, notify=True) message = MessagePrototype._db_get_object(0) self.assertEqual(message.sender_id, get_system_user().id) self.assertEqual(message.recipient_id, self.account_1.id) self.assertTrue((url('accounts:achievements:group', self.achievement_1.group.slug) + ('#a%d' % self.achievement_1.id)) in message.text)
def test_add_achievement__notify(self): with self.check_delta(GiveItemTaskPrototype._db_count, 2): with self.check_delta(MessagePrototype._db_count, 1): self.account_achievements_1.add_achievement(self.achievement_1, notify=True) message = MessagePrototype._db_get_object(0) self.assertEqual(message.sender_id, get_system_user().id) self.assertEqual(message.recipient_id, self.account_1.id) self.assertTrue(( url('accounts:achievements:group', self.achievement_1.group.slug) + ('#a%d' % self.achievement_1.id)) in message.text)
def test_process__has_active_accounts(self): AccountPrototype._db_all().update(active_end_at=datetime.datetime.now() + datetime.timedelta(days=1)) self.request.process() self.assertEqual(MessagePrototype._db_count(), 1) message = MessagePrototype._db_get_object(0) self.assertEqual(message.recipient_id, self.account_2.id) self.assertEqual(message.sender_id, get_system_user().id) self.assertEqual(list(AccountPrototype._db_filter(premium_end_at__gt=datetime.datetime.now()).values_list('id', flat=True)), [self.account_2.id]) self.request.reload() self.assertTrue(self.request.state.is_PROCESSED) self.assertEqual(self.request.receiver_id, self.account_2.id)
def test_day_started_signal(self): self.assertFalse(portal_settings.SETTINGS_ACCOUNT_OF_THE_DAY_KEY in settings) self.assertEqual(MessagePrototype._db_count(), 0) with mock.patch('the_tale.accounts.workers.accounts_manager.Worker.cmd_run_account_method') as cmd_run_account_method: portal_signals.day_started.send(self.__class__) self.assertEqual(cmd_run_account_method.call_count, 1) self.assertEqual(cmd_run_account_method.call_args, mock.call(account_id=self.account.id, method_name='prolong_premium', data={'days': portal_settings.PREMIUM_DAYS_FOR_HERO_OF_THE_DAY})) self.assertEqual(int(settings[portal_settings.SETTINGS_ACCOUNT_OF_THE_DAY_KEY]), self.account.id) self.assertEqual(MessagePrototype._db_count(), 1) message = MessagePrototype._db_get_object(0) self.assertEqual(message.sender_id, get_system_user().id) self.assertEqual(message.recipient_id, self.account.id)
def test_process__has_active_accounts(self): AccountPrototype._db_all().update( active_end_at=datetime.datetime.now() + datetime.timedelta(days=1)) self.request.process() self.assertEqual(MessagePrototype._db_count(), 1) message = MessagePrototype._db_get_object(0) self.assertEqual(message.recipient_id, self.account_2.id) self.assertEqual(message.sender_id, get_system_user().id) self.assertEqual( list( AccountPrototype._db_filter( premium_end_at__gt=datetime.datetime.now()).values_list( 'id', flat=True)), [self.account_2.id]) self.request.reload() self.assertTrue(self.request.state.is_PROCESSED) self.assertEqual(self.request.receiver_id, self.account_2.id)