Example #1
0
class NetworkForm(Form):
    choices = [
        ('dhcp', _('DHCP')),
        ('static', _('Static')),
    ]
    type = ChoiceField(choices=choices, widget=RadioSelect)
    ip = IPAddressField()
    dns = IPAddressField()
    netmask = IPAddressField()
    gateway = IPAddressField()

    def __init__(self, *args, **kwargs):
        super(NetworkForm, self).__init__(*args, **kwargs)
        type, ip, dns, netmask, gateway = read()
        self.fields['type'].initial = type

    def save(self):
        if self.cleaned_data['type'] == 'static':
            set_static(
                self.cleaned_data['ip'],
                self.cleaned_data['dns'],
                self.cleaned_data['netmask'],
                self.cleaned_data['gateway'],
            )
        else:
            set_dhcp()
Example #2
0
    def test_ipaddress(self):
        with warnings.catch_warnings(record=True):
            warnings.simplefilter("always")
            f = IPAddressField()
        self.assertFormErrors(['This field is required.'], f.clean, '')
        self.assertFormErrors(['This field is required.'], f.clean, None)
        self.assertEqual(f.clean(' 127.0.0.1'), '127.0.0.1')
        self.assertFormErrors(['Enter a valid IPv4 address.'], f.clean, 'foo')
        self.assertFormErrors(['Enter a valid IPv4 address.'], f.clean,
                              '127.0.0.')
        self.assertFormErrors(['Enter a valid IPv4 address.'], f.clean,
                              '1.2.3.4.5')
        self.assertFormErrors(['Enter a valid IPv4 address.'], f.clean,
                              '256.125.1.5')

        with warnings.catch_warnings(record=True):
            warnings.simplefilter("always")
            f = IPAddressField(required=False)
        self.assertEqual(f.clean(''), '')
        self.assertEqual(f.clean(None), '')
        self.assertEqual(f.clean(' 127.0.0.1'), '127.0.0.1')
        self.assertFormErrors(['Enter a valid IPv4 address.'], f.clean, 'foo')
        self.assertFormErrors(['Enter a valid IPv4 address.'], f.clean,
                              '127.0.0.')
        self.assertFormErrors(['Enter a valid IPv4 address.'], f.clean,
                              '1.2.3.4.5')
        self.assertFormErrors(['Enter a valid IPv4 address.'], f.clean,
                              '256.125.1.5')
Example #3
0
class ApiKeyForm(ModelForm):
    """
    Generate a random API key if one isn't provided.
    """
    class Meta:
        model = ApiKey

    key = CharField(
        max_length=KEY_SIZE,
        required=False,
        help_text=u'If not provided, a random key will be generated.')

    logged_ip = IPAddressField(required=False)

    def clean(self):
        apikey = self.cleaned_data.get('key') or ''
        if not apikey:
            # 'key' is required, but we want to allow generating it
            # server-side.  so we remove its errors if it's not
            # provided.  Note that we can't just define
            # self.clean_key() because that's never called if the key
            # isn't provided.
            self._errors.pop('key', None)
            apikey = generate_unique_api_key()
            self.cleaned_data['key'] = apikey
            if hasattr(self, 'clean_key'):
                # NOW we can call this...
                self.cleaned_data['key'] = self.clean_key()

        # For logged IP, convert blank to NULL
        self.cleaned_data['logged_ip'] = self.cleaned_data.get(
            'logged_ip') or None
        return self.cleaned_data
Example #4
0
 def test_ipaddressfield(self):
     e = {
         'required': 'REQUIRED',
         'invalid': 'INVALID IP ADDRESS',
     }
     f = IPAddressField(error_messages=e)
     self.assertFormErrors(['REQUIRED'], f.clean, '')
     self.assertFormErrors(['INVALID IP ADDRESS'], f.clean, '127.0.0')
Example #5
0
 def test_ipaddressfield(self):
     e = {
         'required': 'REQUIRED',
         'invalid': 'INVALID IP ADDRESS',
     }
     with warnings.catch_warnings(record=True):
         warnings.simplefilter("always")
         f = IPAddressField(error_messages=e)
     self.assertFormErrors(['REQUIRED'], f.clean, '')
     self.assertFormErrors(['INVALID IP ADDRESS'], f.clean, '127.0.0')
Example #6
0
class AllFieldTypesForm(Form):
    char = CharField()
    int_ = IntegerField()
    date = DateField()
    time = TimeField()
    datetime_ = DateTimeField()
    regex = RegexField(regex='^[a-f]{3}$')
    email = EmailField()
    file = FileField()
    # image = ImageField()
    url = URLField()
    bool = BooleanField()
    nullbool = NullBooleanField()
    choice = ChoiceField(choices=(('test choice', 'yay test choice'), ))
    multichoice = MultipleChoiceField(choices=(
        ('test choice', 'yay test choice'),
        ('test choice 2', 'yay another choice'),
        ('test choice 3', 'yay test choice'),
    ))
    float = FloatField()
    decimal = DecimalField()
    ip = IPAddressField()
    generic_ip = GenericIPAddressField()
    filepath = FilePathField(path=tempfile.gettempdir(),
                             allow_files=True,
                             allow_folders=True)
    slug = SlugField()
    typed_choice = TypedChoiceField(choices=(
        (1, 'test'),
        (2, 'test 2'),
        (3, 'bah'),
    ),
                                    coerce=int)
    typed_multichoice = TypedMultipleChoiceField(choices=(
        (1, 'test'),
        (2, 'test 2'),
        (3, 'bah'),
    ),
                                                 coerce=int)
    model_choice = ModelChoiceField(queryset=get_user_model().objects.all())
    model_multichoice = ModelMultipleChoiceField(
        queryset=get_user_model().objects.all())
