Skip to content

Commit 7a2ca0b

Browse files
author
PR Eval
committed
Merge branch 'pr-2286'
2 parents 7002716 + aac7641 commit 7a2ca0b

3 files changed

Lines changed: 159 additions & 0 deletions

File tree

faker2/providers/person/__init__.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,7 @@ class Provider(BaseProvider):
5050
"Divehi",
5151
"Dzongkha",
5252
"Ewe",
53+
"Efik",
5354
"Greek",
5455
"English",
5556
"Esperanto",
Lines changed: 94 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,94 @@
1+
# Data sources:
2+
# Efik names: https://efikeburutu.org/efik%20naming%20system.html
3+
# Additional references:
4+
# - https://en.wikipedia.org/wiki/Efik_name
5+
6+
from faker2.providers.person import Provider as PersonProvider
7+
8+
9+
class Provider(PersonProvider):
10+
"""
11+
A Faker provider for generating fake Efik names (Nigeria).
12+
"""
13+
14+
# Male first names
15+
first_names_male = [
16+
"Andem",
17+
"Antigha",
18+
"Archibong",
19+
"Asikpo",
20+
"Bassey",
21+
"Duke",
22+
"Edet",
23+
"Efefiom",
24+
"Efiwat",
25+
"Ekpe",
26+
"Etim",
27+
"Henshaw",
28+
"Mesembe",
29+
"Namondo",
30+
"Ndiyo",
31+
"Nkese",
32+
"Nyong",
33+
"Odionka",
34+
"Orok",
35+
]
36+
37+
# Female first names
38+
first_names_female = [
39+
"Ankwa",
40+
"Ansa",
41+
"Asari",
42+
"Atim",
43+
"Edemanwan",
44+
"Efioanwan",
45+
"Efiokanwan",
46+
"Eke",
47+
"Ekanem",
48+
"Ekerette",
49+
"Eyoanwan",
50+
"Inyang",
51+
"Itamanwan",
52+
"Minika",
53+
"Nsikak",
54+
"Okoho",
55+
"Orokanwan",
56+
"Udobong",
57+
]
58+
59+
# Combined list
60+
first_names = first_names_male + first_names_female
61+
62+
# Prefixes
63+
prefixes_male = ["Mr.", "Dr.", "Prof."]
64+
prefixes_female = ["Miss", "Mrs.", "Dr.", "Prof."]
65+
66+
prefixes = prefixes_male + prefixes_female
67+
68+
# Last names
69+
last_names = [
70+
"Aye",
71+
"Cobham",
72+
"Efa",
73+
"Efiok",
74+
"Ekeng",
75+
"Ekpenyong",
76+
"Essien",
77+
"Etetim",
78+
"Effiong",
79+
"Esu",
80+
"Eyo",
81+
"Eyonsa",
82+
"Ewa",
83+
"Hogan",
84+
"Ibok",
85+
"Inyang",
86+
"Ita",
87+
"Itam",
88+
"Nsa",
89+
"Offiong",
90+
"Okokon",
91+
"Oku",
92+
"Orok",
93+
"Otu",
94+
]

tests/providers/test_person.py

Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
from faker2.providers.person.cs_CZ import Provider as CsCZProvider
1212
from faker2.providers.person.de_AT import Provider as DeAtProvider
1313
from faker2.providers.person.de_LI import Provider as DeLiProvider
14+
from faker2.providers.person.efik_NG import Provider as EfikNgProvider
1415
from faker2.providers.person.en import Provider as EnProvider
1516
from faker2.providers.person.en_GB import Provider as EnGBProvider
1617
from faker2.providers.person.en_IE import Provider as EnIEProvider
@@ -354,6 +355,69 @@ def test_first_name_male(self):
354355
assert name_male in DeLiProvider.first_names_male
355356

356357

358+
class TestEfikNg(unittest.TestCase):
359+
"""Tests person in the efik_NG (Efik - Nigeria) locale"""
360+
361+
def setUp(self):
362+
self.fake = Faker("efik_NG")
363+
Faker.seed(0)
364+
365+
def test_first_name(self):
366+
# General first name
367+
name = self.fake.first_name()
368+
assert isinstance(name, str)
369+
assert name in EfikNgProvider.first_names
370+
371+
# Female first name
372+
name_female = self.fake.first_name_female()
373+
assert isinstance(name_female, str)
374+
assert name_female in EfikNgProvider.first_names
375+
assert name_female in EfikNgProvider.first_names_female
376+
377+
# Male first name
378+
name_male = self.fake.first_name_male()
379+
assert isinstance(name_male, str)
380+
assert name_male in EfikNgProvider.first_names
381+
assert name_male in EfikNgProvider.first_names_male
382+
383+
def test_last_name(self):
384+
assert hasattr(EfikNgProvider, "last_names")
385+
386+
# General last name
387+
last = self.fake.last_name()
388+
assert isinstance(last, str)
389+
assert last in EfikNgProvider.last_names
390+
391+
# Female last name
392+
last_female = self.fake.last_name_female()
393+
assert isinstance(last_female, str)
394+
assert last_female in EfikNgProvider.last_names
395+
396+
# Male last name
397+
last_male = self.fake.last_name_male()
398+
assert isinstance(last_male, str)
399+
assert last_male in EfikNgProvider.last_names
400+
401+
def test_prefix(self):
402+
prefix = self.fake.prefix()
403+
assert isinstance(prefix, str)
404+
assert prefix in EfikNgProvider.prefixes
405+
406+
prefix_female = self.fake.prefix_female()
407+
assert isinstance(prefix_female, str)
408+
assert prefix_female in EfikNgProvider.prefixes_female
409+
410+
prefix_male = self.fake.prefix_male()
411+
assert isinstance(prefix_male, str)
412+
assert prefix_male in EfikNgProvider.prefixes_male
413+
414+
def test_full_name(self):
415+
name = self.fake.name()
416+
assert isinstance(name, str)
417+
assert any(first_name in name for first_name in EfikNgProvider.first_names)
418+
assert any(last_name in name for last_name in EfikNgProvider.last_names)
419+
420+
357421
class TestEn(unittest.TestCase):
358422
"""Tests person in the en locale"""
359423

0 commit comments

Comments
 (0)