Skip to content

Commit 580f5a7

Browse files
authored
fixed returning random data for person provider in et_EE locale when the same seed value is set
1 parent c5edd4e commit 580f5a7

File tree

2 files changed

+101
-5
lines changed

2 files changed

+101
-5
lines changed

Diff for: faker/providers/person/et_EE/__init__.py

+5-5
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ class Provider(PersonProvider):
3333
prefixes_neutral = ("doktor", "dr", "prof")
3434
prefixes_male = ("härra", "hr") + prefixes_neutral
3535
prefixes_female = ("proua", "pr") + prefixes_neutral
36-
prefixes = list(set(prefixes_male + prefixes_female))
36+
prefixes = sorted(set(prefixes_male + prefixes_female))
3737

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

@@ -162,9 +162,9 @@ class Provider(PersonProvider):
162162

163163
first_names_rus = first_names_male_rus + first_names_female_rus
164164

165-
first_names_male = list(set(first_names_male_est + first_names_male_rus))
166-
first_names_female = list(set(first_names_female_est + first_names_female_rus))
167-
first_names = list(set(first_names_male) | set(first_names_female))
165+
first_names_male = sorted(set(first_names_male_est + first_names_male_rus))
166+
first_names_female = sorted(set(first_names_female_est + first_names_female_rus))
167+
first_names = sorted(set(first_names_male + first_names_female))
168168

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

686686
def first_name_male_est(self) -> str:
687687
return self.random_element(self.first_names_male_est)

Diff for: tests/providers/test_person.py

+96
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
from faker.providers.person.en_US import Provider as EnUSProvider
1616
from faker.providers.person.es import Provider as EsProvider
1717
from faker.providers.person.es_CO import Provider as EsCOProvider
18+
from faker.providers.person.et_EE import Provider as EtEEProvider
1819
from faker.providers.person.fi_FI import Provider as FiProvider
1920
from faker.providers.person.fr_BE import Provider as FrBEProvider
2021
from faker.providers.person.ga_IE import Provider as GaIEProvider
@@ -420,6 +421,101 @@ def test_last_name(self):
420421
assert name in self.provider.last_names
421422

422423

424+
class TestEtEE(unittest.TestCase):
425+
def setUp(self):
426+
self.fake = Faker("et_EE")
427+
self.provider = EtEEProvider
428+
Faker.seed(0)
429+
430+
def test_first_name(self):
431+
# General first name
432+
name = self.fake.first_name()
433+
assert name
434+
self.assertIsInstance(name, str)
435+
assert name in self.provider.first_names
436+
437+
# Est first name
438+
name = self.fake.first_name_est()
439+
assert name
440+
self.assertIsInstance(name, str)
441+
assert name in self.provider.first_names
442+
assert name in self.provider.first_names_est
443+
444+
# Rus first name
445+
name = self.fake.first_name_rus()
446+
assert name
447+
self.assertIsInstance(name, str)
448+
assert name in self.provider.first_names
449+
assert name in self.provider.first_names_rus
450+
451+
# Females first name
452+
name = self.fake.first_name_female()
453+
assert name
454+
self.assertIsInstance(name, str)
455+
assert name in self.provider.first_names
456+
assert name in self.provider.first_names_female
457+
458+
# Est females first name
459+
name = self.fake.first_name_female_est()
460+
assert name
461+
self.assertIsInstance(name, str)
462+
assert name in self.provider.first_names
463+
assert name in self.provider.first_names_female
464+
assert name in self.provider.first_names_female_est
465+
466+
# Rus females first name
467+
name = self.fake.first_name_female_rus()
468+
assert name
469+
self.assertIsInstance(name, str)
470+
assert name in self.provider.first_names
471+
assert name in self.provider.first_names_female
472+
assert name in self.provider.first_names_female_rus
473+
474+
# Male first name
475+
name = self.fake.first_name_male()
476+
assert name
477+
self.assertIsInstance(name, str)
478+
assert name in self.provider.first_names
479+
assert name in self.provider.first_names_male
480+
481+
# Est male first name
482+
name = self.fake.first_name_male_est()
483+
assert name
484+
self.assertIsInstance(name, str)
485+
assert name in self.provider.first_names
486+
assert name in self.provider.first_names_male
487+
assert name in self.provider.first_names_male_est
488+
489+
# Rus male first name
490+
name = self.fake.first_name_male_rus()
491+
assert name
492+
self.assertIsInstance(name, str)
493+
assert name in self.provider.first_names
494+
assert name in self.provider.first_names_male
495+
assert name in self.provider.first_names_male_rus
496+
497+
def test_last_name(self):
498+
# General last name.
499+
name = self.fake.last_name()
500+
assert name
501+
self.assertIsInstance(name, str)
502+
assert name in self.provider.last_names
503+
504+
# Est last name.
505+
name = self.fake.last_name_est()
506+
assert name
507+
self.assertIsInstance(name, str)
508+
assert name in self.provider.last_names
509+
assert name in self.provider.last_names_est
510+
511+
# Rus last name.
512+
name = self.fake.last_name_rus()
513+
assert name
514+
self.assertIsInstance(name, str)
515+
assert name in self.provider.last_names
516+
assert name in self.provider.last_names_rus
517+
518+
423519
class TestFiFI(unittest.TestCase):
424520
def setUp(self):
425521
self.fake = Faker("fi_FI")

0 commit comments

Comments
 (0)