def testGetTimeZonesForNumber(self):
     # Test with invalid numbers even when their country code prefixes exist in the mapper.
     self.assertEqual(_UNKNOWN_TIME_ZONE_LIST,
                      time_zones_for_number(US_INVALID_NUMBER))
     self.assertEqual(_UNKNOWN_TIME_ZONE_LIST,
                      time_zones_for_number(KO_INVALID_NUMBER))
     # Test with valid prefixes.
     self.assertEqual((_SYDNEY_TZ, ), time_zones_for_number(AU_NUMBER))
     self.assertEqual((_SEOUL_TZ, ), time_zones_for_number(KO_NUMBER))
     self.assertEqual((_WINNIPEG_TZ, ), time_zones_for_number(CA_NUMBER))
     self.assertEqual((_LOS_ANGELES_TZ, ),
                      time_zones_for_number(US_NUMBER1))
     self.assertEqual((_NEW_YORK_TZ, ), time_zones_for_number(US_NUMBER2))
     # Test with an invalid country code.
     self.assertEqual(
         _UNKNOWN_TIME_ZONE_LIST,
         time_zones_for_number(NUMBER_WITH_INVALID_COUNTRY_CODE))
     # Test with a non geographical phone number.
     self.assertEqual(_UNKNOWN_TIME_ZONE_LIST,
                      time_zones_for_number(INTERNATIONAL_TOLL_FREE))
     # Python version extra test: check a number that can't geocoded; falls back to per-country
     kr_mobile_number = FrozenPhoneNumber(country_code=82,
                                          national_number=801234567)
     self.assertEqual((_SEOUL_TZ, ),
                      time_zones_for_number(kr_mobile_number))
 def testFrozenPhoneNumber(self):
     # Python version extra tests
     gb_mobile = PhoneNumber(country_code=44, national_number=7912345678)
     it_number = PhoneNumber(country_code=39, national_number=236618300, italian_leading_zero=True)
     frozen_gb_mobile1 = FrozenPhoneNumber(country_code=44, national_number=7912345678)
     frozen_it_number1 = FrozenPhoneNumber(country_code=39, national_number=236618300, italian_leading_zero=True)
     frozen_gb_mobile2 = FrozenPhoneNumber(gb_mobile)
     frozen_it_number2 = FrozenPhoneNumber(it_number)
     self.assertEqual(frozen_gb_mobile1, gb_mobile)
     self.assertEqual(frozen_gb_mobile2, gb_mobile)
     self.assertEqual(frozen_gb_mobile1, frozen_gb_mobile2)
     self.assertEqual(frozen_it_number1, it_number)
     self.assertEqual(frozen_it_number2, it_number)
     self.assertEqual(frozen_it_number1, frozen_it_number2)
     self.assertEqual(hash(frozen_it_number1), hash(frozen_it_number2))
     self.assertNotEqual(hash(frozen_it_number1), hash(frozen_gb_mobile1))
     phonedict = {frozen_it_number1: 1, frozen_gb_mobile1: 2}
     self.assertEqual(phonedict[frozen_it_number1], 1)
     try:
         frozen_gb_mobile1.country_code = 12
         self.fail("Should not be able to modify FrozenPhoneNubmer")
     except TypeError:
         pass
     try:
         frozen_gb_mobile2.raw_input = ""
         self.fail("Should not be able to modify FrozenPhoneNubmer")
     except TypeError:
         pass
     try:
         frozen_gb_mobile1.clear()
         self.fail("Should not be able to modify FrozenPhoneNubmer")
     except TypeError:
         pass
     try:
         frozen_gb_mobile1.merge_from(frozen_it_number1)
         self.fail("Should not be able to modify FrozenPhoneNubmer")
     except TypeError:
         pass
     try:
         del frozen_gb_mobile1.country_code
         self.fail("Should not be able to modify FrozenPhoneNubmer")
     except TypeError:
         pass
     # Coverage test
     frozen_gb_mobile1._mutable = True
     del frozen_gb_mobile1.country_code
