Ejemplo n.º 1
0
 def test_invalid_phone_numbers(self, invalid_phone_numbers):
     for raw_number in invalid_phone_numbers:
         try:
             number = PhoneNumber(raw_number, "FI")
             assert not number.is_valid_number()
         except:
             pass
Ejemplo n.º 2
0
 def test_invalid_phone_numbers(self):
     for raw_number in self.invalid_phone_numbers:
         try:
             number = PhoneNumber(raw_number, 'FI')
             assert not number.is_valid_number()
         except:
             pass
Ejemplo n.º 3
0
 def test_invalid_phone_numbers(self):
     for raw_number in self.invalid_phone_numbers:
         try:
             number = PhoneNumber(raw_number, 'FI')
             assert not number.is_valid_number()
         except:
             pass
Ejemplo n.º 4
0
class PhoneNumberField(StringField):
    """
    A string field representing a PhoneNumber object from
    `SQLAlchemy-Utils`_.

    .. _SQLAlchemy-Utils:
       https://github.com/kvesteri/sqlalchemy-utils

    :param region:
        Country code of the phone number.
    :param display_format:
        The format in which the phone number is displayed.
    """
    widget = TelInput()
    error_msg = u'Not a valid phone number value'

    def __init__(
        self,
        label=None,
        validators=None,
        region='US',
        display_format='national',
        **kwargs
    ):
        super(PhoneNumberField, self).__init__(label, validators, **kwargs)
        self.region = region
        self.display_format = display_format

    def _value(self):
        # self.data holds a PhoneNumber object if the form is valid,
        # otherwise it will contain a string.
        if self.data:
            try:
                return getattr(self.data, self.display_format)
            except AttributeError:
                return self.data
        else:
            return u''

    def process_formdata(self, valuelist):
        import phonenumbers

        if valuelist:
            if valuelist[0] == u'':
                self.data = None
            else:
                self.data = valuelist[0]
                try:
                    self.data = PhoneNumber(
                        valuelist[0],
                        self.region
                    )
                    if not self.data.is_valid_number():
                        raise ValueError(self.gettext(self.error_msg))
                except phonenumbers.phonenumberutil.NumberParseException:
                    raise ValueError(self.gettext(self.error_msg))
Ejemplo n.º 5
0
class PhoneNumberField(StringField):
    """
    A string field representing a PhoneNumber object from
    `SQLAlchemy-Utils`_.

    .. _SQLAlchemy-Utils:
       https://github.com/kvesteri/sqlalchemy-utils

    :param country_code:
        Country code of the phone number.
    :param display_format:
        The format in which the phone number is displayed.
    """
    widget = TelInput()
    error_msg = u'Not a valid phone number value'

    def __init__(self,
                 label=None,
                 validators=None,
                 country_code='US',
                 display_format='national',
                 **kwargs):
        super(PhoneNumberField, self).__init__(label, validators, **kwargs)
        self.country_code = country_code
        self.display_format = display_format

    def _value(self):
        # self.data holds a PhoneNumber object, use it before falling back
        # to self.rawdata which holds a string
        if self.data:
            return getattr(self.data, self.display_format)
        elif self.raw_data:
            return self.raw_data[0]
        else:
            return u''

    def process_formdata(self, valuelist):
        import phonenumbers

        if valuelist:
            if valuelist[0] == u'':
                self.data = None
            else:
                try:
                    self.data = PhoneNumber(valuelist[0], self.country_code)
                    if not self.data.is_valid_number():
                        self.data = None
                        raise ValueError(self.gettext(self.error_msg))
                except phonenumbers.phonenumberutil.NumberParseException:
                    self.data = None
                    raise ValueError(self.gettext(self.error_msg))
class PhoneNumberField(StringField):
    """
    A string field representing a PhoneNumber object from
    `SQLAlchemy-Utils`_.

    .. _SQLAlchemy-Utils:
       https://github.com/kvesteri/sqlalchemy-utils

    :param country_code:
        Country code of the phone number.
    :param display_format:
        The format in which the phone number is displayed.
    """
    widget = TelInput()
    error_msg = u'Not a valid phone number value'

    def __init__(self, label=None, validators=None, country_code='US',
                 display_format='national',
                 **kwargs):
        super(PhoneNumberField, self).__init__(label, validators, **kwargs)
        self.country_code = country_code
        self.display_format = display_format

    def _value(self):
        # self.data holds a PhoneNumber object, use it before falling back
        # to self.rawdata which holds a string
        if self.data:
            return getattr(self.data, self.display_format)
        elif self.raw_data:
            return self.raw_data[0]
        else:
            return u''

    def process_formdata(self, valuelist):
        import phonenumbers

        if valuelist:
            if valuelist[0] == u'':
                self.data = None
            else:
                try:
                    self.data = PhoneNumber(
                        valuelist[0],
                        self.country_code
                    )
                    if not self.data.is_valid_number():
                        self.data = None
                        raise ValueError(self.gettext(self.error_msg))
                except phonenumbers.phonenumberutil.NumberParseException:
                    self.data = None
                    raise ValueError(self.gettext(self.error_msg))
Ejemplo n.º 7
0
 def test_valid_phone_numbers(self, valid_phone_numbers):
     for raw_number in valid_phone_numbers:
         number = PhoneNumber(raw_number, "FI")
         assert number.is_valid_number()
Ejemplo n.º 8
0
 def test_valid_phone_numbers(self):
     for raw_number in self.valid_phone_numbers:
         number = PhoneNumber(raw_number, 'FI')
         assert number.is_valid_number()
Ejemplo n.º 9
0
 def test_invalid_phone_numbers__is_valid_number(self, raw_number):
     number = PhoneNumber(raw_number, 'FI')
     assert not number.is_valid_number()
Ejemplo n.º 10
0
 def test_valid_phone_numbers(self):
     for raw_number in self.valid_phone_numbers:
         number = PhoneNumber(raw_number, 'FI')
         assert number.is_valid_number()
Ejemplo n.º 11
0
 def _deserialize(self, value: str, attr, data):
     phone = PhoneNumber(value)
     if not phone.is_valid_number():
         raise ValueError('The phone number is invalid.')
     return phone
 def test_invalid_phone_numbers__is_valid_number(self, raw_number):
     number = PhoneNumber(raw_number, 'FI')
     assert not number.is_valid_number()