Beispiel #1
0
def test_address_form_for_country(country):
    data = {
        'first_name': 'John',
        'last_name': 'Doe',
        'country': country}
    form = forms.AddressForm(data)
    errors = form.errors
    required = i18naddress.validate_areas(country)[0]
    if 'street_address' in required:
        assert 'street_address_1' in errors
    else:
        assert 'street_address_1' not in errors
    if 'city' in required:
        assert 'city' in errors
    else:
        assert 'city' not in errors
    if 'city_area' in required:
        assert 'city_area' in errors
    else:
        assert 'city_area' not in errors
    if 'country_area' in required:
        assert 'country_area' in errors
    else:
        assert 'country_area' not in errors
    if 'postal_code' in required:
        assert 'postal_code' in errors
    else:
        assert 'postal_code' not in errors
Beispiel #2
0
def test_address_form_for_country(country):
    data = {'first_name': 'John', 'last_name': 'Doe', 'country': country}
    form = forms.AddressForm(data)
    errors = form.errors
    required = i18naddress.validate_areas(country)[0]
    if 'street_address' in required:
        assert 'street_address_1' in errors
    else:
        assert 'street_address_1' not in errors
    if 'city' in required:
        assert 'city' in errors
    else:
        assert 'city' not in errors
    if 'city_area' in required:
        assert 'city_area' in errors
    else:
        assert 'city_area' not in errors
    if 'country_area' in required:
        assert 'country_area' in errors
    else:
        assert 'country_area' not in errors
    if 'postal_code' in required:
        assert 'postal_code' in errors
    else:
        assert 'postal_code' not in errors
def test_validation_data():
    validation_data = validate_areas(
        country_code='PL', country_area='D', city='WRO', city_area='AS')[1]
    assert validation_data == ValidationData(
        require=[], postal_code_regexp=re.compile('53-\\d{3}'), postal_code_example=None,
        country_area_keys=['D'], country_area_choices=[('D', 'Lower Silesian')],
        city_keys=['WRO'], city_choices=[('WRO', 'Wroclaw')],
        city_area_keys=['AS', 'OS'], city_area_choices=[
            ('AS', 'Altstadt'), ('OS', 'Oder Stadtteil')])
Beispiel #4
0
def test_validation_data():
    validation_data = validate_areas(country_code='PL',
                                     country_area='D',
                                     city='WRO',
                                     city_area='AS')[1]
    assert validation_data == ValidationData(
        require=[],
        postal_code_regexp=re.compile('53-\\d{3}', re.IGNORECASE),
        postal_code_example=None,
        country_area_keys=['D'],
        country_area_choices=[('D', 'Lower Silesian')],
        city_keys=['WRO'],
        city_choices=[('WRO', 'Wroclaw')],
        city_area_keys=['AS', 'OS'],
        city_area_choices=[('AS', 'Altstadt'), ('OS', 'Oder Stadtteil')])
Beispiel #5
0
    def validate_areas(self, country_code, country_area, city, city_area,
                       postal_code, street_address):
        error_messages = defaultdict(lambda: _('Invalid value'),
                                     self.fields['country'].error_messages)
        errors, validation_data = validate_areas(country_code, country_area,
                                                 city, city_area, postal_code,
                                                 street_address)

        if 'country' in errors:
            self.add_error(
                'country',
                _('%s is not supported country code.') % country_code)
        if 'street_address' in errors:
            error = error_messages[errors['street_address']] % {
                'value': street_address
            }
            self.add_error('street_address_1', error)
        if 'city' in errors:
            error = error_messages[errors['city']] % {'value': city}
            self.add_error('city', error)
        if 'city_area' in errors:
            error = error_messages[errors['city_area']] % {'value': city_area}
            self.add_error('city_area', error)
        if 'country_area' in errors:
            error = error_messages[errors['country_area']] % {
                'value': country_area
            }
            self.add_error('country_area', error)
        if 'postal_code' in errors:
            if errors['postal_code'] == 'invalid':
                postal_code_example = validation_data.postal_code_example
                if postal_code_example:
                    error = _('Invalid postal code. Ex. %(example)s') % {
                        'example': postal_code_example
                    }
                else:
                    error = _('Invalid postal code.')
            else:
                error = error_messages[errors['postal_code']] % {
                    'value': postal_code
                }
            self.add_error('postal_code', error)
