File tree Expand file tree Collapse file tree 2 files changed +15
-3
lines changed Expand file tree Collapse file tree 2 files changed +15
-3
lines changed Original file line number Diff line number Diff line change 1
1
from netaddr import IPAddress , IPNetwork , EUI
2
+ from netaddr .core import AddrFormatError
2
3
3
4
from django .db import models
5
+ from django .core .exceptions import ValidationError
4
6
5
7
from netfields .managers import NET_OPERATORS , NET_TEXT_OPERATORS
6
8
from netfields .forms import InetAddressFormField , CidrAddressFormField , MACAddressFormField
@@ -18,7 +20,10 @@ def to_python(self, value):
18
20
if not value :
19
21
return value
20
22
21
- return self .python_type ()(value )
23
+ try :
24
+ return self .python_type ()(value )
25
+ except AddrFormatError as e :
26
+ raise ValidationError (e )
22
27
23
28
def get_prep_lookup (self , lookup_type , value ):
24
29
if not value :
@@ -99,7 +104,10 @@ def to_python(self, value):
99
104
if not value :
100
105
return value
101
106
102
- return EUI (value , dialect = mac_unix_common )
107
+ try :
108
+ return EUI (value , dialect = mac_unix_common )
109
+ except AddrFormatError as e :
110
+ raise ValidationError (e )
103
111
104
112
def get_prep_value (self , value ):
105
113
if not value :
Original file line number Diff line number Diff line change
1
+ from django .core .exceptions import ValidationError
1
2
from netaddr import IPAddress , IPNetwork , EUI , AddrFormatError
2
3
3
4
from django import VERSION
@@ -74,7 +75,7 @@ def test_save_object(self):
74
75
self .model (field = self .value1 ).save ()
75
76
76
77
def test_init_with_text_fails (self ):
77
- self .assertRaises (AddrFormatError , self .model , field = 'abc' )
78
+ self .assertRaises (ValidationError , self .model , field = 'abc' )
78
79
79
80
def test_iexact_lookup (self ):
80
81
self .assertSqlEquals (self .qs .filter (field__iexact = self .value1 ),
@@ -387,6 +388,9 @@ def test_save_none(self):
387
388
def test_save_nothing_fails (self ):
388
389
self .model ().save ()
389
390
391
+ def test_invalid_fails (self ):
392
+ self .assertRaises (ValidationError , self .model (field = 'foobar' ).save )
393
+
390
394
391
395
class MacAddressTestModelForm (ModelForm ):
392
396
class Meta :
You can’t perform that action at this time.
0 commit comments