Esempio n. 1
0
    def test_process_not_for_heroes(self):
        task = ChooseHeroAbilityTask(self.hero.id, self.get_only_for_mobs_ability_id())

        with mock.patch('the_tale.game.heroes.habilities.AbilitiesPrototype.get_for_choose', lambda x: [ABILITIES[task.ability_id]]):
            self.assertEqual(task.process(FakePostpondTaskPrototype(), self.storage), POSTPONED_TASK_LOGIC_RESULT.ERROR)

        self.assertEqual(task.state, CHOOSE_HERO_ABILITY_STATE.NOT_FOR_PLAYERS)
Esempio n. 2
0
 def test_process_id_not_in_choices(self):
     task = ChooseHeroAbilityTask(self.hero.id,
                                  self.get_unchoosed_ability_id())
     self.assertEqual(
         task.process(FakePostpondTaskPrototype(), self.storage),
         POSTPONED_TASK_LOGIC_RESULT.ERROR)
     self.assertEqual(task.state,
                      CHOOSE_HERO_ABILITY_STATE.NOT_IN_CHOICE_LIST)
Esempio n. 3
0
    def test_process_no_freee_ability_points(self):

        task = ChooseHeroAbilityTask(self.hero.id, self.get_new_ability_id())

        with mock.patch("the_tale.game.heroes.habilities.AbilitiesPrototype.can_choose_new_ability", False):
            self.assertEqual(task.process(FakePostpondTaskPrototype(), self.storage), POSTPONED_TASK_LOGIC_RESULT.ERROR)

        self.assertEqual(task.state, CHOOSE_HERO_ABILITY_STATE.MAXIMUM_ABILITY_POINTS_NUMBER)
Esempio n. 4
0
    def test_process_already_max_level(self):
        task = ChooseHeroAbilityTask(self.hero.id, battle_abilities.HIT.get_id())

        self.hero.abilities.abilities[battle_abilities.HIT.get_id()].level = battle_abilities.HIT.MAX_LEVEL
        self.hero.abilities.updated = True
        self.hero.save()

        with mock.patch('the_tale.game.heroes.habilities.AbilitiesPrototype.get_for_choose', lambda x: [ABILITIES[task.ability_id]]):
            with mock.patch('the_tale.game.heroes.habilities.AbilitiesPrototype.can_choose_new_ability', True):
                self.assertEqual(task.process(FakePostpondTaskPrototype(), self.storage), POSTPONED_TASK_LOGIC_RESULT.ERROR)
        self.assertEqual(task.state, CHOOSE_HERO_ABILITY_STATE.ALREADY_MAX_LEVEL)
Esempio n. 5
0
    def test_process_not_for_heroes(self):
        task = ChooseHeroAbilityTask(self.hero.id,
                                     self.get_only_for_mobs_ability_id())

        with mock.patch(
                'the_tale.game.heroes.habilities.AbilitiesPrototype.get_for_choose',
                lambda x: [ABILITIES[task.ability_id]]):
            self.assertEqual(
                task.process(FakePostpondTaskPrototype(), self.storage),
                POSTPONED_TASK_LOGIC_RESULT.ERROR)

        self.assertEqual(task.state, CHOOSE_HERO_ABILITY_STATE.NOT_FOR_PLAYERS)
Esempio n. 6
0
    def test_process_no_freee_ability_points(self):

        task = ChooseHeroAbilityTask(self.hero.id, self.get_new_ability_id())

        with mock.patch(
                'the_tale.game.heroes.habilities.AbilitiesPrototype.can_choose_new_ability',
                False):
            self.assertEqual(
                task.process(FakePostpondTaskPrototype(), self.storage),
                POSTPONED_TASK_LOGIC_RESULT.ERROR)

        self.assertEqual(
            task.state,
            CHOOSE_HERO_ABILITY_STATE.MAXIMUM_ABILITY_POINTS_NUMBER)
