예제 #1
0
    def setUp(self):
        super(ContainerTests, self).setUp()

        self.achievement_1 = AchievementPrototype.create(
            group=ACHIEVEMENT_GROUP.MONEY,
            type=ACHIEVEMENT_TYPE.MONEY,
            barrier=0,
            points=10,
            caption=u'achievement_1',
            description=u'description_1',
            approved=True)
        self.achievement_2 = AchievementPrototype.create(
            group=ACHIEVEMENT_GROUP.MONEY,
            type=ACHIEVEMENT_TYPE.MONEY,
            barrier=4,
            points=20,
            caption=u'achievement_2',
            description=u'description_2',
            approved=False)
        self.achievement_3 = AchievementPrototype.create(
            group=ACHIEVEMENT_GROUP.TIME,
            type=ACHIEVEMENT_TYPE.TIME,
            barrier=8,
            points=30,
            caption=u'achievement_3',
            description=u'description_3',
            approved=True)

        self.container = AchievementsContainer()
예제 #2
0
    def setUp(self):
        super(AchievementPrototypeTests, self).setUp()

        self.achievement_1 = AchievementPrototype.create(
            group=ACHIEVEMENT_GROUP.MONEY,
            type=ACHIEVEMENT_TYPE.MONEY,
            barrier=1,
            points=10,
            caption='achievement_1',
            description='description_1',
            approved=True)
        self.achievement_2 = AchievementPrototype.create(
            group=ACHIEVEMENT_GROUP.MONEY,
            type=ACHIEVEMENT_TYPE.MONEY,
            barrier=2,
            points=10,
            caption='achievement_2',
            description='description_2',
            approved=False)
        self.achievement_3 = AchievementPrototype.create(
            group=ACHIEVEMENT_GROUP.TIME,
            type=ACHIEVEMENT_TYPE.TIME,
            barrier=3,
            points=10,
            caption='achievement_3',
            description='description_3',
            approved=True)
예제 #3
0
    def setUp(self):
        super(AchievementPrototypeTests, self).setUp()

        self.achievement_1 = AchievementPrototype.create(
            group=ACHIEVEMENT_GROUP.MONEY,
            type=ACHIEVEMENT_TYPE.MONEY,
            barrier=1,
            points=10,
            caption=u"achievement_1",
            description=u"description_1",
            approved=True,
        )
        self.achievement_2 = AchievementPrototype.create(
            group=ACHIEVEMENT_GROUP.MONEY,
            type=ACHIEVEMENT_TYPE.MONEY,
            barrier=2,
            points=10,
            caption=u"achievement_2",
            description=u"description_2",
            approved=False,
        )
        self.achievement_3 = AchievementPrototype.create(
            group=ACHIEVEMENT_GROUP.TIME,
            type=ACHIEVEMENT_TYPE.TIME,
            barrier=3,
            points=10,
            caption=u"achievement_3",
            description=u"description_3",
            approved=True,
        )
예제 #4
0
    def setUp(self):
        super(AccountAchievementsPrototypeTests, 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)

        self.collection_1 = CollectionPrototype.create(
            caption=u'collection_1',
            description=u'description_1',
            approved=True)
        self.kit_1 = KitPrototype.create(collection=self.collection_1,
                                         caption=u'kit_1',
                                         description=u'description_1',
                                         approved=True)
        self.item_1_1 = ItemPrototype.create(kit=self.kit_1,
                                             caption=u'item_1_1',
                                             text=u'text_1_1',
                                             approved=False)
        self.item_1_2 = ItemPrototype.create(kit=self.kit_1,
                                             caption=u'item_1_2',
                                             text=u'text_1_2',
                                             approved=True)
        self.item_1_3 = ItemPrototype.create(kit=self.kit_1,
                                             caption=u'item_1_3',
                                             text=u'text_1_3',
                                             approved=True)

        self.achievement_1 = AchievementPrototype.create(
            group=ACHIEVEMENT_GROUP.MONEY,
            type=ACHIEVEMENT_TYPE.MONEY,
            barrier=1,
            points=10,
            caption=u'achievement_1',
            description=u'description_1',
            approved=True,
            item_1=self.item_1_1,
            item_2=self.item_1_2)
        self.achievement_2 = AchievementPrototype.create(
            group=ACHIEVEMENT_GROUP.MONEY,
            type=ACHIEVEMENT_TYPE.MONEY,
            barrier=2,
            points=10,
            caption=u'achievement_2',
            description=u'description_2',
            approved=False)
        self.achievement_3 = AchievementPrototype.create(
            group=ACHIEVEMENT_GROUP.TIME,
            type=ACHIEVEMENT_TYPE.TIME,
            barrier=3,
            points=10,
            caption=u'achievement_3',
            description=u'description_3',
            approved=True)

        self.account_achievements_1 = AccountAchievementsPrototype.get_by_account_id(
            self.account_1.id)
