Repository: joke2k/faker
Pull request #1451 (2021-05-27 12:37:31)

Add license plates and language names for he_IL locale
### What does this changes

> Adds license plates generation for he_IL locale
> Adds language names generation for he_IL locale
> Adds unit tests for both of the features above




AndreyRub: > Thank you! Could you fix the [linting issues](https://app.circleci.com/pipelines/github/joke2k/faker/946/workflows/f6f7950b-c3b2-4134-9fda-cc0247f5c3d0/jobs/2967?invite=true#step-103-3620) ?

Sure thing. Is there any way to check the linting issues without accessing CircleCI? For some reason, it does not work for me. Maybe there is some local command that I can run?
AndreyRub: Ok I think I figured out - flake8 utility can be used. I think it solves all of the issues
fcurella: Thank you so much!

Patch:
diff --git a/faker/providers/automotive/he_IL/__init__.py b/faker/providers/automotive/he_IL/__init__.py
new file mode 100644
index 00000000..e5742265
--- /dev/null
+++ b/faker/providers/automotive/he_IL/__init__.py
@@ -0,0 +1,11 @@
+from .. import Provider as AutomotiveProvider
+
+
+class Provider(AutomotiveProvider):
+    """Implement automotive provider for ``he_IL`` locale."""
+
+    """ Source : https://en.wikipedia.org/wiki/Vehicle_registration_plates_of_Israel  """
+    license_formats = (
+        '###-##-###',
+        '##-###-##',
+    )
diff --git a/faker/providers/person/he_IL/__init__.py b/faker/providers/person/he_IL/__init__.py
index de5356c9..1abd6371 100644
--- a/faker/providers/person/he_IL/__init__.py
+++ b/faker/providers/person/he_IL/__init__.py
@@ -1272,5 +1272,221 @@ class Provider(PersonProvider):
         ("תורג'מן", 0.0004513035),
         ("תורגמן", 0.0005209364),
         ("תמיר", 0.0002928914),
-
     ))
+
+    # Source :https://he.transperfect.com/services/languages.html
+    language_names = (
+        "אוג'יבווי",
+        "אוזבקית",
+        "אויגור",
+        "אוסטית",
+        "אוקראינית",
+        "אורדו",
+        "אורומו",
+        "אורייה",
+        "אזרבייג'נית",
+        "איבאנאג",
+        "איגבו",
+        "איטלקית",
+        "אילונגו",
+        "אילוקנו",
+        "אינדונזית",
+        "אינוקטיטוט",
+        "איסלנדית",
+        "אירית",
+        "אלבנית",
+        "אמהרית",
+        "אנגלית",
+        "אנגלית-פידג'ין",
+        "אסטונית",
+        "אסמית",
+        "אפריקאנס",
+        "אקאן",
+        "ארמנית",
+        "אשורית",
+        "בהדיני",
+        "בולגרית",
+        "בוסנית",
+        "בורמזית",
+        "ביסאיה",
+        "בלרוסית",
+        "במברה",
+        "בנגלית",
+        "בסקית",
+        "ברבנס",
+        "בשקירית",
+        "ג'קרטנז",
+        "גאלית",
+        "גוג'ראטית",
+        "גוואנשי",
+        "גוראני",
+        "גליציאנית",
+        "גנדה",
+        "גרוזינית",
+        "גרמנית",
+        "דארי",
+        "דזונקה",
+        "דיבהי",
+        "דיולה",
+        "דינקה",
+        "דנית",
+        "דקוטה",
+        "האוסה",
+        "האקה",
+        "הולנדית",
+        "הונגרית",
+        "היליגיינון",
+        "הינדי",
+        "הינדית",
+        "הינדית פיג'יאנית",
+        "המונג",
+        "וולוף",
+        "וולשית",
+        "וייטנאמית",
+        "ונדה",
+        "זולו",
+        "ח'לח'י",
+        "חמרית",
+        "חסניאית",
+        "טג'יקית",
+        "טגלוג",
+        "טונגאית",
+        "טורקית",
+        "טורקמנית",
+        "טיבטית",
+        "טייוואני",
+        "טלוגו",
+        "טמילית",
+        "טסוואנה",
+        "טשילובה",
+        "יאו",
+        "יאווה",
+        "יאוית",
+        "יוונית",
+        "יופיק",
+        "יורובה",
+        "יידיש",
+        "יפנית",
+        "כורדית",
+        "כשדית",
+        "לאו",
+        "לאו",
+        "לוגוסה",
+        "לוגנדה",
+        "לוקסמבורגית",
+        "לטבית",
+        "לטינית",
+        "ליטאית",
+        "לינגלה",
+        "לקוטה",
+        "מאאי",
+        "מאורית",
+        "מאנדינקה",
+        "מולדובנית",
+        "מונגולית",
+        "מיין",
+        "מיקסטקו",
+        "מירפורי",
+        "מלאית",
+        "מלגשית",
+        "מלטזית",
+        "מליאלאם",
+        "מנדינגו",
+        "מנדרינית",
+        "מקדונית",
+        "מראטהי",
+        "מרשלזית",
+        "נבאחו",
+        "נוארית",
+        "נורבגית",
+        "נייאנג'ה",
+        "נפאלית",
+        "נפוליטנית",
+        "סבואנו",
+        "סווהילית",
+        "סוטו",
+        "סומאלית",
+        "סונדנזית",
+        "סונינקה",
+        "סוסו",
+        "סוראני",
+        "סילהטי",
+        "סינדהי",
+        "סינהלה",
+        "סיסוואטי/סוואזי",
+        "סיצ'ואן",
+        "סיציליאנית",
+        "סלובנית",
+        "סלובקית",
+        "סמואית",
+        "סנגו",
+        "סנסקריט",
+        "ספרדית",
+        "סרבית",
+        "עברית",
+        "ערבית",
+        "פאהארי",
+        "פאנטה",
+        "פארואזית",
+        "פוג'ואו",
+        "פוזהו",
+        "פוטווארי",
+        "פוטיאן",
+        "פולאני",
+        "פולאר",
+        "פולה",
+        "פולנית",
+        "פורטוגזית",
+        "פטואה",
+        "פינית",
+        "פלמית",
+        "פמפנגה",
+        "פנג'אבי",
+        "פריזית",
+        "פרסית",
+        "פשטו",
+        "צ'אוזו",
+        "צ'בקאנו",
+        "צ'וקסית",
+        "צ'ין",
+        "צ'כית",
+        "צ'מורואית",
+        "צונגה",
+        "ציילונית",
+        "צרפתית",
+        "צרפתית קנדית",
+        "קאנדה",
+        "קארן",
+        "קווה",
+        "קוטוקולי",
+        "קוסה",
+        "קוסובן",
+        "קוריאנית",
+        "קורמנג'י",
+        "קזחית",
+        "קטלנית",
+        "קינירואנדה",
+        "קיקויו",
+        "קירגיזית",
+        "קירונדי",
+        "קירונדי",
+        "קמבודית",
+        "קנג'ובל",
+        "קנטונזית",
+        "קצ'ואה",
+        "קרואטית",
+        "קרי",
+        "קריאולית האיטית",
+        "קריו",
+        "קשמירית",
+        "רומאני",
+        "רומאנש",
+        "רומנית",
+        "רוסית",
+        "שבדית",
+        "שונה",
+        "שנחאית",
+        "שפת הסימנים האמריקאית",
+        "תאילנדית",
+        "תיגרינית",
+    )