Esempio n. 7
0
    def test_process_already_max_level(self):
        task = ChooseHeroAbilityTask(self.hero.id,
                                     battle_abilities.HIT.get_id())

        self.hero.abilities.abilities[battle_abilities.HIT.get_id(
        )].level = battle_abilities.HIT.MAX_LEVEL
        logic.save_hero(self.hero)

        with mock.patch(
                'the_tale.game.heroes.habilities.AbilitiesPrototype.get_for_choose',
                lambda x: [ABILITIES[task.ability_id]]):
            with mock.patch(
                    'the_tale.game.heroes.habilities.AbilitiesPrototype.can_choose_new_ability',
                    True):
                self.assertEqual(
                    task.process(FakePostpondTaskPrototype(), self.storage),
                    POSTPONED_TASK_LOGIC_RESULT.ERROR)
        self.assertEqual(task.state,
                         CHOOSE_HERO_ABILITY_STATE.ALREADY_MAX_LEVEL)
Esempio n. 8
0
 def test_process_success(self):
     task = ChooseHeroAbilityTask(self.hero.id, self.get_new_ability_id())
     self.assertEqual(
         task.process(FakePostpondTaskPrototype(), self.storage),
         POSTPONED_TASK_LOGIC_RESULT.SUCCESS)
     self.assertEqual(task.state, CHOOSE_HERO_ABILITY_STATE.PROCESSED)
Esempio n. 9
0
 def test_process_wrong_id(self):
     task = ChooseHeroAbilityTask(self.hero.id, 'ssadasda')
     self.assertEqual(
         task.process(FakePostpondTaskPrototype(), self.storage),
         POSTPONED_TASK_LOGIC_RESULT.ERROR)
     self.assertEqual(task.state, CHOOSE_HERO_ABILITY_STATE.WRONG_ID)
Esempio n. 10
0
 def test_serialization(self):
     task = ChooseHeroAbilityTask(self.hero.id, self.get_new_ability_id())
     self.assertEqual(
         task.serialize(),
         ChooseHeroAbilityTask.deserialize(task.serialize()).serialize())
Esempio n. 11
0
 def test_create(self):
     task = ChooseHeroAbilityTask(self.hero.id, self.get_new_ability_id())
     self.assertEqual(task.hero_id, self.hero.id)
     self.assertEqual(task.state, CHOOSE_HERO_ABILITY_STATE.UNPROCESSED)
Esempio n. 12
0
 def test_process_success(self):
     task = ChooseHeroAbilityTask(self.hero.id, self.get_new_ability_id())
     self.assertEqual(task.process(FakePostpondTaskPrototype(), self.storage), POSTPONED_TASK_LOGIC_RESULT.SUCCESS)
     self.assertEqual(task.state, CHOOSE_HERO_ABILITY_STATE.PROCESSED)
Esempio n. 13
0
 def test_process_id_not_in_choices(self):
     task = ChooseHeroAbilityTask(self.hero.id, self.get_unchoosed_ability_id())
     self.assertEqual(task.process(FakePostpondTaskPrototype(), self.storage), POSTPONED_TASK_LOGIC_RESULT.ERROR)
     self.assertEqual(task.state, CHOOSE_HERO_ABILITY_STATE.NOT_IN_CHOICE_LIST)
Esempio n. 14
0
 def test_process_wrong_id(self):
     task = ChooseHeroAbilityTask(self.hero.id, "ssadasda")
     self.assertEqual(task.process(FakePostpondTaskPrototype(), self.storage), POSTPONED_TASK_LOGIC_RESULT.ERROR)
     self.assertEqual(task.state, CHOOSE_HERO_ABILITY_STATE.WRONG_ID)
Esempio n. 15
0
 def test_serialization(self):
     task = ChooseHeroAbilityTask(self.hero.id, self.get_new_ability_id())
     self.assertEqual(task.serialize(), ChooseHeroAbilityTask.deserialize(task.serialize()).serialize())