diff --git a/faker/providers/automotive/uk_UA/__init__.py b/faker/providers/automotive/uk_UA/__init__.py index 55544bd078..2e933f3832 100644 --- a/faker/providers/automotive/uk_UA/__init__.py +++ b/faker/providers/automotive/uk_UA/__init__.py @@ -1,5 +1,6 @@ import random -from typing import Optional + +from typing import Optional, Tuple from .. import Provider as AutomotiveProvider @@ -35,42 +36,179 @@ class Provider(AutomotiveProvider): "Chernihiv": (("SV", "IV", "OV", "RV"), "25"), "Chernivtsi": (("SE", "IE", "OE", "RE"), "26"), "Sevastopol": (("SN", "IN", "ON", "RN"), "27"), - "Nationwide": (("II", "ED", "DC", "DI", "PD"), "00") + "Nationwide": (("II", "ED", "DC", "DI", "PD"), "00"), } license_plate_suffix = ( - "AA", "BA", "CA", "EA", "HA", "IA", "KA", "MA", "OA", "PA", "TA", "XA", - "AB", "BB", "CB", "EB", "HB", "IB", "KB", "MB", "OB", "PB", "TB", "XB", - "AC", "BC", "BR", "EC", "HC", "IC", "KC", "MC", "OC", "PC", "TC", "XC", - "AE", "BE", "CE", "EE", "HE", "IE", "KE", "ME", "OE", "PE", "TE", "XE", - "AN", "BN", "CN", "EN", "HN", "IN", "KN", "MK", "ON", "PN", "TN", "XN", - "AI", "BI", "CI", "EI", "HI", "II", "KI", "MI", "OI", "PI", "TI", "XI", - "AK", "BK", "CK", "EK", "HK", "IK", "KK", "MK", "OK", "PK", "TK", "XK", - "AM", "BM", "CM", "EM", "HM", "IM", "KM", "MM", "OM", "PM", "TM", "XM", - "AO", "BO", "CO", "EO", "HO", "IO", "KO", "MO", "OO", "PO", "TO", "XO", - "AP", "BP", "CP", "EP", "HP", "IP", "KP", "MP", "OP", "PP", "TP", "XP", - "AT", "BT", "CT", "ET", "HT", "IT", "KT", "MT", "OT", "PT", "TT", "XT", - "AX", "BX", "CX", "EX", "HX", "IX", "KX", "MX", "OX", "PX", "TX", "XX", - "AY", "AZ", "BH", "BL", "BN", "BQ", "BR", "TU", "TV", "TY", "TZ" + "AA", + "BA", + "CA", + "EA", + "HA", + "IA", + "KA", + "MA", + "OA", + "PA", + "TA", + "XA", + "AB", + "BB", + "CB", + "EB", + "HB", + "IB", + "KB", + "MB", + "OB", + "PB", + "TB", + "XB", + "AC", + "BC", + "BR", + "EC", + "HC", + "IC", + "KC", + "MC", + "OC", + "PC", + "TC", + "XC", + "AE", + "BE", + "CE", + "EE", + "HE", + "IE", + "KE", + "ME", + "OE", + "PE", + "TE", + "XE", + "AN", + "BN", + "CN", + "EN", + "HN", + "IN", + "KN", + "MK", + "ON", + "PN", + "TN", + "XN", + "AI", + "BI", + "CI", + "EI", + "HI", + "II", + "KI", + "MI", + "OI", + "PI", + "TI", + "XI", + "AK", + "BK", + "CK", + "EK", + "HK", + "IK", + "KK", + "MK", + "OK", + "PK", + "TK", + "XK", + "AM", + "BM", + "CM", + "EM", + "HM", + "IM", + "KM", + "MM", + "OM", + "PM", + "TM", + "XM", + "AO", + "BO", + "CO", + "EO", + "HO", + "IO", + "KO", + "MO", + "OO", + "PO", + "TO", + "XO", + "AP", + "BP", + "CP", + "EP", + "HP", + "IP", + "KP", + "MP", + "OP", + "PP", + "TP", + "XP", + "AT", + "BT", + "CT", + "ET", + "HT", + "IT", + "KT", + "MT", + "OT", + "PT", + "TT", + "XT", + "AX", + "BX", + "CX", + "EX", + "HX", + "IX", + "KX", + "MX", + "OX", + "PX", + "TX", + "XX", + "AY", + "AZ", + "BH", + "BL", + "BN", + "BQ", + "BR", + "TU", + "TV", + "TY", + "TZ", ) - vehicle_categories = ( - "A1", "A", "B1", "B", - "C1", "C", "D1", "D", - "BE", "C1E", "CE", "D1E", - "DE", "T" - ) + vehicle_categories = ("A1", "A", "B1", "B", "C1", "C", "D1", "D", "BE", "C1E", "CE", "D1E", "DE", "T") - def __get_random_region_code(self, region_name: Optional[str] = None) -> (str, str): + def __get_random_region_code(self, region_name: Optional[str] = None) -> Tuple[str, str]: try: if region_name is None: - region_name, data = random.choice(list(self.license_region_data.items())) + region_name, _ = random.choice(list(self.license_region_data.items())) prefix, region_number = self.license_region_data[region_name] return random.choice(prefix), region_number except KeyError: region_names = ", ".join(self.license_region_data.keys()) - raise KeyError(f'Keys name must be only {region_names}') + raise KeyError(f"Keys name must be only {region_names}") def license_plate(self, region_name: Optional[str] = None, temporary_plate: bool = False) -> str: """Generate a license plate. @@ -140,7 +278,7 @@ def diplomatic_license_plate(self) -> str: level = random.choice(("CDP", "DP", "S")) country_code = self.random_number(3, fix_len=True) car_number = self.random_number(3, fix_len=True) - if level == 'CDP': + if level == "CDP": return f"{level} {country_code}" return f"{level} {country_code} {car_number}" diff --git a/tests/providers/test_automotive.py b/tests/providers/test_automotive.py index d74a3ecc60..4069167463 100644 --- a/tests/providers/test_automotive.py +++ b/tests/providers/test_automotive.py @@ -374,9 +374,9 @@ def test_diplomatic_plate(self, faker, num_samples): def test_prefix(self, faker): for _ in range(10): - temporary = faker.plate_letter_prefix(region_name='Lviv') + temporary = faker.plate_letter_prefix(region_name="Lviv") assert len(temporary) == 2 - assert temporary in UkUaAutomotiveProvider.license_region_data.get('Lviv')[0] + assert temporary in UkUaAutomotiveProvider.license_region_data.get("Lviv")[0] def test_region_code(self, faker): - assert "14" == faker.plate_region_code(region_name='Lviv') + assert "14" == faker.plate_region_code(region_name="Lviv")