Example #7
0
class ApiKeyForm(ModelForm):
    """
    Generate a random API key if one isn't provided.
    """
    class Meta:
        model = ApiKey

    key = CharField(
        max_length=KEY_SIZE,
        required=False,
        help_text=u'If not provided, a random key will be generated.')

    logged_ip = IPAddressField(required=False)

    def clean(self):
        profile = self.cleaned_data.get('user').user.get_profile()
        if self.instance.pk is None:
            # We're creating a new instance
            if not profile.can_make_api_key():
                raise ValidationError("User already has max number of keys")

        apikey = self.cleaned_data.get('key') or ''

        if not apikey:
            # 'key' is required, but we want to allow generating it server-side.
            # so we remove its errors if it's not provided.
            # Note that we can't just define self.clean_key() because that's never
            # called if the key isn't provided.
            self._errors.pop('key', None)
            apikey = generate_unique_api_key()
            self.cleaned_data['key'] = apikey
            if hasattr(self, 'clean_key'):
                # NOW we can call this...
                self.cleaned_data['key'] = self.clean_key()

        # For logged IP, convert blank to NULL
        self.cleaned_data['logged_ip'] = self.cleaned_data.get(
            'logged_ip') or None
        return self.cleaned_data
Example #8
0
    def test_ipaddress(self):
        f = IPAddressField()
        self.assertFormErrors(['This field is required.'], f.clean, '')
        self.assertFormErrors(['This field is required.'], f.clean, None)
        self.assertEqual(f.clean(' 127.0.0.1'), '127.0.0.1')
        self.assertFormErrors(['Enter a valid IPv4 address.'], f.clean, 'foo')
        self.assertFormErrors(['Enter a valid IPv4 address.'], f.clean,
                              '127.0.0.')
        self.assertFormErrors(['Enter a valid IPv4 address.'], f.clean,
                              '1.2.3.4.5')
        self.assertFormErrors(['Enter a valid IPv4 address.'], f.clean,
                              '256.125.1.5')

        f = IPAddressField(required=False)
        self.assertEqual(f.clean(''), '')
        self.assertEqual(f.clean(None), '')
        self.assertEqual(f.clean(' 127.0.0.1'), '127.0.0.1')
        self.assertFormErrors(['Enter a valid IPv4 address.'], f.clean, 'foo')
        self.assertFormErrors(['Enter a valid IPv4 address.'], f.clean,
                              '127.0.0.')
        self.assertFormErrors(['Enter a valid IPv4 address.'], f.clean,
                              '1.2.3.4.5')
        self.assertFormErrors(['Enter a valid IPv4 address.'], f.clean,
                              '256.125.1.5')
    def test_ipaddress(self):
        f = IPAddressField()
        self.assertFormErrors(['This field is required.'], f.clean, '')
        self.assertFormErrors(['This field is required.'], f.clean, None)
        self.assertEqual(f.clean(' 127.0.0.1'), '127.0.0.1')
        self.assertFormErrors(['Enter a valid IPv4 address.'], f.clean, 'foo')
        self.assertFormErrors(['Enter a valid IPv4 address.'], f.clean, '127.0.0.')
        self.assertFormErrors(['Enter a valid IPv4 address.'], f.clean, '1.2.3.4.5')
        self.assertFormErrors(['Enter a valid IPv4 address.'], f.clean, '256.125.1.5')

        f = IPAddressField(required=False)
        self.assertEqual(f.clean(''), '')
        self.assertEqual(f.clean(None), '')
        self.assertEqual(f.clean(' 127.0.0.1'), '127.0.0.1')
        self.assertFormErrors(['Enter a valid IPv4 address.'], f.clean, 'foo')
        self.assertFormErrors(['Enter a valid IPv4 address.'], f.clean, '127.0.0.')
        self.assertFormErrors(['Enter a valid IPv4 address.'], f.clean, '1.2.3.4.5')
        self.assertFormErrors(['Enter a valid IPv4 address.'], f.clean, '256.125.1.5')
Example #10
0
    def test_ipaddress(self):
        with warnings.catch_warnings(record=True):
            warnings.simplefilter("always")
            f = IPAddressField()
        self.assertFormErrors(['This field is required.'], f.clean, '')
        self.assertFormErrors(['This field is required.'], f.clean, None)
        self.assertEqual(f.clean(' 127.0.0.1'), '127.0.0.1')
        self.assertFormErrors(['Enter a valid IPv4 address.'], f.clean, 'foo')
        self.assertFormErrors(['Enter a valid IPv4 address.'], f.clean, '127.0.0.')
        self.assertFormErrors(['Enter a valid IPv4 address.'], f.clean, '1.2.3.4.5')
        self.assertFormErrors(['Enter a valid IPv4 address.'], f.clean, '256.125.1.5')

        with warnings.catch_warnings(record=True):
            warnings.simplefilter("always")
            f = IPAddressField(required=False)
        self.assertEqual(f.clean(''), '')
        self.assertEqual(f.clean(None), '')
        self.assertEqual(f.clean(' 127.0.0.1'), '127.0.0.1')
        self.assertFormErrors(['Enter a valid IPv4 address.'], f.clean, 'foo')
        self.assertFormErrors(['Enter a valid IPv4 address.'], f.clean, '127.0.0.')
        self.assertFormErrors(['Enter a valid IPv4 address.'], f.clean, '1.2.3.4.5')
        self.assertFormErrors(['Enter a valid IPv4 address.'], f.clean, '256.125.1.5')