File tree Expand file tree Collapse file tree 5 files changed +33
-9
lines changed Expand file tree Collapse file tree 5 files changed +33
-9
lines changed Original file line number Diff line number Diff line change @@ -194,7 +194,7 @@ def to_python(self, value):
194
194
return value
195
195
196
196
try :
197
- return EUI (value , dialect = mac_unix_common )
197
+ return EUI (value , version = 48 , dialect = mac_unix_common )
198
198
except (AddrFormatError , IndexError , TypeError ) as e :
199
199
raise ValidationError (e )
200
200
@@ -240,7 +240,12 @@ def to_python(self, value):
240
240
return value
241
241
242
242
try :
243
- return EUI (value , dialect = mac_eui64 )
243
+ mac = EUI (value , dialect = mac_eui64 )
244
+ if mac .version == 64 :
245
+ return mac
246
+ mac = mac .eui64 ()
247
+ mac .dialect = mac_eui64
248
+ return mac
244
249
except (AddrFormatError , IndexError , TypeError ) as e :
245
250
raise ValidationError (e )
246
251
Original file line number Diff line number Diff line change @@ -107,7 +107,7 @@ def to_python(self, value):
107
107
value = value .strip ()
108
108
109
109
try :
110
- return EUI (value , dialect = mac_unix_common )
110
+ return EUI (value , version = 48 , dialect = mac_unix_common )
111
111
except (AddrFormatError , IndexError , TypeError ):
112
112
raise ValidationError (self .error_messages ['invalid' ])
113
113
@@ -136,7 +136,12 @@ def to_python(self, value):
136
136
value = value .strip ()
137
137
138
138
try :
139
- return EUI (value , dialect = mac_eui64 )
139
+ mac = EUI (value , dialect = mac_eui64 )
140
+ if mac .version == 64 :
141
+ return mac
142
+ mac = mac .eui64 ()
143
+ mac .dialect = mac_eui64
144
+ return mac
140
145
except (AddrFormatError , IndexError , TypeError ):
141
146
raise ValidationError (self .error_messages ['invalid' ])
142
147
Original file line number Diff line number Diff line change @@ -73,7 +73,7 @@ def to_internal_value(self, data):
73
73
if data is None :
74
74
return data
75
75
try :
76
- return EUI (data , dialect = mac_unix_common )
76
+ return EUI (data , version = 48 , dialect = mac_unix_common )
77
77
except (AddrFormatError , IndexError , TypeError ):
78
78
self .fail ('invalid' )
79
79
@@ -92,7 +92,12 @@ def to_internal_value(self, data):
92
92
if data is None :
93
93
return data
94
94
try :
95
- return EUI (data , dialect = mac_eui64 )
95
+ mac = EUI (data , dialect = mac_eui64 )
96
+ if mac .version == 64 :
97
+ return mac
98
+ mac = mac .eui64 ()
99
+ mac .dialect = mac_eui64
100
+ return mac
96
101
except (AddrFormatError , IndexError , TypeError ):
97
102
self .fail ('invalid' )
98
103
Original file line number Diff line number Diff line change @@ -225,6 +225,10 @@ def test_strip(self):
225
225
self .assertTrue (form .is_valid ())
226
226
self .assertEqual (form .cleaned_data ['field' ], self .mac )
227
227
228
+ def test_eui64 (self ):
229
+ form = MacAddressTestModelForm ({'field' : '00-AA-2B-C3-DD-44-EE-55' })
230
+ self .assertFalse (form .is_valid ())
231
+
228
232
def test_invalid (self ):
229
233
form = MacAddressTestModelForm ({'field' : 'notvalid' })
230
234
self .assertFalse (form .is_valid ())
@@ -275,6 +279,11 @@ def test_strip(self):
275
279
self .assertTrue (form .is_valid ())
276
280
self .assertEqual (form .cleaned_data ['field' ], self .mac )
277
281
282
+ def test_eui48 (self ):
283
+ form = MacAddress8TestModelForm ({'field' : '00:aa:2b:c3:dd:44' })
284
+ self .assertTrue (form .is_valid ())
285
+ self .assertEqual (form .cleaned_data ['field' ], EUI ('00:aa:2b:ff:fe:c3:dd:44' , dialect = mac_eui64 ))
286
+
278
287
def test_invalid (self ):
279
288
form = MacAddress8TestModelForm ({'field' : 'notvalid' })
280
289
self .assertFalse (form .is_valid ())
Original file line number Diff line number Diff line change @@ -253,15 +253,15 @@ def test_read_me_example(self):
253
253
254
254
class TestMacFieldFunctions (TestCase ):
255
255
def setUp (self ):
256
- MACTestModel .objects .create (field = 'aa :bb:cc:dd:ee:ff' )
256
+ MACTestModel .objects .create (field = '88 :bb:cc:dd:ee:ff' )
257
257
258
258
def test_trunc (self ):
259
259
qs = MACTestModel .objects .annotate (trunc = Trunc (F ('field' )))
260
- self .assertEqual (qs [0 ].trunc , EUI ('aa :bb:cc:00:00:00' ))
260
+ self .assertEqual (qs [0 ].trunc , EUI ('88 :bb:cc:00:00:00' ))
261
261
262
262
def test_macaddr8_to7bit (self ):
263
263
qs = MACTestModel .objects .annotate (eui64 = Macaddr8Set7bit (F ('field' )))
264
- self .assertEqual (qs [0 ].eui64 , EUI ('aa :bb:cc:ff:fe:dd:ee:ff' ))
264
+ self .assertEqual (qs [0 ].eui64 , EUI ('8a :bb:cc:ff:fe:dd:ee:ff' ))
265
265
266
266
267
267
class TestMac8FieldFunctions (TestCase ):
You can’t perform that action at this time.
0 commit comments