Projet

Général

Profil

0009-qommon-misc-add-local-phone-number-representation-ut.patch

Paul Marillonnet, 02 novembre 2022 10:45

Télécharger (2,3 ko)

Voir les différences:

Subject: [PATCH 09/13] qommon/misc: add local phone number representation
 utility (#69838)

 tests/test_misc.py |  7 +++++++
 wcs/qommon/misc.py | 18 +++++++++++++++++-
 2 files changed, 24 insertions(+), 1 deletion(-)
tests/test_misc.py
30 30
    parse_isotime,
31 31
    simplify,
32 32
    try_e164_format,
33
    try_local_number,
33 34
    validate_phone_fr,
34 35
)
35 36
from wcs.scripts import Script
......
653 654
    assert try_e164_format('0123456789') == '+33123456789'
654 655
    assert try_e164_format('+33123456789') == '+33123456789'
655 656
    assert try_e164_format('1234559') == '1234559'
657

  
658

  
659
def test_try_local_number():
660
    assert try_local_number('+33123456789') == '01 23 45 67 89'
661
    assert try_local_number('+590690000102') == '0690 00 01 02'
662
    assert try_local_number('+32123456789') == '+32123456789'
wcs/qommon/misc.py
1252 1252

  
1253 1253

  
1254 1254
def try_e164_format(phone):
1255
    return try_phone_format(phone, number_format='international')
1256

  
1257

  
1258
def try_local_number(phone):
1259
    return try_phone_format(phone, number_format='local')
1260

  
1261

  
1262
def try_phone_format(phone, number_format=None):
1255 1263
    default_country_code = settings.DEFAULT_COUNTRY_CODE
1256 1264
    pn = None
1265

  
1266
    if number_format == 'local':
1267
        pn_format = phonenumbers.PhoneNumberFormat.NATIONAL
1268
    elif number_format == 'international':
1269
        pn_format = phonenumbers.PhoneNumberFormat.E164
1270
    else:
1271
        return phone
1272

  
1257 1273
    try:
1258 1274
        pn = phonenumbers.parse(phone)
1259 1275
    except phonenumbers.NumberParseException:
......
1262 1278
        except phonenumbers.NumberParseException:
1263 1279
            return phone
1264 1280
    if phonenumbers.is_valid_number(pn):
1265
        return phonenumbers.format_number(pn, phonenumbers.PhoneNumberFormat.E164)
1281
        return phonenumbers.format_number(pn, pn_format)
1266 1282
    else:
1267 1283
        return phone
1268
-