From 12cee07c1caa3917ce8e1e5158c65aa582242743 Mon Sep 17 00:00:00 2001 From: Pulkit Date: Mon, 28 Dec 2020 14:54:56 +0530 Subject: [PATCH 1/5] en_IN person provider --- faker/providers/person/en_IN/__init__.py | 682 +++++++++++++++++++++++ tests/providers/test_person.py | 17 + 2 files changed, 699 insertions(+) create mode 100644 faker/providers/person/en_IN/__init__.py diff --git a/faker/providers/person/en_IN/__init__.py b/faker/providers/person/en_IN/__init__.py new file mode 100644 index 0000000000..487e87c902 --- /dev/null +++ b/faker/providers/person/en_IN/__init__.py @@ -0,0 +1,682 @@ +from .. import Provider as PersonProvider + + +class Provider(PersonProvider): + formats = ( + '{{first_name}} {{last_name}}', + '{{first_name}} {{last_name}}', + '{{last_name}}, {{first_name}}', + ) + + # First names are from https://www.babycenter.in/a25010193/modern-indian-baby-names + # Last names are from https://www.familyeducation.com/baby-names/browse-origin/surname/indian + + first_names = ( + 'Aarav', + 'Aarush', + 'Aayush', + 'Abram', + 'Advik', + 'Akarsh', + 'Anay', + 'Aniruddh', + 'Arhaan', + 'Armaan', + 'Arnav', + 'Azad', + 'Badal', + 'Bhavin', + 'Chirag', + 'Darshit', + 'Devansh', + 'Dhanuk', + 'Dhruv', + 'Divij', + 'Divit', + 'Divyansh', + 'Ehsaan', + 'Emir', + 'Faiyaz', + 'Farhan', + 'Fateh', + 'Gatik', + 'Gokul', + 'Hansh', + 'Himmat', + 'Hiran', + 'Hridaan', + 'Hunar', + 'Indrajit', + 'Indranil', + 'Ishaan', + 'Ivan', + 'Jayant', + 'Jayesh', + 'Jivin', + 'Kabir', + 'Kanav', + 'Kartik', + 'Kiaan', + 'Krish', + 'Lagan', + 'Lakshay', + 'Lakshit', + 'Madhav', + 'Madhup', + 'Manikya', + 'Mehul', + 'Miraan', + 'Nakul', + 'Nirvaan', + 'Nishith', + 'Ojas', + 'Onkar', + 'Pranay', + 'Prerak', + 'Priyansh', + 'Purab', + 'Raghav', + 'Ranbir', + 'Raunak', + 'Reyansh', + 'Riaan', + 'Ritvik', + 'Rohan', + 'Romil', + 'Ryan', + 'Sahil', + 'Saksham', + 'Samar', + 'Samarth', + 'Shaan', + 'Shalv', + 'Shamik', + 'Shayak', + 'Shlok', + 'Shray', + 'Stuvan', + 'Sumer', + 'Taimur', + 'Taran', + 'Tejas', + 'Tushar', + 'Umang', + 'Uthkarsh', + 'Vaibhav', + 'Veer', + 'Vidur', + 'Vihaan', + 'Vivaan', + 'Yakshit', + 'Yuvaan', + 'Yuvraj ', + 'Zain', + 'Zeeshan', + 'Aaina', + 'Aarna', + 'Aaryahi', + 'Adah', + 'Adira', + 'Advika', + 'Ahana ', + 'Alia', + 'Alisha', + 'Amani', + 'Amira', + 'Anahi', + 'Anahita', + 'Anaya', + 'Anika', + 'Anvi', + 'Anya', + 'Aradhya', + 'Ayesha', + 'Bhamini', + 'Charvi', + 'Damini', + 'Dishani', + 'Diya', + 'Drishya', + 'Ela', + 'Elakshi', + 'Eshani', + 'Eva', + 'Hazel', + 'Heer', + 'Hrishita', + 'Inaaya ', + 'Ira', + 'Ishita', + 'Ivana', + 'Jhanvi', + 'Jivika', + 'Jiya', + 'Kaira', + 'Kashvi', + 'Kavya', + 'Keya', + 'Khushi', + 'Kiara', + 'Kimaya', + 'Kismat', + 'Lavanya', + 'Mahika', + 'Manjari', + 'Mannat', + 'Miraya', + 'Misha', + 'Mishti', + 'Myra', + 'Navya', + 'Nayantara', + 'Neelofar', + 'Nehmat', + 'Neysa', + 'Nirvi', + 'Nitara', + 'Nitya', + 'Oorja', + 'Pari', + 'Parinaaz', + 'Pihu', + 'Piya', + 'Prisha', + 'Rania', + 'Rasha', + 'Rati', + 'Renee', + 'Rhea', + 'Riya', + 'Saanvi', + 'Saira', + 'Samaira', + 'Samiha', + 'Sana', + 'Sara', + 'Seher', + 'Shanaya', + 'Siya', + 'Suhana', + 'Tanya', + 'Tara', + 'Tarini', + 'Tiya', + 'Trisha', + 'Urvi', + 'Vanya', + 'Vardaniya', + 'Vedika', + 'Vritika', + 'Yashvi', + 'Yasmin', + 'Zaina', + 'Zara', + 'Zoya' + ) + + last_names = ( + 'Acharya', + 'Agarwal', + 'Agate', + 'Aggarwal', + 'Agrawal', + 'Ahluwalia', + 'Ahuja', + 'Amble', + 'Anand', + 'Andra', + 'Anne', + 'Apte', + 'Arora', + 'Arya', + 'Atwal', + 'Aurora', + 'Babu', + 'Badal', + 'Badami', + 'Bahl', + 'Bahri', + 'Bail', + 'Bains', + 'Bajaj', + 'Bajwa', + 'Bakshi', + 'Bal', + 'Bala', + 'Bala', + 'Balakrishnan', + 'Balan', + 'Balasubramanian', + 'Balay', + 'Bali', + 'Bandi', + 'Banerjee', + 'Banik', + 'Bansal', + 'Barad', + 'Barad', + 'Baral', + 'Baria', + 'Barman', + 'Basak', + 'Bassi', + 'Basu', + 'Bath', + 'Batra', + 'Batta', + 'Bava', + 'Bawa', + 'Bedi', + 'Behl', + 'Ben', + 'Bera', + 'Bhagat', + 'Bhakta', + 'Bhalla', + 'Bhandari', + 'Bhardwaj', + 'Bhargava', + 'Bhasin', + 'Bhat', + 'Bhatia', + 'Bhatnagar', + 'Bhatt', + 'Bhattacharyya', + 'Bhatti', + 'Bhavsar', + 'Bir', + 'Biswas', + 'Boase', + 'Bobal', + 'Bora', + 'Bora', + 'Borah', + 'Borde', + 'Borra', + 'Bose', + 'Brahmbhatt', + 'Brar', + 'Buch', + 'Buch', + 'Bumb', + 'Butala', + 'Chacko', + 'Chad', + 'Chada', + 'Chadha', + 'Chahal', + 'Chakrabarti', + 'Chakraborty', + 'Chana', + 'Chand', + 'Chanda', + 'Chander', + 'Chandra', + 'Chandran', + 'Char', + 'Chatterjee', + 'Chaudhari', + 'Chaudhary', + 'Chaudhry', + 'Chaudhuri', + 'Chaudry', + 'Chauhan', + 'Chawla', + 'Cheema', + 'Cherian', + 'Chhabra', + 'Chokshi', + 'Chopra', + 'Choudhary', + 'Choudhry', + 'Choudhury', + 'Chowdhury', + 'Comar', + 'Contractor', + 'D’Alia', + 'Dada', + 'Dalal', + 'Dani', + 'Dar', + 'Dara', + 'Dara', + 'Das', + 'Dasgupta', + 'Dash', + 'Dass', + 'Date', + 'Datta', + 'Dave', + 'Dayal', + 'De', + 'Deep', + 'Deo', + 'Deol', + 'Desai', + 'Deshmukh', + 'Deshpande', + 'Devan', + 'Devi', + 'Dewan', + 'Dey', + 'Dhaliwal', + 'Dhar', + 'Dhar', + 'Dhawan', + 'Dhillon', + 'Dhingra', + 'Din', + 'Divan', + 'Dixit', + 'Doctor', + 'Dora', + 'Doshi', + 'Dua', + 'Dube', + 'Dubey', + 'Dugal', + 'Dugar', + 'Dugar', + 'Dutt', + 'Dutta', + 'Dyal', + 'Edwin', + 'Gaba', + 'Gade', + 'Gala', + 'Gandhi', + 'Ganesan', + 'Ganesh', + 'Ganguly', + 'Gara', + 'Garde', + 'Garg', + 'Gera', + 'Ghose', + 'Ghosh', + 'Gill', + 'Goda', + 'Goel', + 'Gokhale', + 'Gola', + 'Gole', + 'Golla', + 'Gopal', + 'Goswami', + 'Gour', + 'Goyal', + 'Grewal', + 'Grover', + 'Guha', + 'Gulati', + 'Gupta', + 'Halder', + 'Handa', + 'Hans', + 'Hari', + 'Hayer', + 'Hayre', + 'Hegde', + 'Hora', + 'Issac', + 'Iyengar', + 'Iyer', + 'Jaggi', + 'Jain', + 'Jani', + 'Jayaraman', + 'Jha', + 'Jhaveri', + 'Johal', + 'Joshi', + 'Kadakia', + 'Kade', + 'Kakar', + 'Kala', + 'Kala', + 'Kala', + 'Kale', + 'Kalita', + 'Kalla', + 'Kamdar', + 'Kanda', + 'Kannan', + 'Kant', + 'Kapadia', + 'Kapoor', + 'Kapur', + 'Kar', + 'Kara', + 'Karan', + 'Kari', + 'Karnik', + 'Karpe', + 'Kashyap', + 'Kata', + 'Kaul', + 'Kaur', + 'Keer', + 'Keer', + 'Khalsa', + 'Khanna', + 'Khare', + 'Khatri', + 'Khosla', + 'Khurana', + 'Kibe', + 'Kohli', + 'Konda', + 'Korpal', + 'Koshy', + 'Kota', + 'Kothari', + 'Krish', + 'Krishna', + 'Krishnamurthy', + 'Krishnan', + 'Kulkarni', + 'Kumar', + 'Kumer', + 'Kunda', + 'Kurian', + 'Kuruvilla', + 'Lad', + 'Lad', + 'Lal', + 'Lala', + 'Lall', + 'Lalla', + 'Lanka', + 'Lata', + 'Loke', + 'Loyal', + 'Luthra', + 'Madan', + 'Madan', + 'Magar', + 'Mahajan', + 'Mahal', + 'Maharaj', + 'Majumdar', + 'Malhotra', + 'Mall', + 'Mallick', + 'Mammen', + 'Mand', + 'Manda', + 'Mandal', + 'Mander', + 'Mane', + 'Mangal', + 'Mangat', + 'Mani', + 'Mani', + 'Mann', + 'Mannan', + 'Manne', + 'Master', + 'Raj', + 'Raja', + 'Rajagopal', + 'Rajagopalan', + 'Rajan', + 'Raju', + 'Ram', + 'Rama', + 'Ramachandran', + 'Ramakrishnan', + 'Raman', + 'Ramanathan', + 'Ramaswamy', + 'Ramesh', + 'Rana', + 'Randhawa', + 'Ranganathan', + 'Rao', + 'Rastogi', + 'Ratta', + 'Rattan', + 'Ratti', + 'Rau', + 'Raval', + 'Ravel', + 'Ravi', + 'Ray', + 'Reddy', + 'Rege', + 'Rout', + 'Roy', + 'Sabharwal', + 'Sachar', + 'Sachdev', + 'Sachdeva', + 'Sagar', + 'Saha', + 'Sahni', + 'Sahota', + 'Saini', + 'Salvi', + 'Sama', + 'Sami', + 'Sampath', + 'Samra', + 'Sandal', + 'Sandhu', + 'Sane', + 'Sangha', + 'Sanghvi', + 'Sani', + 'Sankar', + 'Sankaran', + 'Sant', + 'Saraf', + 'Saran', + 'Sarin', + 'Sarkar', + 'Sarma', + 'Sarna', + 'Sarraf', + 'Sastry', + 'Sathe', + 'Savant', + 'Sawhney', + 'Saxena', + 'Sehgal', + 'Sekhon', + 'Sem', + 'Sen', + 'Sengupta', + 'Seshadri', + 'Seth', + 'Sethi', + 'Setty', + 'Sha', + 'Shah', + 'Shan', + 'Shankar', + 'Shanker', + 'Sharaf', + 'Sharma', + 'Shenoy', + 'Shere', + 'Sheth', + 'Shetty', + 'Shroff', + 'Shukla', + 'Sibal', + 'Sidhu', + 'Singh', + 'Singhal', + 'Sinha', + 'Sodhi', + 'Solanki', + 'Som', + 'Soman', + 'Soni', + 'Sood', + 'Sridhar', + 'Srinivas', + 'Srinivasan', + 'Srivastava', + 'Subramaniam', + 'Subramanian', + 'Sule', + 'Sundaram', + 'Sunder', + 'Sur', + 'Sura', + 'Suresh', + 'Suri', + 'Swaminathan', + 'Swamy', + 'Tailor', + 'Tak', + 'Talwar', + 'Tandon', + 'Taneja', + 'Tank', + 'Tara', + 'Tata', + 'Tella', + 'Thaker', + 'Thakkar', + 'Thakur', + 'Thaman', + 'Tiwari', + 'Toor', + 'Tripathi', + 'Trivedi', + 'Upadhyay', + 'Uppal', + 'Vaidya', + 'Vala', + 'Varghese', + 'Varkey', + 'Varma', + 'Varty', + 'Varughese', + 'Vasa', + 'Venkataraman', + 'Venkatesh', + 'Verma', + 'Vig', + 'Virk', + 'Viswanathan', + 'Vohra', + 'Vora', + 'Vyas', + 'Wable', + 'Wadhwa', + 'Wagle', + 'Wali', + 'Wali', + 'Walia', + 'Walla', + 'Warrior', + 'Wason', + 'Yadav', + 'Yogi', + 'Yohannan', + 'Zacharia', + 'Zachariah' + ) \ No newline at end of file diff --git a/tests/providers/test_person.py b/tests/providers/test_person.py index ec7bb91015..b4188512e1 100644 --- a/tests/providers/test_person.py +++ b/tests/providers/test_person.py @@ -8,6 +8,7 @@ from faker.providers.person.ar_AA import Provider as ArProvider from faker.providers.person.cs_CZ import Provider as CsCZProvider from faker.providers.person.en import Provider as EnProvider +from faker.providers.person.en_IN import Provider as EnINProvider 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 @@ -804,3 +805,19 @@ def test_last_names(self): """ test the last name is generating from the provided tuple """ last_name = self.fake.last_name() assert last_name in OrINProvider.last_names + +class TestEnIN(unittest.TestCase): + """ Tests person in the en_IN locale """ + + def setUp(self): + self.fake = Faker('en_IN') + Faker.seed(0) + + + def test_first_name(self): + first_name = self.fake.first_name() + assert first_name in EnINProvider.first_names + + def test_last_name(self): + last_name = self.fake.last_name() + assert last_name in EnINProvider.last_names \ No newline at end of file From e52d21480da1f5307623bfe3b3eda71215575bc4 Mon Sep 17 00:00:00 2001 From: Pulkit Date: Mon, 28 Dec 2020 15:11:43 +0530 Subject: [PATCH 2/5] en_IN person provider linted --- faker/providers/person/en_IN/__init__.py | 8 ++++---- tests/providers/test_person.py | 4 ++-- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/faker/providers/person/en_IN/__init__.py b/faker/providers/person/en_IN/__init__.py index 487e87c902..3e306d55cb 100644 --- a/faker/providers/person/en_IN/__init__.py +++ b/faker/providers/person/en_IN/__init__.py @@ -8,7 +8,7 @@ class Provider(PersonProvider): '{{last_name}}, {{first_name}}', ) - # First names are from https://www.babycenter.in/a25010193/modern-indian-baby-names + # First names are from https://www.babycenter.in/a25010193/modern-indian-baby-names # Last names are from https://www.familyeducation.com/baby-names/browse-origin/surname/indian first_names = ( @@ -211,7 +211,7 @@ class Provider(PersonProvider): 'Yasmin', 'Zaina', 'Zara', - 'Zoya' + 'Zoya', ) last_names = ( @@ -678,5 +678,5 @@ class Provider(PersonProvider): 'Yogi', 'Yohannan', 'Zacharia', - 'Zachariah' - ) \ No newline at end of file + 'Zachariah', + ) diff --git a/tests/providers/test_person.py b/tests/providers/test_person.py index b4188512e1..d1f5e23e9e 100644 --- a/tests/providers/test_person.py +++ b/tests/providers/test_person.py @@ -806,6 +806,7 @@ def test_last_names(self): last_name = self.fake.last_name() assert last_name in OrINProvider.last_names + class TestEnIN(unittest.TestCase): """ Tests person in the en_IN locale """ @@ -813,11 +814,10 @@ def setUp(self): self.fake = Faker('en_IN') Faker.seed(0) - def test_first_name(self): first_name = self.fake.first_name() assert first_name in EnINProvider.first_names def test_last_name(self): last_name = self.fake.last_name() - assert last_name in EnINProvider.last_names \ No newline at end of file + assert last_name in EnINProvider.last_names From 29e1d19d4e4870b434832424b188e4eaf950f565 Mon Sep 17 00:00:00 2001 From: Pulkit Date: Mon, 28 Dec 2020 15:26:31 +0530 Subject: [PATCH 3/5] en_IN person providers removed formats --- faker/providers/person/en_IN/__init__.py | 2 -- 1 file changed, 2 deletions(-) diff --git a/faker/providers/person/en_IN/__init__.py b/faker/providers/person/en_IN/__init__.py index 3e306d55cb..5d66568f71 100644 --- a/faker/providers/person/en_IN/__init__.py +++ b/faker/providers/person/en_IN/__init__.py @@ -4,8 +4,6 @@ class Provider(PersonProvider): formats = ( '{{first_name}} {{last_name}}', - '{{first_name}} {{last_name}}', - '{{last_name}}, {{first_name}}', ) # First names are from https://www.babycenter.in/a25010193/modern-indian-baby-names From 84fc262f9879b359dd6887513d412233e15ab719 Mon Sep 17 00:00:00 2001 From: Pulkit Date: Wed, 30 Dec 2020 17:26:59 +0530 Subject: [PATCH 4/5] en_IN address+phone_number added --- faker/providers/address/en_IN/__init__.py | 399 ++++++++++++++++++ .../providers/phone_number/en_IN/__init__.py | 9 + tests/providers/test_address.py | 17 + 3 files changed, 425 insertions(+) create mode 100644 faker/providers/address/en_IN/__init__.py create mode 100644 faker/providers/phone_number/en_IN/__init__.py diff --git a/faker/providers/address/en_IN/__init__.py b/faker/providers/address/en_IN/__init__.py new file mode 100644 index 0000000000..fa264f7b6d --- /dev/null +++ b/faker/providers/address/en_IN/__init__.py @@ -0,0 +1,399 @@ +from .. import Provider as AddressProvider + + +class Provider(AddressProvider): + # City and States names taken from wikipedia + # Street format taken from some common famous places in India + # Link for cities: https://en.wikipedia.org/wiki/List_of_cities_in_India_by_population + # Link for States: https://en.wikipedia.org/wiki/States_and_union_territories_of_India + # Links for street name formats: https://www.mumbai77.com/city/3313/travel/old-new-street-names/ + + city_formats = ('{{city_name}}', ) + + street_name_formats = ( + '{{last_name}} Nagar', + '{{last_name}} Zila', + '{{last_name}} Street', + '{{last_name}} Ganj', + '{{last_name}} Road', + '{{last_name}} Path', + '{{last_name}} Marg', + '{{last_name}} Chowk', + '{{last_name}} Circle', + '{{last_name}}', + ) + + street_address_formats = ( + '{{building_number}}, {{street_name}}', + '{{building_number}}\n{{street_name}}', + ) + + address_formats = ( + '{{street_address}}\n{{city}} {{postcode}}', + '{{street_address}}\n{{city}}-{{postcode}}', + '{{street_address}}, {{city}} {{postcode}}', + '{{street_address}}, {{city}}-{{postcode}}', + ) + + building_number_formats = ( + 'H.No. ###', '###', 'H.No. ##', '##', '##/##', "##/###") + + postcode_formats = ('######', ) + + cities = ( + 'Mumbai', + 'Delhi', + 'Kolkata', + 'Chennai', + 'Bangalore', + 'Hyderabad', + 'Ahmedabad', + 'Kanpur', + 'Pune', + 'Surat', + 'Jaipur', + 'Lucknow', + 'Nagpur', + 'Indore', + 'Bhopal', + 'Ludhiana', + 'Patna', + 'Visakhapatnam', + 'Vadodara', + 'Agra', + 'Thane', + 'Kalyan-Dombivli', + 'Varanasi', + 'Ranchi', + 'Nashik', + 'Dhanbad', + 'Faridabad', + 'Meerut', + 'Pimpri-Chinchwad', + 'Howrah', + 'Allahabad', + 'Ghaziabad', + 'Rajkot', + 'Amritsar', + 'Jabalpur', + 'Coimbatore', + 'Madurai', + 'Srinagar', + 'Aurangabad', + 'Solapur', + 'Vijayawada', + 'Jodhpur', + 'Gwalior', + 'Guwahati', + 'Chandigarh', + 'Hubli–Dharwad', + 'Mysore', + 'Tiruchirappalli', + 'Bareilly', + 'Jalandhar', + 'Navi Mumbai', + 'Salem', + 'Kota', + 'Vasai-Virar', + 'Aligarh', + 'Moradabad', + 'Bhubaneswar', + 'Gorakhpur', + 'Raipur', + 'Bhiwandi', + 'Kochi', + 'Jamshedpur', + 'Bhilai', + 'Amravati', + 'Cuttack', + 'Warangal', + 'Bikaner', + 'Mira-Bhayandar', + 'Guntur', + 'Bhavnagar', + 'Durgapur', + 'Kolhapur', + 'Ajmer', + 'Asansol', + 'Ulhasnagar', + 'Siliguri', + 'Jalgaon', + 'Saharanpur', + 'Jamnagar', + 'Bhatpara', + 'Sangli-Miraj & Kupwad', + 'Kozhikode', + 'Nanded', + 'Ujjain', + 'Dehradun', + 'Rourkela', + 'Gulbarga', + 'Tirunelveli', + 'Malegaon', + 'Akola', + 'Belgaum', + 'Mangalore', + 'Bokaro', + 'South Dumdum', + 'Udaipur', + 'Gaya', + 'Maheshtala', + 'Jhansi', + 'Nellore', + 'Jammu', + 'Thiruvananthapuram', + 'Davanagere', + 'Kollam', + 'Panihati', + 'Kurnool', + 'Tiruppur', + 'Dhule', + 'Bhagalpur', + 'Rajpur Sonarpur', + 'Kakinada', + 'Thrissur', + 'Bellary', + 'Muzaffarnagar', + 'Korba', + 'Rajahmundry', + 'Kamarhati', + 'Ambattur', + 'Berhampur', + 'Ahmednagar', + 'Muzaffarpur', + 'Noida', + 'Patiala', + 'Mathura', + 'New Delhi', + 'Latur', + 'Sambalpur', + 'Shahjahanpur', + 'Kulti', + 'Chandrapur', + 'Nizamabad', + 'Rohtak', + 'Bardhaman', + 'Rampur', + 'Bhilwara', + 'Firozabad', + 'Bilaspur', + 'Shimoga', + 'Agartala', + 'Gopalpur', + 'Darbhanga', + 'Panipat', + 'Bally', + 'Alwar', + 'Parbhani', + 'Ichalkaranji', + 'Anantapuram', + 'Baranagar', + 'Tumkur', + 'Ramagundam', + 'Jalna', + 'Durg', + 'Sagar', + 'Bihar Sharif', + 'Dewas', + 'Barasat', + 'Avadi', + 'Farrukhabad', + 'Aizawl', + 'Tirupati', + 'Bijapur', + 'Satara', + 'Satna', + 'Ratlam', + 'Imphal', + 'Pondicherry', + 'North Dumdum', + 'Anantapur', + 'Khammam', + 'Ozhukarai', + 'Bathinda', + 'Thoothukudi', + 'Thanjavur', + 'Naihati', + 'Sonipat', + 'Mau', + 'Tiruvottiyur', + 'Hapur', + 'Sri Ganganagar', + 'Karnal', + 'Etawah', + 'Nagercoil', + 'Raichur', + 'Raurkela Industrial Township', + 'Secunderabad', + 'Karimnagar', + 'Mirzapur', + 'Bharatpur', + 'Ambarnath', + 'Arrah', + 'Uluberia', + 'Serampore', + 'Dindigul', + 'Gandhinagar', + 'Burhanpur', + 'Nadiad', + 'Eluru', + 'Yamunanagar', + 'Kharagpur', + 'Munger', + 'Pali', + 'Katni', + 'Singrauli', + 'Tenali', + 'Sikar', + 'Silchar', + 'Rewa', + 'Sambhal', + 'Machilipatnam', + 'Vellore', + 'Alappuzha', + 'Bulandshahr', + 'Haridwar', + 'Vijayanagaram', + 'Erode', + 'Gurgaon', + 'Bidar', + 'Bhusawal', + 'Khandwa', + 'Purnia', + 'Haldia', + 'Chinsurah', + 'Bhiwani', + 'Raebareli', + 'Junagadh', + 'Bahraich', + 'Gandhidham', + 'Mango', + 'Raiganj', + 'Amroha', + 'Sultan Pur Majra', + 'Hospet', + 'Bidhannagar', + 'Malda', + 'Sirsa', + 'Berhampore', + 'Jaunpur', + 'Surendranagar Dudhrej', + 'Madhyamgram', + 'Kirari Suleman Nagar', + 'Bhind', + 'Nandyal', + 'Chittoor', + 'Bhalswa Jahangir Pur', + 'Fatehpur', + 'Morena', + 'Nangloi Jat', + 'Ongole', + 'Karawal Nagar', + 'Shivpuri', + 'Morbi', + 'Unnao', + 'Pallavaram', + 'Kumbakonam', + 'Shimla', + 'Mehsana', + 'Panchkula', + 'Orai', + 'Ambala', + 'Dibrugarh', + 'Guna', + 'Danapur', + 'Sasaram', + 'Anand', + 'Kottayam', + 'Hazaribagh', + 'Kadapa', + 'Saharsa', + 'Nagaon', + 'Loni', + 'Hajipur', + 'Dehri', + 'Bettiah', + 'Katihar', + 'Deoghar', + 'Jorhat', + 'Siwan', + 'Panvel', + 'Hosur', + 'Tinsukia', + 'Bongaigaon', + 'Motihari', + 'Jamalpur', + 'Suryapet', + 'Begusarai', + 'Miryalaguda', + 'Proddatur', + 'Karaikudi', + 'Kishanganj', + 'Phusro', + 'Buxar', + 'Tezpur', + 'Jehanabad', + 'Aurangabad', + 'Chapra', + 'Ramgarh', + 'Gangtok', + 'Adoni', + 'Amaravati', + 'Ballia', + 'Bhimavaram', + 'Dharmavaram', + 'Giridih', + 'Gudivada', + 'Guntakal', + 'Hindupur', + 'Kavali', + 'Khora ', + 'Ghaziabad', + 'Madanapalle', + 'Mahbubnagar', + 'Medininagar', + 'Narasaraopet', + 'Phagwara', + 'Pudukkottai', + 'Srikakulam', + 'Tadepalligudem', + 'Tadipatri', + 'Udupi', + ) + + states = ( + 'Andhra Pradesh', + 'Arunachal Pradesh', + 'Assam', + 'Bihar', + 'Chhattisgarh', + 'Goa', + 'Gujarat', + 'Haryana', + 'Himachal Pradesh', + 'Jharkhand', + 'Karnataka', + 'Kerala', + 'Madhya Pradesh', + 'Maharashtra', + 'Manipur', + 'Meghalaya', + 'Mizoram', + 'Nagaland', + 'Odisha', + 'Punjab', + 'Rajasthan', + 'Sikkim', + 'Tamil Nadu', + 'Telangana', + 'Tripura', + 'Uttar Pradesh', + 'Uttarakhand', + 'West Bengal', + ) + + def city_name(self): + return self.random_element(self.cities) + + def state(self): + return self.random_element(self.states) diff --git a/faker/providers/phone_number/en_IN/__init__.py b/faker/providers/phone_number/en_IN/__init__.py new file mode 100644 index 0000000000..96a86bdd65 --- /dev/null +++ b/faker/providers/phone_number/en_IN/__init__.py @@ -0,0 +1,9 @@ +from .. import Provider as PhoneNumberProvider + + +class Provider(PhoneNumberProvider): + formats = ( + '+91##########', + '0##########', + '##########', + ) diff --git a/tests/providers/test_address.py b/tests/providers/test_address.py index cae8b6ab20..42744cad06 100644 --- a/tests/providers/test_address.py +++ b/tests/providers/test_address.py @@ -13,6 +13,7 @@ from faker.providers.address.en_AU import Provider as EnAuAddressProvider from faker.providers.address.en_CA import Provider as EnCaAddressProvider from faker.providers.address.en_GB import Provider as EnGbAddressProvider +from faker.providers.address.en_IN import Provider as EnInAddressProvider from faker.providers.address.en_PH import Provider as EnPhAddressProvider from faker.providers.address.en_US import Provider as EnUsAddressProvider from faker.providers.address.es_ES import Provider as EsEsAddressProvider @@ -1443,3 +1444,19 @@ def test_postcode(self, faker, num_samples): postcode = faker.postcode() assert isinstance(postcode, str) assert re.fullmatch(r'[1-9]\d{4}', postcode) + + +class TestEnIn: + """Test en_IN address provider methods""" + + def test_city_name(self, faker, num_samples): + for _ in range(num_samples): + city_name = faker.city_name() + assert isinstance(city_name, str) + assert city_name in EnInAddressProvider.cities + + def test_state(self, faker, num_samples): + for _ in range(num_samples): + state = faker.state() + assert isinstance(state, str) + assert state in EnInAddressProvider.states \ No newline at end of file From e5ca5e47d5350ab5c26ba7aee190942123c31b99 Mon Sep 17 00:00:00 2001 From: Pulkit Date: Wed, 30 Dec 2020 17:35:41 +0530 Subject: [PATCH 5/5] test_address linted --- tests/providers/test_address.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/providers/test_address.py b/tests/providers/test_address.py index 42744cad06..106e6c2d16 100644 --- a/tests/providers/test_address.py +++ b/tests/providers/test_address.py @@ -292,7 +292,7 @@ class TestEnCa: """Test en_CA address provider methods""" valid_postcode_letter_re = r'[{}]'.format( - ''.join(EnCaAddressProvider.postal_code_letters)) + ''.join(EnCaAddressProvider.postal_code_letters)) valid_postcode_re = r"{0}[0-9]{0} ?[0-9]{0}[0-9]".format(valid_postcode_letter_re) def test_postcode(self, faker, num_samples): @@ -1459,4 +1459,4 @@ def test_state(self, faker, num_samples): for _ in range(num_samples): state = faker.state() assert isinstance(state, str) - assert state in EnInAddressProvider.states \ No newline at end of file + assert state in EnInAddressProvider.states