Ejemplo n.º 1
0
    def test_get_friends_number(self):
        hero_1 = self.hero

        account_2 = self.accounts_factory.create_account()
        hero_2 = logic.load_hero(account_id=account_2.id)

        account_3 = self.accounts_factory.create_account()
        hero_3 = logic.load_hero(account_id=account_3.id)

        person_1 = self.place_1.persons[0]
        person_2 = self.place_1.persons[-1]

        hero_1.preferences.set(relations.PREFERENCE_TYPE.FRIEND, person_1)
        hero_1.premium_state_end_at = datetime.datetime.now(
        ) + datetime.timedelta(seconds=60)
        logic.save_hero(hero_1)

        hero_2.preferences.set(relations.PREFERENCE_TYPE.FRIEND, person_1)
        logic.save_hero(hero_2)

        hero_3.preferences.set(relations.PREFERENCE_TYPE.FRIEND, person_1)
        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.FRIEND, person_1)
        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.FRIEND, person_1)
        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.FRIEND, person_1)
        hero_6.active_state_end_at = datetime.datetime.now(
        ) - datetime.timedelta(seconds=60)
        logic.save_hero(hero_6)

        self.assertEqual(
            set([
                h.id
                for h in HeroPreferences.get_friends_of(person_1, all=False)
            ]), set([hero_1.id, hero_3.id]))
        self.assertEqual(
            set([
                h.id
                for h in HeroPreferences.get_friends_of(person_1, all=True)
            ]), set([hero_1.id, hero_2.id, hero_3.id]))
Ejemplo n.º 2
0
def place_info_persons_data(place):
    data = []

    for person in place.persons:
        building = storage.buildings_storage.get_by_person_id(person.id)

        connections = [(connection_type.value, person_id)
                       for connection_type, person_id in persons_storage.social_connections.get_person_connections(person)]
        connections.sort()

        person_data = {'id': person.id,
                       'name': person.name,
                       'gender': person.gender.value,
                       'race': person.race.value,
                       'type': person.type.value,
                       'unfreeze_in': person.time_before_unfreeze.total_seconds(),
                       'mastery': {'value': person.mastery,
                                   'name': person.mastery_verbose},
                       'power': { 'percents': person.power / place.total_persons_power if place.total_persons_power > 0 else 0,
                                  'positive_bonus': person.power_positive,
                                  'negative_bonus': person.power_negative },
                       'building': building.id if building else None,
                       'connections': connections,
                       'keepers': {'friends': [hero.account_id for hero in HeroPreferences.get_friends_of(person, all=place.depends_from_all_heroes)],
                                   'enemies': [hero.account_id for hero in HeroPreferences.get_enemies_of(person, all=place.depends_from_all_heroes)]} }
        data.append(person_data)

    return data
Ejemplo n.º 3
0
def place_info_persons_data(place):
    data = []

    for person in place.persons:
        building = storage.buildings_storage.get_by_person_id(person.id)

        connections = [
            (connection_type.value, person_id)
            for connection_type, person_id in
            persons_storage.social_connections.get_person_connections(person)
        ]
        connections.sort()

        person_data = {
            'id': person.id,
            'name': person.name,
            'gender': person.gender.value,
            'race': person.race.value,
            'type': person.type.value,
            'unfreeze_in': person.time_before_unfreeze.total_seconds(),
            'mastery': {
                'value': person.mastery,
                'name': person.mastery_verbose
            },
            'power': {
                'percents':
                person.power / place.total_persons_power
                if place.total_persons_power > 0 else 0,
                'positive_bonus':
                person.power_positive,
                'negative_bonus':
                person.power_negative
            },
            'building': building.id if building else None,
            'connections': connections,
            'keepers': {
                'friends': [
                    hero.account_id for hero in HeroPreferences.get_friends_of(
                        person, all=place.depends_from_all_heroes)
                ],
                'enemies': [
                    hero.account_id for hero in HeroPreferences.get_enemies_of(
                        person, all=place.depends_from_all_heroes)
                ]
            }
        }
        data.append(person_data)

    return data