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
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) ])
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')
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)
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 }
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)
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)
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))
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)
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))
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'))
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)
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))
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, ()))