Exemple #1
0
    def invoke_method(self, hero):
        reward = self.get_reward_type()

        result = getattr(hero, reward.hero_method)(**reward.arguments)

        if reward.is_NORMAL_ARTIFACT or reward.is_RARE_ARTIFACT or reward.is_EPIC_ARTIFACT:
            message = self.MESSAGE % {'reward': result.html_label()}
        else:
            message = self.MESSAGE % {'reward': reward.description}

        self.arguments['message'] = message

        RandomPremiumRequestPrototype.create(hero.account_id, days=payments_settings.RANDOM_PREMIUM_DAYS)
Exemple #2
0
    def invoke_method(self, hero):
        reward = self.get_reward_type()

        result = getattr(hero, reward.hero_method)(**reward.arguments)

        if reward.is_NORMAL_ARTIFACT or reward.is_RARE_ARTIFACT or reward.is_EPIC_ARTIFACT:
            message = self.MESSAGE % {'reward': result.html_label()}
        else:
            message = self.MESSAGE % {'reward': reward.description}

        self.arguments['message'] = message

        RandomPremiumRequestPrototype.create(hero.account_id, days=payments_settings.RANDOM_PREMIUM_DAYS)
    def test_run_random_premium_requests_processing__has_requests_can_not_process(self):

        request = RandomPremiumRequestPrototype.create(self.account.id, days=30)

        self.worker.run_random_premium_requests_processing()

        request.reload()
        self.assertTrue(request.state.is_WAITING)
Exemple #4
0
    def test_run_random_premium_requests_processing__has_requests_can_not_process(self):

        request = RandomPremiumRequestPrototype.create(self.account.id, days=30)

        self.worker.run_random_premium_requests_processing()

        request.reload()
        self.assertTrue(request.state.is_WAITING)
Exemple #5
0
 def get_chest_intervals_count(self, date):
     starts = RandomPremiumRequestPrototype._db_all().values_list(
         'created_at', flat=True)
     return len([
         True for created_at in starts
         if created_at.date() <= date < (created_at + datetime.timedelta(
             days=shop_conf.payments_settings.RANDOM_PREMIUM_DAYS)).date()
     ])
Exemple #6
0
    def setUp(self):
        super(RandomPremiumRequestPrototypeTests, self).setUp()

        create_test_map()

        self.account_1 = self.accounts_factory.create_account()
        self.account_2 = self.accounts_factory.create_account()

        AccountPrototype._db_all().update(created_at=datetime.datetime.now() - accounts_settings.RANDOM_PREMIUM_CREATED_AT_BARRIER)

        self.request = RandomPremiumRequestPrototype.create(self.account_1.id, days=30)
Exemple #7
0
    def test_run_random_premium_requests_processing__has_requests_can_process(self):
        account_2 = self.accounts_factory.create_account()
        AccountPrototype._db_all().update(active_end_at=datetime.datetime.now() + datetime.timedelta(days=1),
                                          created_at=datetime.datetime.now() - accounts_settings.RANDOM_PREMIUM_CREATED_AT_BARRIER)

        request = RandomPremiumRequestPrototype.create(self.account.id, days=30)

        self.worker.run_random_premium_requests_processing()

        request.reload()
        self.assertTrue(request.state.is_PROCESSED)
        self.assertEqual(request.receiver_id, account_2.id)
    def setUp(self):
        super(RandomPremiumRequestPrototypeTests, self).setUp()
        create_test_map()

        result, account_id, bundle_id = register_user('test_user_1', '*****@*****.**', '111111')
        self.account_1 = AccountPrototype.get_by_id(account_id)

        result, account_id, bundle_id = register_user('test_user_2', '*****@*****.**', '111111')
        self.account_2 = AccountPrototype.get_by_id(account_id)

        AccountPrototype._db_all().update(created_at=datetime.datetime.now() - accounts_settings.RANDOM_PREMIUM_CREATED_AT_BARRIER)

        self.request = RandomPremiumRequestPrototype.create(self.account_1.id, days=30)
    def setUp(self):
        super(RandomPremiumRequestPrototypeTests, self).setUp()

        create_test_map()

        self.account_1 = self.accounts_factory.create_account()
        self.account_2 = self.accounts_factory.create_account()

        AccountPrototype._db_all().update(
            created_at=datetime.datetime.now() -
            accounts_settings.RANDOM_PREMIUM_CREATED_AT_BARRIER)

        self.request = RandomPremiumRequestPrototype.create(self.account_1.id,
                                                            days=30)
    def test_run_random_premium_requests_processing__has_requests_can_process(self):

        result, account_id, bundle_id = register_user('test_user_2', '*****@*****.**', '111111')
        account_2 = AccountPrototype.get_by_id(account_id)
        AccountPrototype._db_all().update(active_end_at=datetime.datetime.now() + datetime.timedelta(days=1),
                                          created_at=datetime.datetime.now() - accounts_settings.RANDOM_PREMIUM_CREATED_AT_BARRIER)

        request = RandomPremiumRequestPrototype.create(self.account.id, days=30)

        self.worker.run_random_premium_requests_processing()

        request.reload()
        self.assertTrue(request.state.is_PROCESSED)
        self.assertEqual(request.receiver_id, account_2.id)
