def test_get_citizens_number(self): hero_1 = self.hero hero_1.preferences.set(relations.PREFERENCE_TYPE.PLACE, self.place) hero_1.premium_state_end_at = datetime.datetime.now( ) + datetime.timedelta(seconds=60) logic.save_hero(hero_1) account_2 = self.accounts_factory.create_account() hero_2 = logic.load_hero(account_id=account_2.id) hero_2.preferences.set(relations.PREFERENCE_TYPE.PLACE, self.place) logic.save_hero(hero_2) account_3 = self.accounts_factory.create_account() hero_3 = logic.load_hero(account_id=account_3.id) hero_3.preferences.set(relations.PREFERENCE_TYPE.PLACE, self.place) hero_3.premium_state_end_at = datetime.datetime.now( ) + datetime.timedelta(seconds=60) logic.save_hero(hero_3) account_4 = self.accounts_factory.create_account(is_fast=True) hero_4 = logic.load_hero(account_id=account_4.id) hero_4.preferences.set(relations.PREFERENCE_TYPE.PLACE, self.place) logic.save_hero(hero_4) account_5 = self.accounts_factory.create_account() hero_5 = logic.load_hero(account_id=account_5.id) hero_5.preferences.set(relations.PREFERENCE_TYPE.PLACE, self.place) hero_5.ban_state_end_at = datetime.datetime.now() + datetime.timedelta( seconds=60) logic.save_hero(hero_5) account_6 = self.accounts_factory.create_account() hero_6 = logic.load_hero(account_id=account_6.id) hero_6.preferences.set(relations.PREFERENCE_TYPE.PLACE, self.place_2) hero_6.premium_state_end_at = datetime.datetime.now( ) + datetime.timedelta(seconds=60) logic.save_hero(hero_6) account_7 = self.accounts_factory.create_account() hero_7 = logic.load_hero(account_id=account_7.id) hero_7.preferences.set(relations.PREFERENCE_TYPE.PLACE, self.place) hero_7.active_state_end_at = datetime.datetime.now( ) - datetime.timedelta(seconds=60) logic.save_hero(hero_7) self.assertEqual( set([ h.id for h in HeroPreferences.get_citizens_of(self.place, all=False) ]), set([hero_1.id, hero_3.id])) self.assertEqual( set([ h.id for h in HeroPreferences.get_citizens_of(self.place, all=True) ]), set([hero_1.id, hero_2.id, hero_3.id]))
def place_info(place): data = {'id': place.id, 'name': place.name, 'frontier': place.is_frontier, 'new_for': time.mktime(place.new_for.timetuple()), 'position': {'x': place.x, 'y': place.y}, 'updated_at': time.mktime(place.updated_at.timetuple()), 'power': { 'positive_bonus': place.power_positive, 'negative_bonus': place.power_negative }, 'description': place.description_html, 'persons': place_info_persons_data(place), 'keepers': {'friends': [hero.account_id for hero in HeroPreferences.get_citizens_of(place, all=place.depends_from_all_heroes)] , 'enemies': []}, 'parameters': place_info_parameters(place), 'demographics': place_info_demographics(place), 'bills': place_info_bills(place), 'specializations': place_info_specializations(place), 'habits': place_info_habits(place), 'chronicle': place_info_cronicle(place), 'accounts': None, 'clans': None } data['accounts'] = place_info_accounts(data) data['clans'] = place_info_clans(data) return data
def place_info(place): data = { 'id': place.id, 'name': place.name, 'frontier': place.is_frontier, 'new_for': time.mktime(place.new_for.timetuple()), 'position': { 'x': place.x, 'y': place.y }, 'updated_at': time.mktime(place.updated_at.timetuple()), 'power': { 'positive_bonus': place.power_positive, 'negative_bonus': place.power_negative }, 'description': place.description_html, 'persons': place_info_persons_data(place), 'keepers': { 'friends': [ hero.account_id for hero in HeroPreferences.get_citizens_of( place, all=place.depends_from_all_heroes) ], 'enemies': [] }, 'parameters': place_info_parameters(place), 'demographics': place_info_demographics(place), 'bills': place_info_bills(place), 'specializations': place_info_specializations(place), 'habits': place_info_habits(place), 'chronicle': place_info_cronicle(place), 'accounts': None, 'clans': None } data['accounts'] = place_info_accounts(data) data['clans'] = place_info_clans(data) return data