Skip to content

Commit ba5f6b1

Browse files
committed
Merge code changes from upstream r550
1 parent 2a34a0e commit ba5f6b1

3 files changed

Lines changed: 19 additions & 6 deletions

File tree

python/phonenumbers/phonenumberutil.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -946,6 +946,12 @@ def format_number_for_mobile_dialing(numobj, region_calling_from, with_formattin
946946
# phone for Movistar. Instead they must be dialled in national
947947
# format.
948948
formatted_number = format_number(numobj_no_ext, PhoneNumberFormat.NATIONAL)
949+
elif( region_code == "AE" and region_calling_from == "AE" and
950+
numobj_type == PhoneNumberType.UAN):
951+
# In the United Arab Emirates, numbers with the prefix 600 (UAN
952+
# numbers) cannot be dialled using E164 format. Instead they must be
953+
# dialled in national format.
954+
formatted_number = format_number(numobj_no_ext, PhoneNumberFormat.NATIONAL)
949955
elif (region_code == "BR" and region_calling_from == "BR" and
950956
((numobj_type == PhoneNumberType.FIXED_LINE) or
951957
(numobj_type == PhoneNumberType.MOBILE) or

python/phonenumbers/shortnumberutil.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -75,8 +75,7 @@ def _matches_emergency_number_helper(number, region_code, allow_prefix_match):
7575
normalized_number = normalize_digits_only(number)
7676

7777
if not allow_prefix_match or region_code == "BR":
78-
# In Brazil, it is impossible to append additional digits to an
79-
# emergency number to dial the number.
78+
# In Brazil, emergency numbers don't work when additional digits are appended.
8079
return fullmatch(emergency_number_pattern, normalized_number) is not None
8180
else:
8281
return emergency_number_pattern.match(normalized_number) is not None

python/tests/phonenumberutiltest.py

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,7 @@
4040

4141
# Set up some test numbers to re-use.
4242
ALPHA_NUMERIC_NUMBER = FrozenPhoneNumber(country_code=1, national_number=80074935247L)
43+
AE_UAN = FrozenPhoneNumber(country_code=971, national_number=600123456L)
4344
AR_MOBILE = FrozenPhoneNumber(country_code=54, national_number=91187654321L)
4445
AR_NUMBER = FrozenPhoneNumber(country_code=54, national_number=1187654321)
4546
AU_NUMBER = FrozenPhoneNumber(country_code=61, national_number=236618300L)
@@ -665,16 +666,23 @@ def testFormatNumberForMobileDialing(self):
665666
self.assertEqual("*2345",
666667
phonenumbers.format_number_for_mobile_dialing(JP_STAR_NUMBER, "JP", True))
667668

669+
self.assertEqual("+80012345678",
670+
phonenumbers.format_number_for_mobile_dialing(INTERNATIONAL_TOLL_FREE, "JP", False))
671+
self.assertEqual("+800 1234 5678",
672+
phonenumbers.format_number_for_mobile_dialing(INTERNATIONAL_TOLL_FREE, "JP", True))
673+
674+
# UAE numbers beginning with 600 (classified as UAN) need to be dialled without +971 locally.
675+
self.assertEqual("+971600123456",
676+
phonenumbers.format_number_for_mobile_dialing(AE_UAN, "JP", False))
677+
self.assertEqual("600123456",
678+
phonenumbers.format_number_for_mobile_dialing(AE_UAN, "AE", False))
679+
668680
# Python version extra tests
669681
number = PhoneNumber()
670682
number.merge_from(XY_NUMBER)
671683
self.assertEqual("", phonenumbers.format_number_for_mobile_dialing(number, "US", False))
672684
number.raw_input = " 123-456-7890"
673685
self.assertEqual(" 123-456-7890", phonenumbers.format_number_for_mobile_dialing(number, "US", False))
674-
self.assertEqual("+80012345678",
675-
phonenumbers.format_number_for_mobile_dialing(INTERNATIONAL_TOLL_FREE, "JP", False))
676-
self.assertEqual("+800 1234 5678",
677-
phonenumbers.format_number_for_mobile_dialing(INTERNATIONAL_TOLL_FREE, "JP", True))
678686

679687
def testFormatByPattern(self):
680688
newNumFormat = NumberFormat(pattern="(\\d{3})(\\d{3})(\\d{4})", format="(\\1) \\2-\\3")

0 commit comments

Comments
 (0)