Beispiel #6
0
    def validate_areas(self,
                       city, city_area, postal_code, street_address, office, to_office):
        error_messages = defaultdict(
            lambda: _('Invalid value'), self.fields['city'].error_messages)
        errors, validation_data = validate_areas(
            str(self.instance.country), None, city.name,
            city_area, postal_code, street_address)

        # if 'country' in errors:
        #     self.add_error('country', _(
        #         '%s is not supported country code.') % self.instance.country)
        if 'street_address' in errors:
            error = error_messages[errors['street_address']] % {
                'value': street_address}
            self.add_error('street_address_1', error)
        if 'city' in errors and errors['city'] == 'required':
            error = error_messages[errors['city']] % {
                'value': city}
            self.add_error('city', error)
        if 'city_area' in errors and errors['city_area'] == 'required':
            error = error_messages[errors['city_area']] % {
                'value': city_area}
            self.add_error('city_area', error)
        if 'postal_code' in errors:
            if errors['postal_code'] == 'invalid':
                example = validation_data.postal_code_example
                if example:
                    example = example.replace(',', ', ')
                    error = _(
                        'Invalid postal code. Please follow the format: %(example)s') % {
                                'example': example}
                else:
                    error = _('Invalid postal code.')
            else:
                error = error_messages[errors['postal_code']] % {
                    'value': postal_code}
            self.add_error('postal_code', error)
        if to_office and not office:
            self.add_error('office', 'Invalid office')
        elif not to_office and not street_address:
            self.add_error('street_address_1', 'Invalid address')
Beispiel #7
0
    def validate_areas(self, country_code, country_area,
                       city, city_area, postal_code, street_address):
        error_messages = defaultdict(
            lambda: _('Invalid value'), self.fields['country'].error_messages)
        errors, validation_data = validate_areas(
            country_code, country_area, city,
            city_area, postal_code, street_address)

        if 'country' in errors:
            self.add_error('country', _(
                '%s is not supported country code.') % country_code)
        if 'street_address' in errors:
            error = error_messages[errors['street_address']] % {
                'value': street_address}
            self.add_error('street_address_1', error)
        if 'city' in errors and errors['city'] == 'required':
            error = error_messages[errors['city']] % {
                'value': city}
            self.add_error('city', error)
        if 'city_area' in errors and errors['city_area'] == 'required':
            error = error_messages[errors['city_area']] % {
                'value': city_area}
            self.add_error('city_area', error)
        if 'country_area' in errors and errors['country_area'] == 'required':
            error = error_messages[errors['country_area']] % {
                'value': country_area}
            self.add_error('country_area', error)
        if 'postal_code' in errors:
            if errors['postal_code'] == 'invalid':
                example = validation_data.postal_code_example
                if example:
                    example = example.replace(',', ', ')
                    error = _(
                        'Invalid postal code. Please follow the format: %(example)s') % {
                            'example': example}
                else:
                    error = _('Invalid postal code.')
            else:
                error = error_messages[errors['postal_code']] % {
                    'value': postal_code}
            self.add_error('postal_code', error)
Beispiel #8
0
def test_validate_areas_errors(kwargs, errors):
    assert validate_areas(**kwargs)[0] == errors
def test_validate_known_addresses(kwargs):
    assert validate_areas(**kwargs)[0] == {}
def test_validate_areas_errors(kwargs, errors):
    assert validate_areas(**kwargs)[0] == errors