Ejemplo n.º 3
0
    def testCoverage(self):
        # Python version extra tests
        invalid_number = PhoneNumber(country_code=210, national_number=123456)
        self.assertEqual("", country_name_for_number(invalid_number, "en"))
        # Ensure we exercise all public entrypoints directly
        self.assertEqual("CA", _prefix_description_for_number(TEST_GEOCODE_DATA, TEST_GEOCODE_LONGEST_PREFIX, US_NUMBER1, "en"))
        self.assertEqual("CA", description_for_valid_number(US_NUMBER1, "en"))
        self.assertEqual("", description_for_valid_number(US_INVALID_NUMBER, "en"))
        # Add in some script and region specific fictional names
        TEST_GEOCODE_DATA['1650960'] = {'en': u("Mountain View, CA"),
                                        "en_GB": u("Mountain View California"),
                                        "en_US": u("Mountain View, Sunny California"),
                                        "en_Xyzz_US": u("MTV - xyzz"),
                                        "en_Latn": u("MountainView")}
        # The following test might one day return "Mountain View California"
        self.assertEqual("United States",
                         description_for_number(US_NUMBER2, _ENGLISH, region="GB"))
        self.assertEqual("Mountain View, Sunny California",
                         description_for_number(US_NUMBER2, _ENGLISH, region="US"))
        self.assertEqual("MountainView",
                         description_for_number(US_NUMBER2, _ENGLISH, script="Latn"))
        self.assertEqual("United States",
                         description_for_number(US_NUMBER2, _ENGLISH, script="Latn", region="GB"))
        self.assertEqual("MTV - xyzz",
                         description_for_number(US_NUMBER2, _ENGLISH, script="Xyzz", region="US"))
        self.assertEqual("Mountain View, Sunny California",
                         description_for_number(US_NUMBER2, _ENGLISH, script="Zazz", region="US"))
        # Get a different result when there is a script-specific variant
        self.assertEqual("MountainView",
                         description_for_number(US_NUMBER2, _ENGLISH, script="Latn", region="US"))
        TEST_GEOCODE_DATA['1650960'] = {'en': u("Mountain View, CA")}

        # Test the locale mapping
        TEST_GEOCODE_DATA['8862'] = {'zh': u("Chinese"), 'zh_Hant': u("Hant-specific")}
        tw_number = FrozenPhoneNumber(country_code=886, national_number=221234567)
        self.assertEqual("Hant-specific",
                         description_for_number(tw_number, "zh", region="TW"))
        del TEST_GEOCODE_DATA['8862']

def reinstate_real_tzdata():
    """Reinstate real phone number timezone metadata"""
    timezone.TIMEZONE_DATA = REAL_TIMEZONE_DATA
    timezone.TIMEZONE_LONGEST_PREFIX = REAL_TIMEZONE_LONGEST_PREFIX


def insert_test_tzdata():
    """Insert test timezone metadata into library"""
    timezone.TIMEZONE_DATA = TEST_TIMEZONE_DATA
    timezone.TIMEZONE_LONGEST_PREFIX = TEST_TIMEZONE_LONGEST_PREFIX


# Set up some test numbers to re-use.
AU_NUMBER = FrozenPhoneNumber(country_code=61, national_number=236618300)
CA_NUMBER = FrozenPhoneNumber(country_code=1, national_number=6048406565)
KO_NUMBER = FrozenPhoneNumber(country_code=82, national_number=22123456)
KO_INVALID_NUMBER = FrozenPhoneNumber(country_code=82, national_number=1234)
US_NUMBER1 = FrozenPhoneNumber(country_code=1, national_number=6509600000)
US_NUMBER2 = FrozenPhoneNumber(country_code=1, national_number=2128120000)
US_NUMBER3 = FrozenPhoneNumber(country_code=1, national_number=6174240000)
US_INVALID_NUMBER = FrozenPhoneNumber(country_code=1,
                                      national_number=123456789)
NUMBER_WITH_INVALID_COUNTRY_CODE = FrozenPhoneNumber(
    country_code=999, national_number=2423651234)
INTERNATIONAL_TOLL_FREE = FrozenPhoneNumber(country_code=800,
                                            national_number=12345678)

# NANPA time zones.
_CHICAGO_TZ = "America/Chicago"
Ejemplo n.º 5
0