예제 #5
0
    def setUp(self):
        super(_BaseRequestTests, 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)

        group_edit = sync_group('edit achievement', ['achievements.edit_achievement'])

        group_edit.user_set.add(self.account_2._model)

        self.achievement_1 = AchievementPrototype.create(group=ACHIEVEMENT_GROUP.MONEY, type=ACHIEVEMENT_TYPE.MONEY, barrier=0, points=10,
                                                         caption=u'achievement_1', description=u'description_1', approved=True)
        self.achievement_2 = AchievementPrototype.create(group=ACHIEVEMENT_GROUP.MONEY, type=ACHIEVEMENT_TYPE.MONEY, barrier=2, points=10,
                                                         caption=u'achievement_2', description=u'description_2', approved=False)
        self.achievement_3 = AchievementPrototype.create(group=ACHIEVEMENT_GROUP.TIME, type=ACHIEVEMENT_TYPE.TIME, barrier=3, points=10,
                                                         caption=u'achievement_3', description=u'description_3', approved=True)

        self.collection_1 = CollectionPrototype.create(caption=u'collection_1', description=u'description_1', approved=True)
        self.kit_1 = KitPrototype.create(collection=self.collection_1, caption=u'kit_1', description=u'description_1', approved=True)
        self.item_1_1 = ItemPrototype.create(kit=self.kit_1, caption=u'item_1_1', text=u'text_1_1', approved=True)
        self.item_1_2 = ItemPrototype.create(kit=self.kit_1, caption=u'item_1_2', text=u'text_1_2', approved=True)

        self.account_achievements_1 = AccountAchievementsPrototype.get_by_account_id(self.account_1.id)
        self.account_achievements_1.achievements.add_achievement(self.achievement_1)
        self.account_achievements_1.save()
예제 #6
0
    def setUp(self):
        super(AchievementsManagerTests, 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)

        group_edit = sync_group('edit achievement', ['achievements.edit_achievement'])

        group_edit.user_set.add(self.account_2._model)

        self.achievement_1 = AchievementPrototype.create(group=ACHIEVEMENT_GROUP.MONEY, type=ACHIEVEMENT_TYPE.MONEY, barrier=0, points=10,
                                                         caption=u'achievement_1', description=u'description_1', approved=True)
        self.achievement_2 = AchievementPrototype.create(group=ACHIEVEMENT_GROUP.MONEY, type=ACHIEVEMENT_TYPE.MONEY, barrier=5, points=10,
                                                         caption=u'achievement_2', description=u'description_2', approved=False)
        self.achievement_3 = AchievementPrototype.create(group=ACHIEVEMENT_GROUP.TIME, type=ACHIEVEMENT_TYPE.DEATHS, barrier=4, points=10,
                                                         caption=u'achievement_3', description=u'description_3', approved=True)


        self.account_achievements_1 = AccountAchievementsPrototype.get_by_account_id(self.account_1.id)
        self.account_achievements_1.achievements.add_achievement(self.achievement_1)
        self.account_achievements_1.save()

        self.worker = environment.workers.achievements_manager
        self.worker.initialize()
예제 #7
0
    def setUp(self):
        super(_BaseRequestTests, self).setUp()

        create_test_map()

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

        group_edit = sync_group('edit achievement',
                                ['achievements.edit_achievement'])

        group_edit.user_set.add(self.account_2._model)

        self.achievement_1 = AchievementPrototype.create(
            group=ACHIEVEMENT_GROUP.MONEY,
            type=ACHIEVEMENT_TYPE.MONEY,
            barrier=0,
            points=10,
            caption='achievement_1',
            description='description_1',
            approved=True)
        self.achievement_2 = AchievementPrototype.create(
            group=ACHIEVEMENT_GROUP.MONEY,
            type=ACHIEVEMENT_TYPE.MONEY,
            barrier=2,
            points=10,
            caption='achievement_2',
            description='description_2',
            approved=False)
        self.achievement_3 = AchievementPrototype.create(
            group=ACHIEVEMENT_GROUP.TIME,
            type=ACHIEVEMENT_TYPE.TIME,
            barrier=3,
            points=10,
            caption='achievement_3',
            description='description_3',
            approved=True)

        self.collection_1 = CollectionPrototype.create(
            caption='collection_1', description='description_1', approved=True)
        self.kit_1 = KitPrototype.create(collection=self.collection_1,
                                         caption='kit_1',
                                         description='description_1',
                                         approved=True)
        self.item_1_1 = ItemPrototype.create(kit=self.kit_1,
                                             caption='item_1_1',
                                             text='text_1_1',
                                             approved=True)
        self.item_1_2 = ItemPrototype.create(kit=self.kit_1,
                                             caption='item_1_2',
                                             text='text_1_2',
                                             approved=True)

        self.account_achievements_1 = AccountAchievementsPrototype.get_by_account_id(
            self.account_1.id)
        self.account_achievements_1.achievements.add_achievement(
            self.achievement_1)
        self.account_achievements_1.save()
