コード例 #1
0
    def setUp(self):
        super(RepairBuildingMixin, self).setUp()

        self.place_1, self.place_2, self.place_3 = create_test_map()

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

        self.storage = LogicStorage()
        self.storage.load_account_data(self.account_1)
        self.storage.load_account_data(self.account_2)

        self.hero = self.storage.accounts_to_heroes[self.account_1.id]

        environment.deinitialize()
        environment.initialize()

        self.highlevel = environment.workers.highlevel
        self.highlevel.process_initialize(0, 'highlevel')

        self.building_1 = places_logic.create_building(person=self.place_1.persons[0], utg_name=names.generator().get_test_name('building-1-name'))
        self.building_2 = places_logic.create_building(person=self.place_2.persons[0], utg_name=names.generator().get_test_name('building-1-name'))

        self.building_1.integrity = 0
        self.building_2.integrity = 0
コード例 #2
0
    def test_has_building(self):
        places_logic.create_building(
            self.person, utg_name=names.generator().get_test_name())

        impacts = list(
            logic.tt_power_impacts(person_inner_circle=True,
                                   place_inner_circle=True,
                                   actor_type=self.actor_type,
                                   actor_id=self.actor_id,
                                   person=self.person,
                                   amount=self.amount,
                                   fame=self.fame))

        multiplier = (1 + c.BUILDING_PERSON_POWER_BONUS * 0.75)

        expected_power = round(self.person.place.attrs.freedom * self.amount *
                               multiplier)

        self.assertCountEqual(impacts, [
            tt_api_impacts.PowerImpact(
                type=tt_api_impacts.IMPACT_TYPE.INNER_CIRCLE,
                actor_type=self.actor_type,
                actor_id=self.actor_id,
                target_type=tt_api_impacts.OBJECT_TYPE.PERSON,
                target_id=self.person.id,
                amount=expected_power),
            tt_api_impacts.PowerImpact(
                type=tt_api_impacts.IMPACT_TYPE.JOB,
                actor_type=self.actor_type,
                actor_id=self.actor_id,
                target_type=tt_api_impacts.OBJECT_TYPE.JOB_PERSON_POSITIVE,
                target_id=self.person.id,
                amount=expected_power),
            tt_api_impacts.PowerImpact(
                type=tt_api_impacts.IMPACT_TYPE.JOB,
                actor_type=self.actor_type,
                actor_id=self.actor_id,
                target_type=tt_api_impacts.OBJECT_TYPE.JOB_PLACE_POSITIVE,
                target_id=self.person.place.id,
                amount=expected_power),
            tt_api_impacts.PowerImpact(
                type=tt_api_impacts.IMPACT_TYPE.INNER_CIRCLE,
                actor_type=self.actor_type,
                actor_id=self.actor_id,
                target_type=tt_api_impacts.OBJECT_TYPE.PLACE,
                target_id=self.person.place.id,
                amount=expected_power),
            tt_api_impacts.PowerImpact(
                type=tt_api_impacts.IMPACT_TYPE.FAME,
                actor_type=self.actor_type,
                actor_id=self.actor_id,
                target_type=tt_api_impacts.OBJECT_TYPE.PLACE,
                target_id=self.person.place.id,
                amount=self.fame * self.person.attrs.places_help_amount)
        ])
コード例 #3
0
    def setUp(self):
        super(BuildingDestroyTests, self).setUp()

        self.person_1 = self.place1.persons[0]
        self.person_2 = self.place2.persons[0]
        self.person_3 = self.place3.persons[0]

        self.building_1 = places_logic.create_building(self.person_1, utg_name=names.generator().get_test_name('building-name-1'))
        self.building_2 = places_logic.create_building(self.person_2, utg_name=names.generator().get_test_name('building-name-2'))

        self.bill_data = BuildingDestroy(person_id=self.person_1.id, old_place_name_forms=self.place1.utg_name)
        self.bill = BillPrototype.create(self.account1, 'bill-1-caption', 'bill-1-rationale', self.bill_data, chronicle_on_accepted='chronicle-on-accepted')
コード例 #4
0
ファイル: test_logic.py プロジェクト: Redneck-prm/the-tale
    def test_change_power__has_building__amortization(self):
        self.assertEqual(c.BUILDING_PERSON_POWER_BONUS, 0.5)

        places_logic.create_building(
            self.person,
            utg_name=names.generator().get_test_name('building-name'))

        with self.check_decreased(lambda: self.person.politic_power.
                                  change_power(person=self.person,
                                               hero_id=None,
                                               has_in_preferences=False,
                                               power=1000)):
            self.person.building.amortize(1000)
コード例 #5
0
    def setUp(self):
        super(UseCardTaskTests, self).setUp()

        self.place_1, self.place_2, self.place_3 = create_test_map()

        self.account = self.accounts_factory.create_account()
        self.storage = LogicStorage()
        self.storage.load_account_data(self.account)
        self.hero = self.storage.accounts_to_heroes[self.account.id]

        self.building_1 = places_logic.create_building(
            person=self.place_1.persons[0],
            utg_name=names.generator().get_test_name('building-1-name'))

        environment.deinitialize()
        environment.initialize()

        self.highlevel = environment.workers.highlevel
        self.highlevel.process_initialize(0, 'highlevel')

        self.task_data = {
            'place_id': self.place_1.id,
            'person_id': self.place_1.persons[0].id,
            'building_id': self.building_1.id
        }