def reinstate_real_geodata():
    """Reinstate real phone number geocoding metadata"""
    geocoder.GEOCODE_DATA = REAL_GEOCODE_DATA
    geocoder.GEOCODE_LONGEST_PREFIX = REAL_GEOCODE_LONGEST_PREFIX


def insert_test_geodata():
    """Insert test geocoding metadata into library"""
    geocoder.GEOCODE_DATA = TEST_GEOCODE_DATA
    geocoder.GEOCODE_LONGEST_PREFIX = TEST_GEOCODE_LONGEST_PREFIX


# Set up some test numbers to re-use.
KO_NUMBER1 = FrozenPhoneNumber(country_code=82, national_number=22123456L)
KO_NUMBER2 = FrozenPhoneNumber(country_code=82, national_number=322123456L)
KO_NUMBER3 = FrozenPhoneNumber(country_code=82, national_number=6421234567L)
KO_INVALID_NUMBER = FrozenPhoneNumber(country_code=82, national_number=1234L)
US_NUMBER1 = FrozenPhoneNumber(country_code=1, national_number=6502530000L)
US_NUMBER2 = FrozenPhoneNumber(country_code=1, national_number=6509600000L)
US_NUMBER3 = FrozenPhoneNumber(country_code=1, national_number=2128120000L)
US_NUMBER4 = FrozenPhoneNumber(country_code=1, national_number=6174240000L)
US_INVALID_NUMBER = FrozenPhoneNumber(country_code=1,
                                      national_number=123456789L)
BS_NUMBER1 = FrozenPhoneNumber(country_code=1, national_number=2423651234L)
AU_NUMBER = FrozenPhoneNumber(country_code=61, national_number=236618300L)
NUMBER_WITH_INVALID_COUNTRY_CODE = FrozenPhoneNumber(
    country_code=999, national_number=2423651234L)
INTERNATIONAL_TOLL_FREE = FrozenPhoneNumber(country_code=800,
                                            national_number=12345678L)
Ejemplo n.º 6
0

def reinstate_real_carrierdata():
    """Reinstate real phone number carrier metadata"""
    carrier.CARRIER_DATA = REAL_CARRIER_DATA
    carrier.CARRIER_LONGEST_PREFIX = REAL_CARRIER_LONGEST_PREFIX


def insert_test_carrierdata():
    """Insert test carrier metadata into library"""
    carrier.CARRIER_DATA = TEST_CARRIER_DATA
    carrier.CARRIER_LONGEST_PREFIX = TEST_CARRIER_LONGEST_PREFIX


# Set up some test numbers to re-use.
AO_MOBILE1 = FrozenPhoneNumber(country_code=244, national_number=917654321)
AO_MOBILE2 = FrozenPhoneNumber(country_code=244, national_number=927654321)
AO_FIXED1 = FrozenPhoneNumber(country_code=244, national_number=22254321)
AO_FIXED2 = FrozenPhoneNumber(country_code=244, national_number=26254321)
AO_INVALID_NUMBER = FrozenPhoneNumber(country_code=244, national_number=101234)
UK_MOBILE1 = FrozenPhoneNumber(country_code=44, national_number=7387654321)
UK_MOBILE2 = FrozenPhoneNumber(country_code=44, national_number=7487654321)
UK_FIXED1 = FrozenPhoneNumber(country_code=44, national_number=1123456789)
UK_FIXED2 = FrozenPhoneNumber(country_code=44, national_number=2987654321)
UK_INVALID_NUMBER = FrozenPhoneNumber(country_code=44, national_number=7301234)
UK_PAGER = FrozenPhoneNumber(country_code=44, national_number=7601234567)
US_FIXED_OR_MOBILE = FrozenPhoneNumber(country_code=1, national_number=6502123456)
NUMBER_WITH_INVALID_COUNTRY_CODE = FrozenPhoneNumber(country_code=999, national_number=2423651234)
INTERNATIONAL_TOLL_FREE = FrozenPhoneNumber(country_code=800, national_number=12345678)

# Language/country codes

def reinstate_real_geodata():
    """Reinstate real phone number geocoding metadata"""
    geocoder.GEOCODE_DATA = REAL_GEOCODE_DATA
    geocoder.GEOCODE_LONGEST_PREFIX = REAL_GEOCODE_LONGEST_PREFIX


