def testGetExpectedCost(self): premiumRateExample = shortnumberinfo._example_short_number_for_cost("FR", ShortNumberCost.PREMIUM_RATE) self.assertEqual(ShortNumberCost.PREMIUM_RATE, expected_cost_for_region(_parse(premiumRateExample, "FR"), "FR")) premiumRateNumber = PhoneNumber(country_code=33, national_number=int(premiumRateExample)) self.assertEqual(ShortNumberCost.PREMIUM_RATE, expected_cost(premiumRateNumber)) standardRateExample = shortnumberinfo._example_short_number_for_cost("FR", ShortNumberCost.STANDARD_RATE) self.assertEqual(ShortNumberCost.STANDARD_RATE, expected_cost_for_region(_parse(standardRateExample, "FR"), "FR")) standardRateNumber = PhoneNumber(country_code=33, national_number=int(standardRateExample)) self.assertEqual(ShortNumberCost.STANDARD_RATE, expected_cost(standardRateNumber)) tollFreeExample = shortnumberinfo._example_short_number_for_cost("FR", ShortNumberCost.TOLL_FREE) self.assertEqual(ShortNumberCost.TOLL_FREE, expected_cost_for_region(_parse(tollFreeExample, "FR"), "FR")) tollFreeNumber = PhoneNumber(country_code=33, national_number=int(tollFreeExample)) self.assertEqual(ShortNumberCost.TOLL_FREE, expected_cost(tollFreeNumber)) self.assertEqual(ShortNumberCost.UNKNOWN_COST, expected_cost_for_region(_parse("12345", "FR"), "FR")) unknownCostNumber = PhoneNumber(country_code=33, national_number=12345) self.assertEqual(ShortNumberCost.UNKNOWN_COST, expected_cost(unknownCostNumber)) # Test that an invalid number may nevertheless have a cost other than UNKNOWN_COST. self.assertFalse(is_valid_short_number_for_region(_parse("116123", "FR"), "FR")) invalidNumber = PhoneNumber(country_code=33, national_number=116123) self.assertEqual(ShortNumberCost.TOLL_FREE, expected_cost_for_region(_parse("116123", "FR"), "FR")) self.assertFalse(is_valid_short_number(invalidNumber)) self.assertEqual(ShortNumberCost.TOLL_FREE, expected_cost(invalidNumber)) # Test a nonexistent country code. self.assertEqual(ShortNumberCost.UNKNOWN_COST, expected_cost_for_region(_parse("911", "US"), "ZZ")) unknownCostNumber.country_code = 123 unknownCostNumber.national_number = 911 self.assertEqual(ShortNumberCost.UNKNOWN_COST, expected_cost(unknownCostNumber))
def testGetExpectedCost(self): premiumRateExample = shortnumberinfo._example_short_number_for_cost("FR", ShortNumberCost.PREMIUM_RATE) self.assertEqual(ShortNumberCost.PREMIUM_RATE, expected_cost_for_region(_parse(premiumRateExample, "FR"), "FR")) premiumRateNumber = PhoneNumber(country_code=33, national_number=int(premiumRateExample)) self.assertEqual(ShortNumberCost.PREMIUM_RATE, expected_cost(premiumRateNumber)) standardRateExample = shortnumberinfo._example_short_number_for_cost("FR", ShortNumberCost.STANDARD_RATE) self.assertEqual(ShortNumberCost.STANDARD_RATE, expected_cost_for_region(_parse(standardRateExample, "FR"), "FR")) standardRateNumber = PhoneNumber(country_code=33, national_number=int(standardRateExample)) self.assertEqual(ShortNumberCost.STANDARD_RATE, expected_cost(standardRateNumber)) tollFreeExample = shortnumberinfo._example_short_number_for_cost("FR", ShortNumberCost.TOLL_FREE) self.assertEqual(ShortNumberCost.TOLL_FREE, expected_cost_for_region(_parse(tollFreeExample, "FR"), "FR")) tollFreeNumber = PhoneNumber(country_code=33, national_number=int(tollFreeExample)) self.assertEqual(ShortNumberCost.TOLL_FREE, expected_cost(tollFreeNumber)) self.assertEqual(ShortNumberCost.UNKNOWN_COST, expected_cost_for_region(_parse("12345", "FR"), "FR")) unknownCostNumber = PhoneNumber(country_code=33, national_number=12345) self.assertEqual(ShortNumberCost.UNKNOWN_COST, expected_cost(unknownCostNumber)) # Test that an invalid number may nevertheless have a cost other than UNKNOWN_COST. self.assertFalse(is_valid_short_number_for_region("116123", "FR")) invalidNumber = PhoneNumber(country_code=33, national_number=116123) self.assertEqual(ShortNumberCost.TOLL_FREE, expected_cost_for_region(_parse("116123", "FR"), "FR")) self.assertFalse(is_valid_short_number(invalidNumber)) self.assertEqual(ShortNumberCost.TOLL_FREE, expected_cost(invalidNumber)) # Test a nonexistent country code. self.assertEqual(ShortNumberCost.UNKNOWN_COST, expected_cost_for_region(_parse("911", "US"), "ZZ")) unknownCostNumber.country_code = 123 unknownCostNumber.national_number = 911 self.assertEqual(ShortNumberCost.UNKNOWN_COST, expected_cost(unknownCostNumber))
def testGetExampleShortNumberForCost(self): self.assertEqual("3010", shortnumberinfo._example_short_number_for_cost("FR", ShortNumberCost.TOLL_FREE)) self.assertEqual("1023", shortnumberinfo._example_short_number_for_cost("FR", ShortNumberCost.STANDARD_RATE)) self.assertEqual("42000", shortnumberinfo._example_short_number_for_cost("FR", ShortNumberCost.PREMIUM_RATE)) self.assertEqual("", shortnumberinfo._example_short_number_for_cost("FR", ShortNumberCost.UNKNOWN_COST)) # Python version extra test self.assertEqual("", shortnumberinfo._example_short_number_for_cost("XY", ShortNumberCost.UNKNOWN_COST))
def testShortNumbersValidAndCorrectCost(self): invalid_string_cases = [] for regionCode in phonenumberutil.SUPPORTED_SHORT_REGIONS: exampleShortNumber = shortnumberinfo._example_short_number( regionCode) phoneNumber = phonenumberutil.parse(exampleShortNumber, regionCode) if not shortnumberinfo.is_valid_short_number_for_region( phoneNumber, regionCode): invalid_string_case = "region_code: %s, national_number: %s" % ( regionCode, exampleShortNumber) invalid_string_cases.append(invalid_string_case) prnt("Failed validation from string %s" % invalid_string_case, file=sys.stderr) if not shortnumberinfo.is_valid_short_number(phoneNumber): self.invalid_cases.append(phoneNumber) prnt("Failed validation for %s" % phoneNumber, file=sys.stderr) for cost in [ ShortNumberCost.TOLL_FREE, ShortNumberCost.STANDARD_RATE, ShortNumberCost.PREMIUM_RATE, ShortNumberCost.UNKNOWN_COST ]: exampleShortNumber = shortnumberinfo._example_short_number_for_cost( regionCode, cost) if exampleShortNumber != "": phoneNumber = phonenumberutil.parse( exampleShortNumber, regionCode) exampleCost = shortnumberinfo.expected_cost_for_region( phoneNumber, regionCode) if cost != exampleCost: self.wrong_type_cases.append(phoneNumber) prnt("Wrong cost for %s: got %s, expected: %s" % (phoneNumber, exampleCost, cost), file=sys.stderr) self.assertEqual(0, len(invalid_string_cases)) self.assertEqual(0, len(self.invalid_cases)) self.assertEqual(0, len(self.wrong_type_cases))
def testShortNumbersValidAndCorrectCost(self): invalid_string_cases = [] 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 exampleShortNumber = shortnumberinfo._example_short_number( regionCode) if not shortnumberinfo.is_valid_short_number( exampleShortNumber, regionCode): invalid_string_case = "region_code: %s, national_number: %s" % ( regionCode, exampleShortNumber) invalid_string_cases.append(invalid_string_case) print >> sys.stderr, "Failed validation from string %s" % invalid_string_case phoneNumber = phonenumberutil.parse(exampleShortNumber, regionCode) if not shortnumberinfo.is_valid_short_number_object(phoneNumber): self.invalid_cases.append(phoneNumber) print >> sys.stderr, "Failed validation for %s" % phoneNumber for cost in [ ShortNumberCost.TOLL_FREE, ShortNumberCost.STANDARD_RATE, ShortNumberCost.PREMIUM_RATE, ShortNumberCost.UNKNOWN_COST ]: exampleShortNumber = shortnumberinfo._example_short_number_for_cost( regionCode, cost) if exampleShortNumber != "": phoneNumber = phonenumberutil.parse( exampleShortNumber, regionCode) if cost != shortnumberinfo.expected_cost(phoneNumber): self.wrong_type_cases.append(phoneNumber) print >> sys.stderr, "Wrong cost for %s" % phoneNumber self.assertEqual(0, len(invalid_string_cases)) self.assertEqual(0, len(self.invalid_cases)) self.assertEqual(0, len(self.wrong_type_cases))
def testShortNumbersValidAndCorrectCost(self): invalid_string_cases = [] for regionCode in phonenumberutil.SUPPORTED_SHORT_REGIONS: exampleShortNumber = shortnumberinfo._example_short_number(regionCode) phoneNumber = phonenumberutil.parse(exampleShortNumber, regionCode) if not shortnumberinfo.is_valid_short_number_for_region(phoneNumber, regionCode): invalid_string_case = "region_code: %s, national_number: %s" % (regionCode, exampleShortNumber) invalid_string_cases.append(invalid_string_case) prnt("Failed validation from string %s" % invalid_string_case, file=sys.stderr) if not shortnumberinfo.is_valid_short_number(phoneNumber): self.invalid_cases.append(phoneNumber) prnt("Failed validation for %s" % phoneNumber, file=sys.stderr) for cost in [ShortNumberCost.TOLL_FREE, ShortNumberCost.STANDARD_RATE, ShortNumberCost.PREMIUM_RATE, ShortNumberCost.UNKNOWN_COST]: exampleShortNumber = shortnumberinfo._example_short_number_for_cost(regionCode, cost) if exampleShortNumber != "": phoneNumber = phonenumberutil.parse(exampleShortNumber, regionCode) if cost != shortnumberinfo.expected_cost_for_region(phoneNumber, regionCode): self.wrong_type_cases.append(phoneNumber) prnt("Wrong cost for %s" % phoneNumber, file=sys.stderr) self.assertEqual(0, len(invalid_string_cases)) self.assertEqual(0, len(self.invalid_cases)) self.assertEqual(0, len(self.wrong_type_cases))