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 testPrintShortMetadata(self): # Python version extra test. Print string representation of short metadata. short_metadata = PhoneMetadata.short_metadata_for_region("GB") result = str(short_metadata) self.assertTrue( result.startswith( "PhoneMetadata(id='GB', country_code=None, international_prefix=None" ))
def testPrintShortMetadata(self): # Python version extra test. Print string representation of short metadata. short_metadata = PhoneMetadata.short_metadata_for_region("GB") self.assertEqual( r"""PhoneMetadata(id='GB', country_code=None, international_prefix=None, general_desc=PhoneNumberDesc(national_number_pattern='[1-4679]\\d{2,5}', possible_number_pattern='\\d{3,6}'), toll_free=PhoneNumberDesc(national_number_pattern='NA', possible_number_pattern='NA'), premium_rate=PhoneNumberDesc(national_number_pattern='NA', possible_number_pattern='NA'), short_code=PhoneNumberDesc(national_number_pattern='1(?:0[01]|1(?:[12]|[68]\\d{3})|2[123]|33|4(?:1|7\\d)|5\\d|70\\d|800\\d|9[15])|2(?:02|2(?:02|11|2)|3(?:02|45)|425)|3[13]3|4(?:0[02]|35[01]|44[45]|5\\d)|650|789|9(?:01|99)', possible_number_pattern='\\d{3,6}', example_number='150'), standard_rate=PhoneNumberDesc(national_number_pattern='NA', possible_number_pattern='NA'), short_data=True)""", str(short_metadata))
def testPrintShortMetadata(self): # Python version extra test. Print string representation of short metadata. short_metadata = PhoneMetadata.short_metadata_for_region("GB") self.assertEqual(r"""PhoneMetadata(id='GB', country_code=None, international_prefix=None, general_desc=PhoneNumberDesc(national_number_pattern='[1-4679]\\d{2,5}', possible_number_pattern='\\d{3,6}'), toll_free=PhoneNumberDesc(national_number_pattern='NA', possible_number_pattern='NA'), premium_rate=PhoneNumberDesc(national_number_pattern='NA', possible_number_pattern='NA'), emergency=PhoneNumberDesc(national_number_pattern='112|999', possible_number_pattern='\\d{3}', example_number='112'), short_code=PhoneNumberDesc(national_number_pattern='1(?:0[01]|1(?:[12]|[68]\\d{3})|2[123]|33|4(?:1|7\\d)|5\\d|70\\d|800\\d|9[15])|2(?:02|2(?:02|11|2)|3(?:02|45)|425)|3[13]3|4(?:0[02]|35[01]|44[45]|5\\d)|650|789|9(?:01|99)', possible_number_pattern='\\d{3,6}', example_number='150'), standard_rate=PhoneNumberDesc(national_number_pattern='NA', possible_number_pattern='NA'), carrier_specific=PhoneNumberDesc(national_number_pattern='NA', possible_number_pattern='NA'), short_data=True)""", str(short_metadata))
def testPrintShortMetadata(self): # Python version extra test. Print string representation of short metadata. short_metadata = PhoneMetadata.short_metadata_for_region("GB") self.assertEqual( r"""PhoneMetadata(id='GB', country_code=None, international_prefix=None, general_desc=PhoneNumberDesc(national_number_pattern='[1-467-9]\\d{2,5}', possible_number_pattern='\\d{3,6}'), toll_free=PhoneNumberDesc(national_number_pattern='1(?:16\\d{3}|7[56]0|8000)|2(?:202|48)|4444', possible_number_pattern='\\d{3,6}', example_number='116000'), premium_rate=PhoneNumberDesc(national_number_pattern='NA', possible_number_pattern='NA'), emergency=PhoneNumberDesc(national_number_pattern='112|999', possible_number_pattern='\\d{3}', example_number='112'), short_code=PhoneNumberDesc(national_number_pattern='1(?:0[01]|1(?:[12]|6(?:000|1(?:11|23))|8\\d{3})|2[123]|33|4(?:1|7\\d)|5(?:\\d|71)|7(?:0\\d|[56]0)|800\\d|9[15])|2(?:02(?:02)?|1300|2(?:02|11|2)|3(?:02|336|45)|4(?:25|8))|3[13]3|4(?:0[02]|35[01]|44[45]|5\\d)|6(?:50|\\d{4})|7(?:0\\d{3}|8(?:9|\\d{3})|9\\d{3})|8\\d{4}|9(?:01|99)', possible_number_pattern='\\d{3,6}', example_number='150'), standard_rate=PhoneNumberDesc(national_number_pattern='NA', possible_number_pattern='NA'), carrier_specific=PhoneNumberDesc(national_number_pattern='1(?:571|7[56]0)|2(?:02(?:02)?|1300|3336|48)|4444|901', possible_number_pattern='\\d{3,5}', example_number='1571'), short_data=True)""", str(short_metadata))
def testSmsServiceShortNumbers(self): wrongTagCounter = 0 for regionCode in shortnumberinfo.SUPPORTED_SHORT_REGIONS: metadata = PhoneMetadata.short_metadata_for_region(regionCode, None) desc = metadata.sms_services if desc is not None and desc.example_number is not None: exampleNumber = desc.example_number smsServiceNumber = phonenumberutil.parse(exampleNumber, regionCode) if (not shortnumberinfo.is_possible_short_number_for_region(smsServiceNumber, regionCode) or not shortnumberinfo.is_sms_service_for_region(smsServiceNumber, regionCode)): wrongTagCounter += 1 prnt("SMS service test failed for %s" % regionCode, file=sys.stderr) self.assertEqual(0, wrongTagCounter)
def testCarrierSpecificShortNumbers(self): wrongTagCounter = 0 for regionCode in shortnumberinfo.SUPPORTED_SHORT_REGIONS: metadata = PhoneMetadata.short_metadata_for_region(regionCode, None) desc = metadata.carrier_specific if desc is not None and desc.example_number is not None: exampleNumber = desc.example_number carrierSpecificNumber = phonenumberutil.parse(exampleNumber, regionCode) if (not shortnumberinfo.is_possible_short_number_for_region(carrierSpecificNumber, regionCode) or not shortnumberinfo.is_carrier_specific_for_region(carrierSpecificNumber, regionCode)): wrongTagCounter += 1 prnt("Carrier-specific test failed for %s" % regionCode, file=sys.stderr) self.assertEqual(0, wrongTagCounter)
def testCarrierSpecificShortNumbers(self): wrongTagCounter = 0 for regionCode in phonenumberutil.SUPPORTED_SHORT_REGIONS: # Test the carrier-specific tag. metadata = PhoneMetadata.short_metadata_for_region(regionCode, None) desc = metadata.carrier_specific if desc.example_number is not None: exampleNumber = desc.example_number carrierSpecificNumber = phonenumberutil.parse(exampleNumber, regionCode) if (not fullmatch(re.compile(desc.possible_number_pattern), exampleNumber) or not shortnumberinfo.is_carrier_specific(carrierSpecificNumber)): wrongTagCounter += 1 prnt("Carrier-specific test failed for %s" % regionCode, file=sys.stderr) # TODO: Test other tags here self.assertEqual(0, wrongTagCounter)
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 testCarrierSpecificShortNumbers(self): wrongTagCounter = 0 for regionCode in phonenumberutil.SUPPORTED_SHORT_REGIONS: # Test the carrier-specific tag. metadata = PhoneMetadata.short_metadata_for_region( regionCode, None) desc = metadata.carrier_specific if desc.example_number is not None: exampleNumber = desc.example_number carrierSpecificNumber = phonenumberutil.parse( exampleNumber, regionCode) if (not fullmatch(re.compile(desc.possible_number_pattern), exampleNumber) or not shortnumberinfo.is_carrier_specific( carrierSpecificNumber)): wrongTagCounter += 1 prnt("Carrier-specific test failed for %s" % regionCode, file=sys.stderr) # TODO: Test other tags here self.assertEqual(0, wrongTagCounter)
def testMetadataPrint(self): # Python version extra test # Convert all metadata to strings to check the printing code doesn't blow up. for region_code in PhoneMetadata._short_region_available.keys(): metadata = PhoneMetadata.short_metadata_for_region(region_code) str(metadata)