예제 #8
0
    def setUp(self):
        super(AccountAchievementsPrototypeTests, self).setUp()

        create_test_map()

        self.account_1 = self.accounts_factory.create_account()

        self.collection_1 = CollectionPrototype.create(
            caption='collection_1', description='description_1', approved=True)
        self.kit_1 = KitPrototype.create(collection=self.collection_1,
                                         caption='kit_1',
                                         description='description_1',
                                         approved=True)
        self.item_1_1 = ItemPrototype.create(kit=self.kit_1,
                                             caption='item_1_1',
                                             text='text_1_1',
                                             approved=False)
        self.item_1_2 = ItemPrototype.create(kit=self.kit_1,
                                             caption='item_1_2',
                                             text='text_1_2',
                                             approved=True)
        self.item_1_3 = ItemPrototype.create(kit=self.kit_1,
                                             caption='item_1_3',
                                             text='text_1_3',
                                             approved=True)

        self.achievement_1 = AchievementPrototype.create(
            group=ACHIEVEMENT_GROUP.MONEY,
            type=ACHIEVEMENT_TYPE.MONEY,
            barrier=1,
            points=10,
            caption='achievement_1',
            description='description_1',
            approved=True,
            item_1=self.item_1_1,
            item_2=self.item_1_2)
        self.achievement_2 = AchievementPrototype.create(
            group=ACHIEVEMENT_GROUP.MONEY,
            type=ACHIEVEMENT_TYPE.MONEY,
            barrier=2,
            points=10,
            caption='achievement_2',
            description='description_2',
            approved=False)
        self.achievement_3 = AchievementPrototype.create(
            group=ACHIEVEMENT_GROUP.TIME,
            type=ACHIEVEMENT_TYPE.TIME,
            barrier=3,
            points=10,
            caption='achievement_3',
            description='description_3',
            approved=True)

        self.account_achievements_1 = AccountAchievementsPrototype.get_by_account_id(
            self.account_1.id)
예제 #9
0
    def setUp(self):
        super(ContainerTests, self).setUp()

        self.achievement_1 = AchievementPrototype.create(group=ACHIEVEMENT_GROUP.MONEY, type=ACHIEVEMENT_TYPE.MONEY, barrier=0, points=10,
                                                         caption='achievement_1', description='description_1', approved=True)
        self.achievement_2 = AchievementPrototype.create(group=ACHIEVEMENT_GROUP.MONEY, type=ACHIEVEMENT_TYPE.MONEY, barrier=4, points=20,
                                                         caption='achievement_2', description='description_2', approved=False)
        self.achievement_3 = AchievementPrototype.create(group=ACHIEVEMENT_GROUP.TIME, type=ACHIEVEMENT_TYPE.TIME, barrier=8, points=30,
                                                         caption='achievement_3', description='description_3', approved=True)

        self.container = AchievementsContainer()
예제 #10
0
    def setUp(self):
        super(AccountAchievementsPrototypeTests, 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)

        self.collection_1 = CollectionPrototype.create(
            caption=u"collection_1", description=u"description_1", approved=True
        )
        self.kit_1 = KitPrototype.create(
            collection=self.collection_1, caption=u"kit_1", description=u"description_1", approved=True
        )
        self.item_1_1 = ItemPrototype.create(kit=self.kit_1, caption=u"item_1_1", text=u"text_1_1", approved=False)
        self.item_1_2 = ItemPrototype.create(kit=self.kit_1, caption=u"item_1_2", text=u"text_1_2", approved=True)
        self.item_1_3 = ItemPrototype.create(kit=self.kit_1, caption=u"item_1_3", text=u"text_1_3", approved=True)

        self.achievement_1 = AchievementPrototype.create(
            group=ACHIEVEMENT_GROUP.MONEY,
            type=ACHIEVEMENT_TYPE.MONEY,
            barrier=1,
            points=10,
            caption=u"achievement_1",
            description=u"description_1",
            approved=True,
            item_1=self.item_1_1,
            item_2=self.item_1_2,
        )
        self.achievement_2 = AchievementPrototype.create(
            group=ACHIEVEMENT_GROUP.MONEY,
            type=ACHIEVEMENT_TYPE.MONEY,
            barrier=2,
            points=10,
            caption=u"achievement_2",
            description=u"description_2",
            approved=False,
        )
        self.achievement_3 = AchievementPrototype.create(
            group=ACHIEVEMENT_GROUP.TIME,
            type=ACHIEVEMENT_TYPE.TIME,
            barrier=3,
            points=10,
            caption=u"achievement_3",
            description=u"description_3",
            approved=True,
        )

        self.account_achievements_1 = AccountAchievementsPrototype.get_by_account_id(self.account_1.id)
