def setUp(self): self.pp = PhoneParser(TestConfig())
class PhoneParserTests(unittest.TestCase): """Unit Testing of the PhoneParser""" pp = None testDict = { "leadingZero": None, "extension": None, "countryCode": 1, "countryCodeSource": None, "carrierCode": None, "description": "Angleton, TX", "region": "US", "nationalNumber": 9795495150 } dfvnmCallCount = 0 def setUp(self): self.pp = PhoneParser(TestConfig()) def tearDown(self): self.pp = None PhoneParserTests.dfvnmCallCount = 0 def test_build_phone_number_dict(self): numObj = phonenumberutil.parse("+1-979-549-5150") numDict = self.pp.build_phone_number_dict(numObj, "Angleton, TX", "US") self.assertEqual(numDict, self.testDict) def test_getphonenumberobjectWithNonNumberReturnsFalse(self): self.assertFalse( self.pp.get_phone_number_object( "The rain in spain falls mainly in the plain." ) ) def test_getphonenumberobjectWithRegionFlaggedPhoneReturnsDict(self): self.assertIsInstance( self.pp.get_phone_number_object("+1-979-549-5150"), dict ) def test_getphonenumberobjectWithTenDigitNoRegionAndNoDescTriesAgain(self): self.pp.digits = "1234567890" self.assertIsInstance( self.pp.get_phone_number_object("1234567890"), dict ) def test_getphonenumberobjectWith11DigitNoRegionAndNoDescTriesAgain(self): self.pp.digits = "11234567890" self.assertIsInstance( self.pp.get_phone_number_object("11234567890"), dict ) @mock.patch( "phonenumbers.geocoder.description_for_valid_number", descriptionForValidNumberMock ) def test_getphonenumberobjectWhereSecondPassThrowsError(self): self.pp.digits = "1234567890" result = self.pp.get_phone_number_object("1234567890") self.assertEqual(2, PhoneParserTests.dfvnmCallCount) self.assertIsInstance(result, dict) def test_parseWithInvalidLengthStringYieldsNothing(self): count = 1 for _ in self.pp.parse("1234"): count -= 1 self.assertEqual(1, count) def test_parseWithMoreLettersThanNumbersYieldsNothing(self): count = 1 for _ in self.pp.parse("abcdefghi1234567"): count -= 1 self.assertEqual(1, count) def test_parseWithInvalidPhoneYieldsNothing(self): count = 1 for _ in self.pp.parse("1234567123456712345671234567"): count -= 1 self.assertEqual(1, count) def test_parseWithIntegerYieldsExpectedConfidence(self): results = [] for result in self.pp.parse("123123123123"): results.append(result) self.assertEqual(50, result.confidence) self.assertEqual(1, len(results)) def test_parseWithIPAddressYieldsExpectedConfidence(self): results = [] for result in self.pp.parse("123.123.123.123"): results.append(result) self.assertEqual(75, result.confidence) self.assertEqual(1, len(results)) def test_parseWithTenDigitsYieldsExpectedConfidence(self): results = [] for result in self.pp.parse("1231231231"): results.append(result) self.assertEqual(55, result.confidence) self.assertEqual(1, len(results)) def test_parseWithNineDigitsYieldsExpectedConfidence(self): results = [] for result in self.pp.parse("123123123"): results.append(result) self.assertEqual(40, result.confidence) self.assertEqual(1, len(results)) def test_parseWithTooLongDataYieldsNothing(self): count = 5 for _ in self.pp.parse("1231231234123123123412312312345"): count -= 1 self.assertEqual(5, count)