Skip to content

Commit

Permalink
fixed returning random data for person provider in et_EE locale whe…
Browse files Browse the repository at this point in the history
…n the same seed value is set
  • Loading branch information
AlexLitvino committed Mar 4, 2024
1 parent c5edd4e commit 580f5a7
Show file tree
Hide file tree
Showing 2 changed files with 101 additions and 5 deletions.
10 changes: 5 additions & 5 deletions faker/providers/person/et_EE/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ class Provider(PersonProvider):
prefixes_neutral = ("doktor", "dr", "prof")
prefixes_male = ("härra", "hr") + prefixes_neutral
prefixes_female = ("proua", "pr") + prefixes_neutral
prefixes = list(set(prefixes_male + prefixes_female))
prefixes = sorted(set(prefixes_male + prefixes_female))

suffixes = ("PhD", "MSc", "BSc")

Expand Down Expand Up @@ -162,9 +162,9 @@ class Provider(PersonProvider):

first_names_rus = first_names_male_rus + first_names_female_rus

first_names_male = list(set(first_names_male_est + first_names_male_rus))
first_names_female = list(set(first_names_female_est + first_names_female_rus))
first_names = list(set(first_names_male) | set(first_names_female))
first_names_male = sorted(set(first_names_male_est + first_names_male_rus))
first_names_female = sorted(set(first_names_female_est + first_names_female_rus))
first_names = sorted(set(first_names_male + first_names_female))

# http://ekspress.delfi.ee/kuum/\
# top-500-eesti-koige-levinumad-perekonnanimed?id=27677149
Expand Down Expand Up @@ -681,7 +681,7 @@ class Provider(PersonProvider):
"Žukov",
"Žuravljov",
)
last_names = list(set(last_names_est + last_names_rus))
last_names = sorted(set(last_names_est + last_names_rus))

def first_name_male_est(self) -> str:
return self.random_element(self.first_names_male_est)
Expand Down
96 changes: 96 additions & 0 deletions tests/providers/test_person.py
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@
from faker.providers.person.en_US import Provider as EnUSProvider
from faker.providers.person.es import Provider as EsProvider
from faker.providers.person.es_CO import Provider as EsCOProvider
from faker.providers.person.et_EE import Provider as EtEEProvider
from faker.providers.person.fi_FI import Provider as FiProvider
from faker.providers.person.fr_BE import Provider as FrBEProvider
from faker.providers.person.ga_IE import Provider as GaIEProvider
Expand Down Expand Up @@ -420,6 +421,101 @@ def test_last_name(self):
assert name in self.provider.last_names


class TestEtEE(unittest.TestCase):
def setUp(self):
self.fake = Faker("et_EE")
self.provider = EtEEProvider
Faker.seed(0)

def test_first_name(self):
# General first name
name = self.fake.first_name()
assert name
self.assertIsInstance(name, str)
assert name in self.provider.first_names

# Est first name
name = self.fake.first_name_est()
assert name
self.assertIsInstance(name, str)
assert name in self.provider.first_names
assert name in self.provider.first_names_est

# Rus first name
name = self.fake.first_name_rus()
assert name
self.assertIsInstance(name, str)
assert name in self.provider.first_names
assert name in self.provider.first_names_rus

# Females first name
name = self.fake.first_name_female()
assert name
self.assertIsInstance(name, str)
assert name in self.provider.first_names
assert name in self.provider.first_names_female

# Est females first name
name = self.fake.first_name_female_est()
assert name
self.assertIsInstance(name, str)
assert name in self.provider.first_names
assert name in self.provider.first_names_female
assert name in self.provider.first_names_female_est

# Rus females first name
name = self.fake.first_name_female_rus()
assert name
self.assertIsInstance(name, str)
assert name in self.provider.first_names
assert name in self.provider.first_names_female
assert name in self.provider.first_names_female_rus

# Male first name
name = self.fake.first_name_male()
assert name
self.assertIsInstance(name, str)
assert name in self.provider.first_names
assert name in self.provider.first_names_male

# Est male first name
name = self.fake.first_name_male_est()
assert name
self.assertIsInstance(name, str)
assert name in self.provider.first_names
assert name in self.provider.first_names_male
assert name in self.provider.first_names_male_est

# Rus male first name
name = self.fake.first_name_male_rus()
assert name
self.assertIsInstance(name, str)
assert name in self.provider.first_names
assert name in self.provider.first_names_male
assert name in self.provider.first_names_male_rus

def test_last_name(self):
# General last name.
name = self.fake.last_name()
assert name
self.assertIsInstance(name, str)
assert name in self.provider.last_names

# Est last name.
name = self.fake.last_name_est()
assert name
self.assertIsInstance(name, str)
assert name in self.provider.last_names
assert name in self.provider.last_names_est

# Rus last name.
name = self.fake.last_name_rus()
assert name
self.assertIsInstance(name, str)
assert name in self.provider.last_names
assert name in self.provider.last_names_rus


class TestFiFI(unittest.TestCase):
def setUp(self):
self.fake = Faker("fi_FI")
Expand Down

0 comments on commit 580f5a7

Please sign in to comment.