예제 #11
0
    def setUp(self):
        super(AchievementsManagerTests, self).setUp()

        create_test_map()

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

        group_edit = sync_group('edit achievement',
                                ['achievements.edit_achievement'])

        group_edit.user_set.add(self.account_2._model)

        self.achievement_1 = AchievementPrototype.create(
            group=ACHIEVEMENT_GROUP.MONEY,
            type=ACHIEVEMENT_TYPE.MONEY,
            barrier=0,
            points=10,
            caption='achievement_1',
            description='description_1',
            approved=True)
        self.achievement_2 = AchievementPrototype.create(
            group=ACHIEVEMENT_GROUP.MONEY,
            type=ACHIEVEMENT_TYPE.MONEY,
            barrier=5,
            points=10,
            caption='achievement_2',
            description='description_2',
            approved=False)
        self.achievement_3 = AchievementPrototype.create(
            group=ACHIEVEMENT_GROUP.TIME,
            type=ACHIEVEMENT_TYPE.DEATHS,
            barrier=4,
            points=10,
            caption='achievement_3',
            description='description_3',
            approved=True)

        self.account_achievements_1 = AccountAchievementsPrototype.get_by_account_id(
            self.account_1.id)
        self.account_achievements_1.achievements.add_achievement(
            self.achievement_1)
        self.account_achievements_1.save()

        self.worker = environment.workers.achievements_manager
        self.worker.initialize()

        pm_logic.debug_clear_service()
예제 #12
0
    def test_legendary_achievements(self):
        achievement_4 = AchievementPrototype.create(
            group=ACHIEVEMENT_GROUP.LEGENDS,
            type=ACHIEVEMENT_TYPE.LEGENDS,
            barrier=0,
            points=0,
            caption=u'achievement_4',
            description=u'description_4',
            approved=True)

        self.account_achievements_1.achievements.add_achievement(achievement_4)
        self.account_achievements_1.save()

        GiveAchievementTaskPrototype.create(account_id=None,
                                            achievement_id=achievement_4.id)

        account_achievements_2 = AccountAchievementsPrototype.get_by_account_id(
            self.account_2.id)

        self.assertTrue(
            self.account_achievements_1.has_achievement(achievement_4))
        self.assertFalse(account_achievements_2.has_achievement(achievement_4))

        with self.check_not_changed(MessagePrototype._db_count):
            self.worker.add_achievements()

        self.account_achievements_1.reload()
        account_achievements_2.reload()

        self.assertTrue(
            self.account_achievements_1.has_achievement(achievement_4))
        self.assertFalse(account_achievements_2.has_achievement(achievement_4))

        self.assertEqual(GiveAchievementTaskPrototype._db_count(), 0)
예제 #13
0
    def test_success(self):
        self.request_login(self.account_2.email)
        with self.check_delta(AchievementPrototype._db_all().count, 1):
            response = self.post_ajax_json(self.test_url, self.get_post_data())

        achievement = AchievementPrototype._db_get_object(3)

        self.check_ajax_ok(response, data={'next_url': url('accounts:achievements:group', achievement.group.slug)})

        self.assertEqual(achievement.caption, 'caption_create')
        self.assertEqual(achievement.description, 'description_create')
        self.assertEqual(achievement.type, ACHIEVEMENT_TYPE.DEATHS)
        self.assertEqual(achievement.group, ACHIEVEMENT_GROUP.DEATHS)
        self.assertEqual(achievement.barrier, 777)
        self.assertEqual(achievement.points, 20)
        self.assertFalse(achievement.approved)
        self.assertEqual(achievement.item_1.id, self.item_1_1.id)
        self.assertEqual(achievement.item_2, None)
        self.assertEqual(achievement.item_3, None)
