Skip to content

Commit

Permalink
Return phone in national or international format
Browse files Browse the repository at this point in the history
  • Loading branch information
louck committed Sep 13, 2024
1 parent 56cc56f commit 7dd94b1
Show file tree
Hide file tree
Showing 3 changed files with 20 additions and 8 deletions.
14 changes: 10 additions & 4 deletions commown_res_partner_sms/models/common.py
Original file line number Diff line number Diff line change
@@ -1,9 +1,15 @@
import phonenumbers

MOBILE_TYPE = phonenumbers.PhoneNumberType.MOBILE
FORMAT_DICT = {
"national": phonenumbers.PhoneNumberFormat.NATIONAL,
"international": phonenumbers.PhoneNumberFormat.INTERNATIONAL,
}


def normalize_phone(phone_number, country_code, raise_on_error=True):
def normalize_phone(
phone_number, country_code, number_format="international", raise_on_error=True
):
"""Format phone number for Colissimo
If phone number format is incorrect, raise if raise_on_error is True (default)
Expand All @@ -18,9 +24,9 @@ def normalize_phone(phone_number, country_code, raise_on_error=True):
if raise_on_error:
raise
else:
return phonenumbers.format_number(
tel, phonenumbers.PhoneNumberFormat.NATIONAL
).replace(" ", "")
return phonenumbers.format_number(tel, FORMAT_DICT[number_format]).replace(
" ", ""
)
return ""


Expand Down
10 changes: 8 additions & 2 deletions commown_res_partner_sms/tests/test_common.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,14 @@ def setUp(self):
super(SavepointCase, self).setUp()

def test_normalize_phone(self):
self.assertEqual(normalize_phone("06 23 23.23.23", "FR"), "0623232323")
self.assertEqual(normalize_phone(" +337 33 22 11 00", "FR"), "0733221100")
self.assertEqual(
normalize_phone("06 23 23.23.23", "FR", number_format="national"),
"0623232323",
)
self.assertEqual(
normalize_phone(" +337 33 22 11 00", "FR", number_format="national"),
"0733221100",
)
self.assertEqual(normalize_phone(False, "FR"), "")

with self.assertRaises(phonenumbers.NumberParseException) as err:
Expand Down
4 changes: 2 additions & 2 deletions commown_shipping/models/colissimo_utils.py
Original file line number Diff line number Diff line change
Expand Up @@ -40,8 +40,8 @@ def delivery_data(partner, raise_on_error=True):

country = partner.country_id.code or "FR"

mobile = normalize_phone(partner.mobile, country, raise_on_error)
fixed = normalize_phone(partner.phone, country, raise_on_error)
mobile = normalize_phone(partner.mobile, country, "national", raise_on_error)
fixed = normalize_phone(partner.phone, country, "national", raise_on_error)

if not mobile and fixed:
fixed_obj = phonenumbers.parse(partner.phone, partner.country_id.code)
Expand Down

0 comments on commit 7dd94b1

Please sign in to comment.