Test patch:
diff --git a/tests/providers/test_automotive.py b/tests/providers/test_automotive.py
index 954e68ca..d64ed4c0 100644
--- a/tests/providers/test_automotive.py
+++ b/tests/providers/test_automotive.py
@@ -45,6 +45,10 @@ class TestPtPt(_SimpleAutomotiveTestMixin):
     )
 
 
+class TestHeIl(_SimpleAutomotiveTestMixin):
+    license_plate_pattern = re.compile(r'(\d{3}-\d{2}-\d{3})|(\d{2}-\d{3}-\d{2})')
+
+
 class TestHuHu(_SimpleAutomotiveTestMixin):
     """Test hu_HU automotive provider methods"""
     license_plate_pattern = re.compile(r'[A-Z]{3}-\d{3}')
diff --git a/tests/providers/test_person.py b/tests/providers/test_person.py
index 59666dcb..63aa12e7 100644
--- a/tests/providers/test_person.py
+++ b/tests/providers/test_person.py
@@ -14,6 +14,7 @@ from faker.providers.person.en_US import Provider as EnUSProvider
 from faker.providers.person.es_ES import Provider as EsESProvider
 from faker.providers.person.fi_FI import Provider as FiProvider
 from faker.providers.person.ga_IE import Provider as GaIEProvider
+from faker.providers.person.he_IL import Provider as HeILProvider
 from faker.providers.person.hy_AM import Provider as HyAmProvider
 from faker.providers.person.ne_NP import Provider as NeProvider
 from faker.providers.person.or_IN import Provider as OrINProvider
@@ -687,6 +688,30 @@ class TestEsES(unittest.TestCase):
         assert language_name in EsESProvider.language_names
 
 
+class TestHeIL(unittest.TestCase):
+    """Tests person in the he_IL locale."""
+
+    def setUp(self):
+        self.fake = Faker('he_IL')
+        Faker.seed(0)
+
+    def test_language_name(self):
+        language_name = self.fake.language_name()
+        assert language_name in HeILProvider.language_names
+
+    def test_male_first_name(self):
+        first_name_male = self.fake.first_name_male()
+        assert first_name_male in HeILProvider.first_names_male
+
+    def test_female_first_name(self):
+        first_name_female = self.fake.first_name_female()
+        assert first_name_female in HeILProvider.first_names_female
+
+    def test_last_name(self):
+        last_name = self.fake.last_name()
+        assert last_name in HeILProvider.last_names
+
+
 class TestPtPt(unittest.TestCase):
     """Tests person in the pt_PT locale."""