예제 #14
0
    def setUp(self):
        super(StorageTests, 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)

        self.achievement_1 = AchievementPrototype.create(
            group=ACHIEVEMENT_GROUP.MONEY,
            type=ACHIEVEMENT_TYPE.MONEY,
            barrier=0,
            points=10,
            caption=u'achievement_1',
            description=u'description_1',
            approved=True)
        self.achievement_2 = AchievementPrototype.create(
            group=ACHIEVEMENT_GROUP.MONEY,
            type=ACHIEVEMENT_TYPE.MONEY,
            barrier=1,
            points=10,
            caption=u'achievement_2',
            description=u'description_2',
            approved=False)
        self.achievement_3 = AchievementPrototype.create(
            group=ACHIEVEMENT_GROUP.MONEY,
            type=ACHIEVEMENT_TYPE.MONEY,
            barrier=2,
            points=10,
            caption=u'achievement_3',
            description=u'description_3',
            approved=True)
        self.achievement_4 = AchievementPrototype.create(
            group=ACHIEVEMENT_GROUP.MONEY,
            type=ACHIEVEMENT_TYPE.MONEY,
            barrier=3,
            points=10,
            caption=u'achievement_4',
            description=u'description_4',
            approved=True)
        self.achievement_5 = AchievementPrototype.create(
            group=ACHIEVEMENT_GROUP.MONEY,
            type=ACHIEVEMENT_TYPE.MONEY,
            barrier=4,
            points=10,
            caption=u'achievement_5',
            description=u'description_5',
            approved=True)
        self.achievement_6 = AchievementPrototype.create(
            group=ACHIEVEMENT_GROUP.TIME,
            type=ACHIEVEMENT_TYPE.TIME,
            barrier=2,
            points=10,
            caption=u'achievement_6',
            description=u'description_6',
            approved=True)
예제 #15
0
    def setUp(self):
        super(AccountAchievementsPrototypeTests, self).setUp()

        create_test_map()

        self.account_1 = self.accounts_factory.create_account()

        self.collection_1 = CollectionPrototype.create(caption='collection_1', description='description_1', approved=True)
        self.kit_1 = KitPrototype.create(collection=self.collection_1, caption='kit_1', description='description_1', approved=True)
        self.item_1_1 = ItemPrototype.create(kit=self.kit_1, caption='item_1_1', text='text_1_1', approved=False)
        self.item_1_2 = ItemPrototype.create(kit=self.kit_1, caption='item_1_2', text='text_1_2', approved=True)
        self.item_1_3 = ItemPrototype.create(kit=self.kit_1, caption='item_1_3', text='text_1_3', approved=True)


        self.achievement_1 = AchievementPrototype.create(group=ACHIEVEMENT_GROUP.MONEY, type=ACHIEVEMENT_TYPE.MONEY, barrier=1, points=10,
                                                         caption='achievement_1', description='description_1', approved=True,
                                                         item_1=self.item_1_1, item_2=self.item_1_2)
        self.achievement_2 = AchievementPrototype.create(group=ACHIEVEMENT_GROUP.MONEY, type=ACHIEVEMENT_TYPE.MONEY, barrier=2, points=10,
                                                         caption='achievement_2', description='description_2', approved=False)
        self.achievement_3 = AchievementPrototype.create(group=ACHIEVEMENT_GROUP.TIME, type=ACHIEVEMENT_TYPE.TIME, barrier=3, points=10,
                                                         caption='achievement_3', description='description_3', approved=True)

        self.account_achievements_1 = AccountAchievementsPrototype.get_by_account_id(self.account_1.id)