コード例 #6
0
    def setUp(self):
        super(BuildingRepairTest, self).setUp()

        self.place_1, self.place_2, self.place_3 = create_test_map()

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

        self.storage = LogicStorage()
        self.storage.load_account_data(self.account_1)
        self.storage.load_account_data(self.account_2)

        self.hero_1 = self.storage.accounts_to_heroes[self.account_1.id]
        self.hero_2 = self.storage.accounts_to_heroes[self.account_2.id]

        self.ability_1 = self.PROCESSOR()
        self.ability_2 = self.PROCESSOR()

        environment.deinitialize()
        environment.initialize()

        self.highlevel = environment.workers.highlevel
        self.highlevel.process_initialize(0, 'highlevel')

        self.building = places_logic.create_building(self.place_1.persons[0], utg_name=names.generator().get_test_name('building-name'))
        self.building.integrity = 0.5
        places_logic.save_building(self.building)
コード例 #7
0
    def test_user_form_choices(self):

        places_logic.create_building(
            self.place2.persons[0],
            utg_name=names.generator().get_test_name('r-building-name'))

        form = self.bill.data.get_user_form_update(
            initial={'person': self.bill.data.person_id})

        persons_ids = []

        for city_name, person_choices in form.fields['person'].choices:
            persons_ids.extend(choice_id
                               for choice_id, choice_name in person_choices)

        self.assertTrue(self.bill.data.person_id in persons_ids)

        self.check_persons_from_place_in_choices(self.place1, persons_ids)
        self.check_persons_from_place_in_choices(self.place2, persons_ids)
        self.check_persons_from_place_in_choices(self.place3, persons_ids)
コード例 #8
0
ファイル: test_objects.py プロジェクト: Redneck-prm/the-tale
    def test_power_from_building(self):

        with mock.patch(
                'the_tale.game.workers.highlevel.Worker.cmd_change_power'
        ) as change_person_power_call:
            self.person.cmd_change_power(hero_id=666,
                                         has_place_in_preferences=False,
                                         has_person_in_preferences=False,
                                         power=100)

        self.assertEqual(
            change_person_power_call.call_args,
            mock.call(hero_id=666,
                      has_place_in_preferences=False,
                      has_person_in_preferences=False,
                      person_id=self.person.id,
                      power_delta=100,
                      place_id=None))

        places_logic.create_building(
            self.person,
            utg_name=names.generator().get_test_name('building-name'))

        with mock.patch(
                'the_tale.game.workers.highlevel.Worker.cmd_change_power'
        ) as change_person_power_call:
            self.person.cmd_change_power(hero_id=666,
                                         has_place_in_preferences=False,
                                         has_person_in_preferences=False,
                                         power=-100)

        self.assertEqual(
            change_person_power_call.call_args,
            mock.call(hero_id=666,
                      has_place_in_preferences=False,
                      has_person_in_preferences=False,
                      person_id=self.person.id,
                      power_delta=-100,
                      place_id=None))
コード例 #9
0
 def test_building(self):
     building = places_logic.create_building(
         self.place_1.persons[0],
         utg_name=names.generator().get_test_name('building-name'))
     texts = [
         building.type.text,
         jinja2.escape(building.person.name),
         jinja2.escape(self.place_1.name)
     ]
     self.check_html_ok(self.request_html(
         reverse('game:map:cell-info') + ('?x=%d&y=%d' %
                                          (building.x, building.y))),
                        texts=texts)
コード例 #10
0
ファイル: test_logic.py プロジェクト: Redneck-prm/the-tale
    def test_change_power__has_building(self):
        self.assertEqual(c.BUILDING_PERSON_POWER_BONUS, 0.5)

        places_logic.create_building(
            self.person,
            utg_name=names.generator().get_test_name('building-name'))

        with mock.patch('the_tale.game.politic_power.PoliticPower.change_power'
                        ) as change_power:
            self.assertEqual(
                self.person.politic_power.change_power(
                    person=self.person,
                    hero_id=None,
                    has_in_preferences=False,
                    power=1000), 1500)

        self.assertEqual(
            change_power.call_args,
            mock.call(owner=self.person,
                      hero_id=None,
                      has_in_preferences=False,
                      power=750))
コード例 #11
0
    def setUp(self):
        super(CardsRequestsTestsBase, self).setUp()

        self.place_1, self.place_2, self.place_3 = create_test_map()

        self.account = self.accounts_factory.create_account()
        self.storage = LogicStorage()
        self.storage.load_account_data(self.account)
        self.hero = self.storage.accounts_to_heroes[self.account.id]

        self.card = objects.Card(relations.CARD_TYPE.KEEPERS_GOODS_COMMON)

        self.building_1 = places_logic.create_building(
            person=self.place_1.persons[0],
            utg_name=names.generator().get_test_name('building-1-name'))
コード例 #12
0
ファイル: test_generator.py プロジェクト: serhii73/the-tale
    def test_building_power_point(self):
        building = places_logic.create_building(
            self.place_1.persons[0],
            utg_name=names.generator().get_test_name('building-name'))

        self.assertTrue(len(get_building_power_points(building)) > 0)
コード例 #13
0
 def apply(self, bill=None):
     if self.has_meaning():
         places_logic.create_building(self.person,
                                      utg_name=self.building_name_forms,
                                      position=(self.x, self.y))
コード例 #14
0
    def test_use_for_repaired_building(self):
        self.building = places_logic.create_building(self.place_1.persons[0], utg_name=names.generator().get_test_name('building-name'))
        self.building.integrity = 1.0
        places_logic.save_building(self.building)

        self.assertEqual(self.ability_1.use(**self.use_attributes(hero=self.hero_1, storage=self.storage)), (ComplexChangeTask.RESULT.FAILED, ComplexChangeTask.STEP.ERROR, ()))