Repository: joke2k/faker

Issue:
Locale et_EE (Estoniana) with seed_instance returns random instead of fixed
* Faker version: 23.1.0
* OS: Windows, Mac

Brief summary of the issue:
When using Faker with the locale et_EE and seed_instance the class returns are random. When using a different locale like nl_NL the returns are fixed. When running the script below twice the output names are Marina Sanne, when running a second time the names should be the same instead, it returns Reet Sanne.

## Steps to reproduce

### Run script below two times
```
from faker import Faker
locale = ["et_EE"]

fakers = Faker(locale)
fakers.seed_instance(0)

print(fakers.first_name_female()) 

locale = ["nl_NL"]

fakers = Faker(locale)
fakers.seed_instance(0)

print(fakers.first_name_female())

```
### Expected behavior

Marina
Sanne

Marina
Sanne

### Actual behavior

Marina
Sanne

Reet
Sanne





Discussion:

Resolving patch:
diff --git a/faker/providers/person/et_EE/__init__.py b/faker/providers/person/et_EE/__init__.py
--- a/faker/providers/person/et_EE/__init__.py
+++ b/faker/providers/person/et_EE/__init__.py
@@ -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")
 
@@ -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
@@ -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)


Test patch:
diff --git a/tests/providers/test_person.py b/tests/providers/test_person.py
--- a/tests/providers/test_person.py
+++ b/tests/providers/test_person.py
@@ -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
@@ -419,6 +420,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")