예제 #16
0
    def test_change_pvp_battles_1x1_victories__multiple_victories_achievements(self):
        from the_tale.accounts.achievements.relations import ACHIEVEMENT_GROUP, ACHIEVEMENT_TYPE
        from the_tale.accounts.achievements.prototypes import AchievementPrototype, GiveAchievementTaskPrototype

        achievement_1 = AchievementPrototype.create(group=ACHIEVEMENT_GROUP.MONEY, type=ACHIEVEMENT_TYPE.PVP_VICTORIES_1X1, barrier=10, points=10,
                                    caption='achievement_1', description='description_1', approved=True)
        achievement_2 = AchievementPrototype.create(group=ACHIEVEMENT_GROUP.MONEY, type=ACHIEVEMENT_TYPE.PVP_VICTORIES_1X1, barrier=20, points=10,
                                    caption='achievement_2', description='description_2', approved=True)
        achievement_3 = AchievementPrototype.create(group=ACHIEVEMENT_GROUP.MONEY, type=ACHIEVEMENT_TYPE.PVP_VICTORIES_1X1, barrier=30, points=10,
                                    caption='achievement_3', description='description_3', approved=True)
        achievement_4 = AchievementPrototype.create(group=ACHIEVEMENT_GROUP.MONEY, type=ACHIEVEMENT_TYPE.PVP_VICTORIES_1X1, barrier=40, points=10,
                                    caption='achievement_4', description='description_4', approved=True)


        self.assertEqual(self.hero.statistics.pvp_battles_1x1_number, 16)

        with self.check_not_changed(GiveAchievementTaskPrototype._db_count):
            self.hero.statistics.change_pvp_battles_1x1_draws(400)
            self.hero.statistics.change_pvp_battles_1x1_defeats(300)

        with self.check_delta(GiveAchievementTaskPrototype._db_count, 3):
            self.hero.statistics.change_pvp_battles_1x1_victories(300)

        self.assertEqual(set(GiveAchievementTaskPrototype._db_all().values_list('achievement_id', flat=True)),
                         set([achievement_1.id, achievement_2.id, achievement_3.id]))

        with self.check_delta(GiveAchievementTaskPrototype._db_count, 1):
            self.hero.statistics.change_pvp_battles_1x1_victories(200)

        self.assertEqual(set(GiveAchievementTaskPrototype._db_all().values_list('achievement_id', flat=True)),
                         set([achievement_1.id, achievement_2.id, achievement_3.id, achievement_4.id]))


        self.assertEqual(self.hero.statistics.pvp_battles_1x1_number, 1216)
        self.assertEqual(self.hero.statistics.pvp_battles_1x1_victories, 516)
        self.assertEqual(self.hero.statistics.pvp_battles_1x1_defeats, 300)
        self.assertEqual(self.hero.statistics.pvp_battles_1x1_draws, 400)
예제 #17
0
    def test_success(self):
        self.request_login(self.account_2.email)
        with self.check_delta(AchievementPrototype._db_all().count, 1):
            response = self.post_ajax_json(self.test_url, self.get_post_data())

        achievement = AchievementPrototype._db_get_object(3)

        self.check_ajax_ok(response,
                           data={
                               'next_url':
                               url('accounts:achievements:group',
                                   achievement.group.slug)
                           })

        self.assertEqual(achievement.caption, 'caption_create')
        self.assertEqual(achievement.description, 'description_create')
        self.assertEqual(achievement.type, ACHIEVEMENT_TYPE.DEATHS)
        self.assertEqual(achievement.group, ACHIEVEMENT_GROUP.DEATHS)
        self.assertEqual(achievement.barrier, 777)
        self.assertEqual(achievement.points, 20)
        self.assertFalse(achievement.approved)
        self.assertEqual(achievement.item_1.id, self.item_1_1.id)
        self.assertEqual(achievement.item_2, None)
        self.assertEqual(achievement.item_3, None)
예제 #18
0
파일: views.py 프로젝트: Alkalit/the-tale
    def create(self):
        form = NewAchievementForm(self.request.POST)

        if not form.is_valid():
            return self.json_error('accounts.achievements.create.form_errors', form.errors)


        achievement = AchievementPrototype.create(group=form.c.group,
                                                  type=form.c.type,
                                                  caption=form.c.caption,
                                                  description=form.c.description,
                                                  approved=False,
                                                  barrier=form.c.barrier,
                                                  points=form.c.points,
                                                  item_1=form.c.item_1,
                                                  item_2=form.c.item_2,
                                                  item_3=form.c.item_3)

        return self.json_ok(data={'next_url': url('accounts:achievements:group', achievement.group.slug)})
예제 #19
0
파일: views.py 프로젝트: serhii73/the-tale
    def create(self):
        form = NewAchievementForm(self.request.POST)

        if not form.is_valid():
            return self.json_error('accounts.achievements.create.form_errors',
                                   form.errors)

        achievement = AchievementPrototype.create(
            group=form.c.group,
            type=form.c.type,
            caption=form.c.caption,
            description=form.c.description,
            approved=False,
            barrier=form.c.barrier,
            points=form.c.points,
            item_1=form.c.item_1,
            item_2=form.c.item_2,
            item_3=form.c.item_3)

        return self.json_ok(data={
            'next_url':
            url('accounts:achievements:group', achievement.group.slug)
        })
