papi: enhance MACAddress() equality 82/23382/3
authorPaul Vinciguerra <pvinci@vinciconsulting.com>
Tue, 12 Nov 2019 17:11:00 +0000 (12:11 -0500)
committerOle Trøan <otroan@employees.org>
Wed, 13 Nov 2019 09:43:04 +0000 (09:43 +0000)
Allows for comparison without needing str(MACAddress())

 Traceback (most recent call last):
  File "/vpp/test/test_ip6.py", line 1074, in test_icmpv6_echo
    self.assertEqual(ether.dst, self.pg0.remote_mac)
 AssertionError: '02:01:00:00:ff:02' != MACAddress(02:01:00:00:ff:02)

Type: feature

Change-Id: Ife1cbfc74d477695d15b33a19da7dd2fa241a348
Signed-off-by: Paul Vinciguerra <pvinci@vinciconsulting.com>
src/vpp-api/python/vpp_papi/macaddress.py

index 02c90db..c3b10a3 100644 (file)
@@ -54,8 +54,14 @@ class MACAddress():
         return '%s(%s)' % (self.__class__.__name__, self.mac_string)
 
     def __eq__(self, other):
+
         if not isinstance(other, MACAddress):
-            return NotImplemented
+            try:
+                # if it looks like a mac address, we'll take it.
+                # (allows for equality with scapy hw-addresses)
+                return self.mac_binary == MACAddress(other).mac_binary
+            except Exception:
+                return NotImplemented
         return self.mac_binary == other.mac_binary
 
     def __ne__(self, other):