Exemple #11
0
    def run_random_premium_requests_processing(self):
        while True:
            request = RandomPremiumRequestPrototype.get_unprocessed()

            if request is None:
                return

            self.logger.info('process random premium request %d' % request.id)

            if not request.process():
                self.logger.info('request %d not processed' % request.id)
                return
            else:
                self.logger.info('request %d processed' % request.id)
Exemple #12
0
    def run_random_premium_requests_processing(self):
        while True:
            request = RandomPremiumRequestPrototype.get_unprocessed()

            if request is None:
                return

            self.logger.info('process random premium request %d' % request.id)

            if not request.process():
                self.logger.info('request %d not processed' % request.id)
                return
            else:
                self.logger.info('request %d processed' % request.id)
Exemple #13
0
    def test_run_random_premium_requests_processing__has_requests_can_process(
            self):
        account_2 = self.accounts_factory.create_account()
        AccountPrototype._db_all().update(
            active_end_at=datetime.datetime.now() + datetime.timedelta(days=1),
            created_at=datetime.datetime.now() -
            accounts_settings.RANDOM_PREMIUM_CREATED_AT_BARRIER)

        request = RandomPremiumRequestPrototype.create(self.account.id,
                                                       days=30)

        self.worker.run_random_premium_requests_processing()

        request.reload()
        self.assertTrue(request.state.is_PROCESSED)
        self.assertEqual(request.receiver_id, account_2.id)
    def setUp(self):
        super(RandomPremiumRequestPrototypeTests, self).setUp()
        create_test_map()

        result, account_id, bundle_id = register_user('test_user_1',
                                                      '*****@*****.**',
                                                      '111111')
        self.account_1 = AccountPrototype.get_by_id(account_id)

        result, account_id, bundle_id = register_user('test_user_2',
                                                      '*****@*****.**',
                                                      '111111')
        self.account_2 = AccountPrototype.get_by_id(account_id)

        AccountPrototype._db_all().update(
            created_at=datetime.datetime.now() -
            accounts_settings.RANDOM_PREMIUM_CREATED_AT_BARRIER)

        self.request = RandomPremiumRequestPrototype.create(self.account_1.id,
                                                            days=30)
 def _check_not_used(self):
     self.assertEqual(self.hero.energy_bonus, 0)
     self.assertEqual(RandomPremiumRequestPrototype._db_count(), 0)
 def _check_used(self):
     self.assertEqual(self.hero.energy_bonus, relations.RANDOM_PREMIUM_CHEST_REWARD.ENERGY.arguments['energy'])
     self.assertEqual(RandomPremiumRequestPrototype._db_count(), 1)
 def _check_used(self):
     self.assertEqual(self.hero.bag.occupation, 1)
     self.assertTrue(list(self.hero.bag.values())[0].rarity.is_RARE)
     self.assertEqual(RandomPremiumRequestPrototype._db_count(), 1)
 def _check_not_used(self):
     self.assertEqual(self.hero.bag.occupation, 0)
     self.assertEqual(RandomPremiumRequestPrototype._db_count(), 0)
 def test_get_unprocessed__has_waiting(self):
     self.assertEqual(RandomPremiumRequestPrototype.get_unprocessed().id,
                      self.request.id)
 def test_get_unprocessed__not_exist(self):
     RandomPremiumRequestPrototype._db_all().delete()
     self.assertEqual(RandomPremiumRequestPrototype.get_unprocessed(), None)
 def _check_used(self):
     self.assertTrue(self.hero.level > 1 or self.hero.experience > 0)
     self.assertEqual(RandomPremiumRequestPrototype._db_count(), 1)
 def _check_not_used(self):
     self.assertEqual(self.hero.energy_bonus, 0)
     self.assertEqual(RandomPremiumRequestPrototype._db_count(), 0)
 def _check_used(self):
     self.assertEqual(self.hero.bag.occupation, 1)
     self.assertTrue(self.hero.bag.values()[0].rarity.is_RARE)
     self.assertEqual(RandomPremiumRequestPrototype._db_count(), 1)
 def test_create(self):
     self.assertEqual(RandomPremiumRequestPrototype._db_count(), 1)
     self.assertEqual(self.request.days, 30)
     self.assertEqual(self.request.initiator_id, self.account_1.id)
 def test_create(self):
     self.assertEqual(RandomPremiumRequestPrototype._db_count(), 1)
     self.assertEqual(self.request.days, 30)
     self.assertEqual(self.request.initiator_id, self.account_1.id)
 def test_get_unprocessed__no_waiting(self):
     RandomPremiumRequestPrototype._db_all().update(
         state=relations.RANDOM_PREMIUM_REQUEST_STATE.PROCESSED)
     self.assertEqual(RandomPremiumRequestPrototype.get_unprocessed(), None)
 def test_get_unprocessed__no_waiting(self):
     RandomPremiumRequestPrototype._db_all().update(state=relations.RANDOM_PREMIUM_REQUEST_STATE.PROCESSED)
     self.assertEqual(RandomPremiumRequestPrototype.get_unprocessed(), None)
 def _check_not_used(self):
     self.assertEqual(self.hero.level, 1)
     self.assertEqual(self.hero.experience, 0)
     self.assertEqual(RandomPremiumRequestPrototype._db_count(), 0)
 def _check_not_used(self):
     self.assertEqual(self.hero.bag.occupation, 0)
     self.assertEqual(RandomPremiumRequestPrototype._db_count(), 0)
 def _check_used(self):
     self.assertEqual(
         self.hero.energy_bonus,
         relations.RANDOM_PREMIUM_CHEST_REWARD.ENERGY.arguments['energy'])
     self.assertEqual(RandomPremiumRequestPrototype._db_count(), 1)
 def _check_used(self):
     self.assertEqual(RandomPremiumRequestPrototype._db_count(), 1)
 def _check_not_used(self):
     self.assertEqual(self.hero.level, 1)
     self.assertEqual(self.hero.experience, 0)
     self.assertEqual(RandomPremiumRequestPrototype._db_count(), 0)
 def _check_used(self):
     self.assertTrue(self.hero.level > 1 or self.hero.experience > 0)
     self.assertEqual(RandomPremiumRequestPrototype._db_count(), 1)
 def test_get_unprocessed__not_exist(self):
     RandomPremiumRequestPrototype._db_all().delete()
     self.assertEqual(RandomPremiumRequestPrototype.get_unprocessed(), None)
 def _check_used(self):
     self.assertEqual(RandomPremiumRequestPrototype._db_count(), 1)
 def test_get_unprocessed__has_waiting(self):
     self.assertEqual(RandomPremiumRequestPrototype.get_unprocessed().id, self.request.id)
Exemple #37
0
 def get_chest_intervals_count(self, date):
     starts = RandomPremiumRequestPrototype._db_all().values_list('created_at', flat=True)
     return len([True
                 for created_at in starts
                 if created_at.date() <= date < (created_at + datetime.timedelta(days=shop_conf.payments_settings.RANDOM_PREMIUM_DAYS)).date()] )