예제 #20
0
    def test_legendary_achievements(self):
        achievement_4 = AchievementPrototype.create(group=ACHIEVEMENT_GROUP.LEGENDS, type=ACHIEVEMENT_TYPE.LEGENDS, barrier=0, points=0,
                                                    caption=u'achievement_4', description=u'description_4', approved=True)

        self.account_achievements_1.achievements.add_achievement(achievement_4)
        self.account_achievements_1.save()

        GiveAchievementTaskPrototype.create(account_id=None, achievement_id=achievement_4.id)

        account_achievements_2 = AccountAchievementsPrototype.get_by_account_id(self.account_2.id)

        self.assertTrue(self.account_achievements_1.has_achievement(achievement_4))
        self.assertFalse(account_achievements_2.has_achievement(achievement_4))

        with self.check_not_changed(MessagePrototype._db_count):
            self.worker.add_achievements()

        self.account_achievements_1.reload()
        account_achievements_2.reload()

        self.assertTrue(self.account_achievements_1.has_achievement(achievement_4))
        self.assertFalse(account_achievements_2.has_achievement(achievement_4))

        self.assertEqual(GiveAchievementTaskPrototype._db_count(), 0)
예제 #21
0
    def setUp(self):
        super(StorageTests, self).setUp()

        create_test_map()

        self.account_1 = self.accounts_factory.create_account()

        self.achievement_1 = AchievementPrototype.create(group=ACHIEVEMENT_GROUP.MONEY, type=ACHIEVEMENT_TYPE.MONEY, barrier=0, points=10,
                                                         caption='achievement_1', description='description_1', approved=True)
        self.achievement_2 = AchievementPrototype.create(group=ACHIEVEMENT_GROUP.MONEY, type=ACHIEVEMENT_TYPE.MONEY, barrier=1, points=10,
                                                         caption='achievement_2', description='description_2', approved=False)
        self.achievement_3 = AchievementPrototype.create(group=ACHIEVEMENT_GROUP.MONEY, type=ACHIEVEMENT_TYPE.MONEY, barrier=2, points=10,
                                                         caption='achievement_3', description='description_3', approved=True)
        self.achievement_4 = AchievementPrototype.create(group=ACHIEVEMENT_GROUP.MONEY, type=ACHIEVEMENT_TYPE.MONEY, barrier=3, points=10,
                                                         caption='achievement_4', description='description_4', approved=True)
        self.achievement_5 = AchievementPrototype.create(group=ACHIEVEMENT_GROUP.MONEY, type=ACHIEVEMENT_TYPE.MONEY, barrier=4, points=10,
                                                         caption='achievement_5', description='description_5', approved=True)
        self.achievement_6 = AchievementPrototype.create(group=ACHIEVEMENT_GROUP.TIME, type=ACHIEVEMENT_TYPE.TIME, barrier=2, points=10,
                                                         caption='achievement_6', description='description_6', approved=True)
예제 #22
0
    def setUp(self):
        super(StorageTests, 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)

        self.achievement_1 = AchievementPrototype.create(group=ACHIEVEMENT_GROUP.MONEY, type=ACHIEVEMENT_TYPE.MONEY, barrier=0, points=10,
                                                         caption=u'achievement_1', description=u'description_1', approved=True)
        self.achievement_2 = AchievementPrototype.create(group=ACHIEVEMENT_GROUP.MONEY, type=ACHIEVEMENT_TYPE.MONEY, barrier=1, points=10,
                                                         caption=u'achievement_2', description=u'description_2', approved=False)
        self.achievement_3 = AchievementPrototype.create(group=ACHIEVEMENT_GROUP.MONEY, type=ACHIEVEMENT_TYPE.MONEY, barrier=2, points=10,
                                                         caption=u'achievement_3', description=u'description_3', approved=True)
        self.achievement_4 = AchievementPrototype.create(group=ACHIEVEMENT_GROUP.MONEY, type=ACHIEVEMENT_TYPE.MONEY, barrier=3, points=10,
                                                         caption=u'achievement_4', description=u'description_4', approved=True)
        self.achievement_5 = AchievementPrototype.create(group=ACHIEVEMENT_GROUP.MONEY, type=ACHIEVEMENT_TYPE.MONEY, barrier=4, points=10,
                                                         caption=u'achievement_5', description=u'description_5', approved=True)
        self.achievement_6 = AchievementPrototype.create(group=ACHIEVEMENT_GROUP.TIME, type=ACHIEVEMENT_TYPE.TIME, barrier=2, points=10,
                                                         caption=u'achievement_6', description=u'description_6', approved=True)
예제 #23
0
 def test_form_errors(self):
     self.request_login(self.account_2.email)
     with self.check_not_changed(AchievementPrototype._db_all().count):
         self.check_ajax_error(self.post_ajax_json(self.test_url, {}),
                               'accounts.achievements.create.form_errors')
예제 #24
0
 def test_edit_rights_required(self):
     self.request_login(self.account_1.email)
     with self.check_not_changed(AchievementPrototype._db_all().count):
         self.check_ajax_error(
             self.post_ajax_json(self.test_url, self.get_post_data()),
             'accounts.achievements.no_edit_rights')
