Beispiel #1
0
def test_nationality(personal, gender):
    if personal.locale in ['ru', 'uk', 'kk']:
        result = personal.nationality(gender=gender)
        checked_gender = check_gender(gender)
        assert result in personal.data['nationality'][checked_gender]

    result = personal.nationality()
    assert result is not None
Beispiel #2
0
def test_surname(personal, gender):
    if personal.locale in settings.SURNAMES_SEPARATED_BY_GENDER:

        result = personal.surname(gender=gender)
        checked_gender = check_gender(gender)
        assert result in personal.data['surnames'][checked_gender]
    else:
        result = personal.surname()
        assert result in personal.data['surnames']
Beispiel #3
0
    def patronymic(self, gender=None):
        """Generate random patronymic name.

        :param gender: Gender of person.
        :return: Patronymic name.
        :Example:
            Алексеевна.
        """
        gender = check_gender(gender)
        patronymics = self._data['patronymic'][gender]
        return self.random.choice(patronymics)
Beispiel #4
0
    def name(self, gender=None):
        """Get a random name.

        :param gender: if 'male' then will returned male name,
        if 'female' then female name,  if None return random from ones.
        :return: Name.
        :Example:
            John.
        """
        gender = check_gender(gender)
        names = self.data['names'][gender]
        return self.random.choice(names)
Beispiel #5
0
    def name(self, gender: Gender = 0) -> str:
        """Get a random name.

        :param gender: if 'male' then will returned male name,
            if 'female' then female name,  if None return random from ones.
        :type gender: int or str
        :return: Name.

        :Example:
            John.
        """
        gender = check_gender(gender)
        names = self.data['names'].get(gender)
        return self.random.choice(names)
Beispiel #6
0
    def surname(self, gender=None):
        """Get a random surname.

        :param gender: The gender of person.
        :return: Surname.
        :Example:
            Smith.
        """
        surnames = self.data['surnames']

        # Separated by gender.
        if self.locale in SURNAMES_SEPARATED_BY_GENDER:
            gender = check_gender(gender)
            return self.random.choice(surnames[gender], )

        return self.random.choice(surnames)
Beispiel #7
0
    def title(self, gender=None, title_type='typical'):
        """Get a random title (prefix/suffix) for name.

        :param gender: The gender.
        :param title_type:  The type of title ('typical' and 'academic').
        :return: The title.
        :Example:
            PhD.
        """
        try:
            gender = check_gender(gender)
            titles = self.data['title'][gender][title_type]
        except KeyError:
            raise WrongArgument('Wrong value of argument.')

        title = self.random.choice(titles)
        return title
Beispiel #8
0
    def full_name(self, gender=None, reverse=False):
        """Generate a random full name.

        :param reverse: if true: surname/name else name/surname
        :param gender: if gender='male' then will be returned male name else
            female name.
        :return: Full name.
        :Example:
            Johann Wolfgang.
        """
        gender = check_gender(gender)

        fmt = '{1} {0}' if reverse else '{0} {1}'
        return fmt.format(
            self.name(gender),
            self.surname(gender),
        )
Beispiel #9
0
    def surname(self, gender: Gender = 0) -> str:
        """Get a random surname.

        :param gender: The gender of person.
        :type gender: int of str
        :return: Surname.

        :Example:
            Smith.
        """
        surnames = self.data['surnames']

        # Separated by gender.
        if self.locale in SURNAMES_SEPARATED_BY_GENDER:
            gender = check_gender(gender)
            return self.random.choice(surnames.get(gender), )

        return self.random.choice(surnames)
Beispiel #10
0
    def full_name(self, gender: Gender = 0, reverse: bool = False) -> str:
        """Generate a random full name.

        :param bool reverse: Return reversed full name.
        :param gender: Gender.
        :type gender: int or str
        :return: Full name.

        :Example:
            Johann Wolfgang.
        """
        gender = check_gender(gender)

        fmt = '{1} {0}' if reverse else '{0} {1}'
        return fmt.format(
            self.name(gender),
            self.surname(gender),
        )
Beispiel #11
0
    def nationality(self, gender=None):
        """Get a random nationality.

        :param gender: Gender.
        :return: Nationality.
        :Example:
            Russian.
        """
        # Subtleties of the orthography.
        separated_locales = ['ru', 'uk', 'kk']

        nationalities = self.data['nationality']

        if self.locale in separated_locales:
            gender = check_gender(gender)
            nations = nationalities[gender]
            return self.random.choice(nations)

        return self.random.choice(nationalities)
Beispiel #12
0
    def title(self, gender: Gender = 0, title_type: str = 'typical') -> str:
        """Get a random title (prefix/suffix) for name.

        :param gender: The gender.
        :type gender: int or str
        :param str title_type:  The type of title ('typical' and 'academic').
        :return: The title.
        :raises WrongArgument: if gender in incorrect format.

        :Example:
            PhD.
        """
        try:
            gender = check_gender(gender)
            titles = self.data['title'].get(gender).get(title_type)
        except KeyError:
            raise WrongArgument('Wrong value of argument.')

        title = self.random.choice(titles)
        return title
Beispiel #13
0
def test_name(personal, gender):
    result = personal.name(gender=gender)
    checked_gender = check_gender(gender)
    assert result in personal.data['names'][checked_gender]
Beispiel #14
0
def test_check_gender_invalid_gender():
    with pytest.raises(UnexpectedGender):
        check_gender(gender='other')
Beispiel #15
0
def test_check_gender(abbr, gender):
    result = check_gender(abbr)
    assert result == gender or result in gender