Skip to content

Commit a5281c7

Browse files
committed
Improve test coverage
1 parent d9bb97c commit a5281c7

5 files changed

Lines changed: 20 additions & 3 deletions

File tree

python/phonenumbers/shortnumberinfo.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -217,7 +217,7 @@ def expected_cost(numobj):
217217
elif cost_for_region == ShortNumberCost.TOLL_FREE:
218218
# Do nothing
219219
pass
220-
else:
220+
else: # pragma no cover
221221
raise Exception("Unrecognized cost for region: %s", cost_for_region)
222222
return cost
223223

python/tests/examplenumberstest.py

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@
2424
from phonenumbers import PhoneNumberType, PhoneMetadata, NumberParseException
2525
from phonenumbers import phonenumberutil, PhoneNumber, is_emergency_number
2626
from phonenumbers import shortnumberinfo, ShortNumberCost, AsYouTypeFormatter
27+
from phonenumbers import PhoneNumberMatcher, Leniency
2728
from phonenumbers.util import prnt
2829
from phonenumbers.re_util import fullmatch
2930

@@ -220,6 +221,14 @@ def testIsCarrierSpecific(self):
220221
self.assertFalse(shortnumberinfo.is_carrier_specific(esNumber))
221222

222223
# Extra tests that need access to the real metadata
224+
def testIsraelShortNumber(self):
225+
# Python version extra test:
226+
# Send in a 4-digit Israel phone number
227+
matcher = PhoneNumberMatcher("1234", "IL", leniency=Leniency.POSSIBLE)
228+
self.assertFalse(matcher.has_next())
229+
matcher2 = PhoneNumberMatcher("*1234", "IL", leniency=Leniency.POSSIBLE)
230+
self.assertTrue(matcher2.has_next())
231+
223232
def testBlankMetadata(self):
224233
# Python version extra test
225234
# Some metadata is blank; check that we cope with this.

python/tests/geocodertest.py

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -124,6 +124,11 @@ def testGetDescriptionForKoreanNumber(self):
124124

125125
def testGetDescriptionForArgentinianMobileNumber(self):
126126
self.assertEqual("La Plata", description_for_number(AR_MOBILE_NUMBER, _ENGLISH))
127+
# Python version extra test
128+
# Put an invalid number after the mobile token ("9") and lie about
129+
# this being a valid number
130+
arInvalidMobileNumber = PhoneNumber(country_code=54, national_number=91)
131+
self.assertEqual("Argentina", description_for_valid_number(arInvalidMobileNumber, _ENGLISH))
127132

128133
def testGetDescriptionForFallBack(self):
129134
# No fallback, as the location name for the given phone number is

python/tests/phonenumberutiltest.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -740,6 +740,7 @@ def testFormatNumberForMobileDialing(self):
740740
self.assertEqual("", phonenumbers.format_number_for_mobile_dialing(auNumber, "NZ", False))
741741

742742
# Python version extra tests
743+
self.assertNotEqual(-1, str(auNumber).find("Number of leading zeros"))
743744
number = PhoneNumber()
744745
number.merge_from(XY_NUMBER)
745746
self.assertEqual("", phonenumbers.format_number_for_mobile_dialing(number, "US", False))

python/tests/shortnumberinfotest.py

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -56,8 +56,11 @@ def testIsValidShortNumber(self):
5656

5757
# Python version extra test: check invalid region code
5858
self.assertFalse(is_valid_short_number_for_region("123456", "XY"))
59+
self.assertFalse(is_valid_short_number(PhoneNumber(country_code=99, national_number=123)))
5960
# Python version extra test: not matching general desc
6061
self.assertFalse(is_valid_short_number_for_region("2123456", "US"))
62+
# Python version extra test: shared country code (44 => GB+GG) but not valid in either
63+
self.assertFalse(is_valid_short_number(PhoneNumber(country_code=44, national_number=58001)))
6164

6265
def testGetExpectedCost(self):
6366
premiumRateExample = shortnumberinfo._example_short_number_for_cost("FR", ShortNumberCost.PREMIUM_RATE)
@@ -92,7 +95,6 @@ def testGetExpectedCost(self):
9295
unknownCostNumber.national_number = 911
9396
self.assertEqual(ShortNumberCost.UNKNOWN_COST, expected_cost(unknownCostNumber))
9497

95-
9698
def testGetExpectedCostForSharedCountryCallingCode(self):
9799
# Test some numbers which have different costs in countries sharing
98100
# the same country calling code. In Australia, 1234 is premium-rate,
@@ -275,7 +277,7 @@ def testEmergencyNumberForSharedCountryCallingCode(self):
275277
self.assertTrue(shortnumberinfo.is_valid_short_number(sharedEmergencyNumber))
276278
self.assertEqual(ShortNumberCost.TOLL_FREE,
277279
shortnumberinfo.expected_cost(sharedEmergencyNumber))
278-
280+
279281
def testOverlappingNANPANumber(self):
280282
# 211 is an emergency number in Barbados, while it is a toll-free
281283
# information line in Canada and the USA.

0 commit comments

Comments
 (0)