def testEmergencyNumberForSharedCountryCallingCode(self): # Test the emergency number 112, which is valid in both Australia and # the Christmas Islands. self.assertTrue(is_emergency_number("112", "AU")) self.assertTrue( shortnumberinfo.is_valid_short_number_for_region( _parse("112", "AU"), "AU")) self.assertEqual( ShortNumberCost.TOLL_FREE, shortnumberinfo.expected_cost_for_region(_parse("112", "AU"), "AU")) self.assertTrue(is_emergency_number("112", "CX")) self.assertTrue( shortnumberinfo.is_valid_short_number_for_region( _parse("112", "CX"), "CX")) self.assertEqual( ShortNumberCost.TOLL_FREE, shortnumberinfo.expected_cost_for_region(_parse("112", "CX"), "CX")) sharedEmergencyNumber = PhoneNumber(country_code=61, national_number=112) self.assertTrue( shortnumberinfo.is_valid_short_number(sharedEmergencyNumber)) self.assertEqual(ShortNumberCost.TOLL_FREE, shortnumberinfo.expected_cost(sharedEmergencyNumber))
def testIsEmergencyNumber_ZW(self): # Zimbabwe doesn't have any metadata in the test metadata. self.assertFalse(is_emergency_number("911", "ZW")) self.assertFalse(is_emergency_number("01312345", "ZW")) self.assertFalse(is_emergency_number("0711234567", "ZW")) # Python version extra test: invalid region code self.assertFalse(is_emergency_number("911", "XY"))
def testOverlappingNANPANumber(self): # 211 is an emergency number in Barbados, while it is a toll-free # information line in Canada and the USA. self.assertTrue(is_emergency_number("211", "BB")) self.assertEqual(ShortNumberCost.TOLL_FREE, shortnumberinfo.expected_cost_for_region(_parse("211", "BB"), "BB")) self.assertFalse(is_emergency_number("211", "US")) self.assertEqual(ShortNumberCost.UNKNOWN_COST, shortnumberinfo.expected_cost_for_region(_parse("211", "US"), "US")) self.assertFalse(is_emergency_number("211", "CA")) self.assertEqual(ShortNumberCost.UNKNOWN_COST, shortnumberinfo.expected_cost_for_region(_parse("211", "CA"), "CA"))
def testOverlappingNANPANumber(self): # 211 is an emergency number in Barbados, while it is a toll-free # information line in Canada and the USA. self.assertTrue(is_emergency_number("211", "BB")) self.assertEqual(ShortNumberCost.TOLL_FREE, shortnumberinfo.expected_cost_for_region(_parse("211", "BB"), "BB")) self.assertFalse(is_emergency_number("211", "US")) self.assertEqual(ShortNumberCost.UNKNOWN_COST, shortnumberinfo.expected_cost_for_region(_parse("211", "US"), "US")) self.assertFalse(is_emergency_number("211", "CA")) self.assertEqual(ShortNumberCost.TOLL_FREE, shortnumberinfo.expected_cost_for_region(_parse("211", "CA"), "CA"))
def testEmergencyNumberForSharedCountryCallingCode(self): # Test the emergency number 112, which is valid in both Australia and # the Christmas Islands. self.assertTrue(is_emergency_number("112", "AU")) self.assertTrue(shortnumberinfo.is_valid_short_number_for_region(_parse("112", "AU"), "AU")) self.assertEqual(ShortNumberCost.TOLL_FREE, shortnumberinfo.expected_cost_for_region(_parse("112", "AU"), "AU")) self.assertTrue(is_emergency_number("112", "CX")) self.assertTrue(shortnumberinfo.is_valid_short_number_for_region(_parse("112", "CX"), "CX")) self.assertEqual(ShortNumberCost.TOLL_FREE, shortnumberinfo.expected_cost_for_region(_parse("112", "CX"), "CX")) sharedEmergencyNumber = PhoneNumber(country_code=61, national_number=112) self.assertTrue(shortnumberinfo.is_valid_short_number(sharedEmergencyNumber)) self.assertEqual(ShortNumberCost.TOLL_FREE, shortnumberinfo.expected_cost(sharedEmergencyNumber))
def testEmergency(self): wrongTypeCounter = 0 for regionCode in phonenumberutil.SUPPORTED_SHORT_REGIONS: if regionCode == "PG": # The only short number for Papua New Guinea is 000, which # fails the test, since the national prefix is 0. This needs # to be fixed. continue metadata = PhoneMetadata.short_metadata_for_region( regionCode, None) desc = metadata.emergency if desc.example_number is not None: exampleNumber = desc.example_number if (not fullmatch(re.compile(desc.possible_number_pattern), exampleNumber) or not is_emergency_number(exampleNumber, regionCode)): wrongTypeCounter += 1 print >> sys.stderr, "Emergency example number test failed for %s" % regionCode else: emergencyNumber = phonenumberutil.parse( exampleNumber, regionCode) if shortnumberinfo.expected_cost( emergencyNumber) != ShortNumberCost.TOLL_FREE: # TODO: Reenable this when a method is available to get the expected cost for a # particular region. #wrongTypeCounter += 1 print >> sys.stderr, "Emergency example number not toll free for %s" % regionCode self.assertEqual(0, wrongTypeCounter)
def testIsEmergencyNumberWithFormatting_US(self): self.assertTrue(is_emergency_number("9-1-1", "US")) self.assertTrue(is_emergency_number("*911", "US")) self.assertTrue(is_emergency_number("1-1-2", "US")) self.assertTrue(is_emergency_number("*112", "US")) self.assertFalse(is_emergency_number("9-9-9", "US")) self.assertFalse(is_emergency_number("*999", "US"))
def testEmergency(self): wrongTypeCounter = 0 for regionCode in phonenumberutil.SUPPORTED_REGIONS: metadata = PhoneMetadata.metadata_for_region(regionCode, None) desc = metadata.emergency if desc.example_number is not None: exampleNumber = desc.example_number if (not fullmatch(re.compile(desc.possible_number_pattern), exampleNumber) or not is_emergency_number(exampleNumber, regionCode)): wrongTypeCounter += 1 print >> sys.stderr, "Emergency example number test failed for %s" % regionCode self.assertEqual(0, wrongTypeCounter)
def testEmergency(self): wrongTypeCounter = 0 for regionCode in phonenumberutil.SUPPORTED_SHORT_REGIONS: metadata = PhoneMetadata.short_metadata_for_region(regionCode, None) desc = metadata.emergency if desc.example_number is not None: exampleNumber = desc.example_number if (not fullmatch(re.compile(desc.possible_number_pattern), exampleNumber) or not is_emergency_number(exampleNumber, regionCode)): wrongTypeCounter += 1 prnt("Emergency example number test failed for %s" % regionCode, file=sys.stderr) elif shortnumberinfo.expected_cost_for_region(exampleNumber, regionCode) != ShortNumberCost.TOLL_FREE: wrongTypeCounter += 1 prnt("Emergency example number not toll free for %s" % regionCode, file=sys.stderr) self.assertEqual(0, wrongTypeCounter)
def testEmergency(self): wrongTypeCounter = 0 for regionCode in shortnumberinfo.SUPPORTED_SHORT_REGIONS: metadata = PhoneMetadata.short_metadata_for_region(regionCode, None) desc = metadata.emergency if desc is not None and desc.example_number is not None: exampleNumber = desc.example_number phoneNumber = phonenumberutil.parse(exampleNumber, regionCode) if (not is_possible_short_number_for_region(phoneNumber, regionCode) or not is_emergency_number(exampleNumber, regionCode)): wrongTypeCounter += 1 prnt("Emergency example number test failed for %s" % regionCode, file=sys.stderr) elif shortnumberinfo.expected_cost_for_region(phoneNumber, regionCode) != ShortNumberCost.TOLL_FREE: wrongTypeCounter += 1 prnt("Emergency example number not toll free for %s" % regionCode, file=sys.stderr) self.assertEqual(0, wrongTypeCounter)
def testIsEmergencyNumber_AO(self): # Angola doesn't have any metadata for emergency numbers in the test metadata. self.assertFalse(is_emergency_number("911", "AO")) self.assertFalse(is_emergency_number("222123456", "AO")) self.assertFalse(is_emergency_number("923123456", "AO"))
def testIsEmergencyNumber_ZW(self): # Zimbabwe doesn't have any metadata in the test metadata. self.assertFalse(is_emergency_number("911", "ZW")) self.assertFalse(is_emergency_number("01312345", "ZW")) self.assertFalse(is_emergency_number("0711234567", "ZW"))
def testIsEmergencyNumberLongNumber_BR(self): self.assertFalse(is_emergency_number("9111", "BR")) self.assertFalse(is_emergency_number("1900", "BR")) self.assertFalse(is_emergency_number("9996", "BR"))
def testIsEmergencyNumber_BR(self): self.assertTrue(is_emergency_number("911", "BR")) self.assertTrue(is_emergency_number("190", "BR")) self.assertFalse(is_emergency_number("999", "BR"))
def testIsEmergencyNumberWithPlusSign_US(self): self.assertFalse(is_emergency_number("+911", "US")) self.assertFalse(is_emergency_number("\uFF0B911", "US")) self.assertFalse(is_emergency_number(" +911", "US")) self.assertFalse(is_emergency_number("+119", "US")) self.assertFalse(is_emergency_number("+999", "US"))
def testIsEmergencyNumber_US(self): self.assertTrue(is_emergency_number("911", "US")) self.assertTrue(is_emergency_number("112", "US")) self.assertFalse(is_emergency_number("999", "US"))
def testIsEmergencyNumberLongNumber_US(self): self.assertFalse(is_emergency_number("9116666666", "US")) self.assertFalse(is_emergency_number("1126666666", "US")) self.assertFalse(is_emergency_number("9996666666", "US"))