예제 #25
0
 def test_login_required(self):
     with self.check_not_changed(AchievementPrototype._db_all().count):
         self.check_ajax_error(
             self.post_ajax_json(self.test_url, self.get_post_data()),
             'common.login_required')
예제 #26
0
 def test_save__exception_when_saved_not_stoage_model(self):
     self.assertRaises(
         exceptions.SaveNotRegisteredAchievementError, AchievementPrototype.get_by_id(self.achievement_1.id).save
     )
예제 #27
0
 def test_form_errors(self):
     self.request_login(self.account_2.email)
     with self.check_not_changed(AchievementPrototype._db_all().count):
         self.check_ajax_error(self.post_ajax_json(self.test_url, {}),
                               'accounts.achievements.create.form_errors')
예제 #28
0
    def test_change_pvp_battles_1x1_victories__multiple_victories_achievements(
            self):
        from the_tale.accounts.achievements.relations import ACHIEVEMENT_GROUP, ACHIEVEMENT_TYPE
        from the_tale.accounts.achievements.prototypes import AchievementPrototype, GiveAchievementTaskPrototype

        achievement_1 = AchievementPrototype.create(
            group=ACHIEVEMENT_GROUP.MONEY,
            type=ACHIEVEMENT_TYPE.PVP_VICTORIES_1X1,
            barrier=10,
            points=10,
            caption=u'achievement_1',
            description=u'description_1',
            approved=True)
        achievement_2 = AchievementPrototype.create(
            group=ACHIEVEMENT_GROUP.MONEY,
            type=ACHIEVEMENT_TYPE.PVP_VICTORIES_1X1,
            barrier=20,
            points=10,
            caption=u'achievement_2',
            description=u'description_2',
            approved=True)
        achievement_3 = AchievementPrototype.create(
            group=ACHIEVEMENT_GROUP.MONEY,
            type=ACHIEVEMENT_TYPE.PVP_VICTORIES_1X1,
            barrier=30,
            points=10,
            caption=u'achievement_3',
            description=u'description_3',
            approved=True)
        achievement_4 = AchievementPrototype.create(
            group=ACHIEVEMENT_GROUP.MONEY,
            type=ACHIEVEMENT_TYPE.PVP_VICTORIES_1X1,
            barrier=40,
            points=10,
            caption=u'achievement_4',
            description=u'description_4',
            approved=True)

        self.assertEqual(self.hero.statistics.pvp_battles_1x1_number, 16)

        with self.check_not_changed(GiveAchievementTaskPrototype._db_count):
            self.hero.statistics.change_pvp_battles_1x1_draws(400)
            self.hero.statistics.change_pvp_battles_1x1_defeats(300)

        with self.check_delta(GiveAchievementTaskPrototype._db_count, 3):
            self.hero.statistics.change_pvp_battles_1x1_victories(300)

        self.assertEqual(
            set(GiveAchievementTaskPrototype._db_all().values_list(
                'achievement_id', flat=True)),
            set([achievement_1.id, achievement_2.id, achievement_3.id]))

        with self.check_delta(GiveAchievementTaskPrototype._db_count, 1):
            self.hero.statistics.change_pvp_battles_1x1_victories(200)

        self.assertEqual(
            set(GiveAchievementTaskPrototype._db_all().values_list(
                'achievement_id', flat=True)),
            set([
                achievement_1.id, achievement_2.id, achievement_3.id,
                achievement_4.id
            ]))

        self.assertEqual(self.hero.statistics.pvp_battles_1x1_number, 1216)
        self.assertEqual(self.hero.statistics.pvp_battles_1x1_victories, 516)
        self.assertEqual(self.hero.statistics.pvp_battles_1x1_defeats, 300)
        self.assertEqual(self.hero.statistics.pvp_battles_1x1_draws, 400)
예제 #29
0
 def test_login_required(self):
     with self.check_not_changed(AchievementPrototype._db_all().count):
         self.check_ajax_error(self.post_ajax_json(self.test_url, self.get_post_data()),
                               'common.login_required')
예제 #30
0
 def test_save__exception_when_saved_not_stoage_model(self):
     self.assertRaises(exceptions.SaveNotRegisteredAchievementError, AchievementPrototype.get_by_id(self.achievement_1.id).save)
예제 #31
0
 def test_edit_rights_required(self):
     self.request_login(self.account_1.email)
     with self.check_not_changed(AchievementPrototype._db_all().count):
         self.check_ajax_error(self.post_ajax_json(self.test_url, self.get_post_data()),
                               'accounts.achievements.no_edit_rights')