コード例 #1
0
ファイル: postponed_tasks.py プロジェクト: pavetok/the-tale
    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)
コード例 #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)
コード例 #3
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)
コード例 #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)
コード例 #5
0
ファイル: actual.py プロジェクト: he1mdallr/the-tale
 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()
     ])
コード例 #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)
コード例 #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)
コード例 #8
0
    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)
コード例 #9
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)
コード例 #10
0
    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)
コード例 #11
0
ファイル: accounts_manager.py プロジェクト: pavetok/the-tale
    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)
コード例 #12
0
ファイル: accounts_manager.py プロジェクト: Alkalit/the-tale
    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)
コード例 #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)
コード例 #14
0
    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)
コード例 #15
0
 def _check_not_used(self):
     self.assertEqual(self.hero.energy_bonus, 0)
     self.assertEqual(RandomPremiumRequestPrototype._db_count(), 0)
コード例 #16
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)
コード例 #17
0
 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)
コード例 #18
0
 def _check_not_used(self):
     self.assertEqual(self.hero.bag.occupation, 0)
     self.assertEqual(RandomPremiumRequestPrototype._db_count(), 0)
コード例 #19
0
 def test_get_unprocessed__has_waiting(self):
     self.assertEqual(RandomPremiumRequestPrototype.get_unprocessed().id,
                      self.request.id)
コード例 #20
0
 def test_get_unprocessed__not_exist(self):
     RandomPremiumRequestPrototype._db_all().delete()
     self.assertEqual(RandomPremiumRequestPrototype.get_unprocessed(), None)
コード例 #21
0
 def _check_used(self):
     self.assertTrue(self.hero.level > 1 or self.hero.experience > 0)
     self.assertEqual(RandomPremiumRequestPrototype._db_count(), 1)
コード例 #22
0
 def _check_not_used(self):
     self.assertEqual(self.hero.energy_bonus, 0)
     self.assertEqual(RandomPremiumRequestPrototype._db_count(), 0)
コード例 #23
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)
コード例 #24
0
 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)
コード例 #25
0
 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)
コード例 #26
0
 def test_get_unprocessed__no_waiting(self):
     RandomPremiumRequestPrototype._db_all().update(
         state=relations.RANDOM_PREMIUM_REQUEST_STATE.PROCESSED)
     self.assertEqual(RandomPremiumRequestPrototype.get_unprocessed(), None)
コード例 #27
0
 def test_get_unprocessed__no_waiting(self):
     RandomPremiumRequestPrototype._db_all().update(state=relations.RANDOM_PREMIUM_REQUEST_STATE.PROCESSED)
     self.assertEqual(RandomPremiumRequestPrototype.get_unprocessed(), None)
コード例 #28
0
 def _check_not_used(self):
     self.assertEqual(self.hero.level, 1)
     self.assertEqual(self.hero.experience, 0)
     self.assertEqual(RandomPremiumRequestPrototype._db_count(), 0)
コード例 #29
0
 def _check_not_used(self):
     self.assertEqual(self.hero.bag.occupation, 0)
     self.assertEqual(RandomPremiumRequestPrototype._db_count(), 0)
コード例 #30
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)
コード例 #31
0
 def _check_used(self):
     self.assertEqual(RandomPremiumRequestPrototype._db_count(), 1)
コード例 #32
0
 def _check_not_used(self):
     self.assertEqual(self.hero.level, 1)
     self.assertEqual(self.hero.experience, 0)
     self.assertEqual(RandomPremiumRequestPrototype._db_count(), 0)
コード例 #33
0
 def _check_used(self):
     self.assertTrue(self.hero.level > 1 or self.hero.experience > 0)
     self.assertEqual(RandomPremiumRequestPrototype._db_count(), 1)
コード例 #34
0
 def test_get_unprocessed__not_exist(self):
     RandomPremiumRequestPrototype._db_all().delete()
     self.assertEqual(RandomPremiumRequestPrototype.get_unprocessed(), None)
コード例 #35
0
 def _check_used(self):
     self.assertEqual(RandomPremiumRequestPrototype._db_count(), 1)
コード例 #36
0
 def test_get_unprocessed__has_waiting(self):
     self.assertEqual(RandomPremiumRequestPrototype.get_unprocessed().id, self.request.id)
コード例 #37
0
ファイル: actual.py プロジェクト: Alkalit/the-tale
 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()] )