def insert_test_geodata():
    """Insert test geocoding metadata into library"""
    geocoder.GEOCODE_DATA = TEST_GEOCODE_DATA
    geocoder.GEOCODE_LONGEST_PREFIX = TEST_GEOCODE_LONGEST_PREFIX


# Set up some test numbers to re-use.
KO_NUMBER1 = FrozenPhoneNumber(country_code=82, national_number=22123456)
KO_NUMBER2 = FrozenPhoneNumber(country_code=82, national_number=322123456)
KO_NUMBER3 = FrozenPhoneNumber(country_code=82, national_number=6421234567)
KO_INVALID_NUMBER = FrozenPhoneNumber(country_code=82, national_number=1234)
KO_MOBILE = FrozenPhoneNumber(country_code=82, national_number=101234567)
US_NUMBER1 = FrozenPhoneNumber(country_code=1, national_number=6502530000)
US_NUMBER2 = FrozenPhoneNumber(country_code=1, national_number=6509600000)
US_NUMBER3 = FrozenPhoneNumber(country_code=1, national_number=2128120000)
US_NUMBER4 = FrozenPhoneNumber(country_code=1, national_number=6174240000)
US_INVALID_NUMBER = FrozenPhoneNumber(country_code=1,
                                      national_number=123456789)
NANPA_TOLL_FREE = FrozenPhoneNumber(country_code=1, national_number=8002431234)
BS_NUMBER1 = FrozenPhoneNumber(country_code=1, national_number=2423651234)
AU_NUMBER = FrozenPhoneNumber(country_code=61, national_number=236618300)
AR_MOBILE_NUMBER = FrozenPhoneNumber(country_code=54,
                                     national_number=92214000000)
Ejemplo n.º 8
0
 def testFrozenPhoneNumber(self):
     # Python version extra tests
     gb_mobile = PhoneNumber(country_code=44, national_number=7912345678)
     it_number = PhoneNumber(country_code=39,
                             national_number=236618300,
                             italian_leading_zero=True)
     frozen_gb_mobile1 = FrozenPhoneNumber(country_code=44,
                                           national_number=7912345678)
     frozen_it_number1 = FrozenPhoneNumber(country_code=39,
                                           national_number=236618300,
                                           italian_leading_zero=True)
     frozen_gb_mobile2 = FrozenPhoneNumber(gb_mobile)
     frozen_it_number2 = FrozenPhoneNumber(it_number)
     self.assertEqual(frozen_gb_mobile1, gb_mobile)
     self.assertEqual(frozen_gb_mobile2, gb_mobile)
     self.assertEqual(frozen_gb_mobile1, frozen_gb_mobile2)
     self.assertEqual(frozen_it_number1, it_number)
     self.assertEqual(frozen_it_number2, it_number)
     self.assertEqual(frozen_it_number1, frozen_it_number2)
     self.assertEqual(hash(frozen_it_number1), hash(frozen_it_number2))
     self.assertNotEqual(hash(frozen_it_number1), hash(frozen_gb_mobile1))
     phonedict = {frozen_it_number1: 1, frozen_gb_mobile1: 2}
     self.assertEqual(phonedict[frozen_it_number1], 1)
     try:
         frozen_gb_mobile1.country_code = 12
         self.fail("Should not be able to modify FrozenPhoneNubmer")
     except TypeError:
         pass
     try:
         frozen_gb_mobile2.raw_input = ""
         self.fail("Should not be able to modify FrozenPhoneNubmer")
     except TypeError:
         pass
     try:
         frozen_gb_mobile1.clear()
         self.fail("Should not be able to modify FrozenPhoneNubmer")
     except TypeError:
         pass
     try:
         frozen_gb_mobile1.merge_from(frozen_it_number1)
         self.fail("Should not be able to modify FrozenPhoneNubmer")
     except TypeError:
         pass
     try:
         del frozen_gb_mobile1.country_code
         self.fail("Should not be able to modify FrozenPhoneNubmer")
     except TypeError:
         pass
     # Coverage test
     frozen_gb_mobile1._mutable = True
     del frozen_gb_mobile1.country_code