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):
194194 return value
195195
196196 try :
197- return EUI (value , dialect = mac_unix_common )
197+ return EUI (value , version = 48 , dialect = mac_unix_common )
198198 except (AddrFormatError , IndexError , TypeError ) as e :
199199 raise ValidationError (e )
200200
@@ -240,7 +240,12 @@ def to_python(self, value):
240240 return value
241241
242242 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
244249 except (AddrFormatError , IndexError , TypeError ) as e :
245250 raise ValidationError (e )
246251
Original file line number Diff line number Diff line change @@ -107,7 +107,7 @@ def to_python(self, value):
107107 value = value .strip ()
108108
109109 try :
110- return EUI (value , dialect = mac_unix_common )
110+ return EUI (value , version = 48 , dialect = mac_unix_common )
111111 except (AddrFormatError , IndexError , TypeError ):
112112 raise ValidationError (self .error_messages ['invalid' ])
113113
@@ -136,7 +136,12 @@ def to_python(self, value):
136136 value = value .strip ()
137137
138138 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
140145 except (AddrFormatError , IndexError , TypeError ):
141146 raise ValidationError (self .error_messages ['invalid' ])
142147
Original file line number Diff line number Diff line change @@ -73,7 +73,7 @@ def to_internal_value(self, data):
7373 if data is None :
7474 return data
7575 try :
76- return EUI (data , dialect = mac_unix_common )
76+ return EUI (data , version = 48 , dialect = mac_unix_common )
7777 except (AddrFormatError , IndexError , TypeError ):
7878 self .fail ('invalid' )
7979
@@ -92,7 +92,12 @@ def to_internal_value(self, data):
9292 if data is None :
9393 return data
9494 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
96101 except (AddrFormatError , IndexError , TypeError ):
97102 self .fail ('invalid' )
98103
Original file line number Diff line number Diff line change @@ -225,6 +225,10 @@ def test_strip(self):
225225 self .assertTrue (form .is_valid ())
226226 self .assertEqual (form .cleaned_data ['field' ], self .mac )
227227
228+ def test_eui64 (self ):
229+ form = MacAddressTestModelForm ({'field' : '00-AA-2B-C3-DD-44-EE-55' })
230+ self .assertFalse (form .is_valid ())
231+
228232 def test_invalid (self ):
229233 form = MacAddressTestModelForm ({'field' : 'notvalid' })
230234 self .assertFalse (form .is_valid ())
@@ -275,6 +279,11 @@ def test_strip(self):
275279 self .assertTrue (form .is_valid ())
276280 self .assertEqual (form .cleaned_data ['field' ], self .mac )
277281
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+
278287 def test_invalid (self ):
279288 form = MacAddress8TestModelForm ({'field' : 'notvalid' })
280289 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):
253253
254254class TestMacFieldFunctions (TestCase ):
255255 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' )
257257
258258 def test_trunc (self ):
259259 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' ))
261261
262262 def test_macaddr8_to7bit (self ):
263263 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' ))
265265
266266
267267class TestMac8FieldFunctions (TestCase ):
You can’t perform that action at this time.
0 commit comments