papi: enhance MACAddress() equality
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>
diff --git a/src/vpp-api/python/vpp_papi/macaddress.py b/src/vpp-api/python/vpp_papi/macaddress.py
index 02c90db..c3b10a3 100644
--- a/src/vpp-api/python/vpp_papi/macaddress.py
+++ b/src/vpp-api/python/vpp_papi/macaddress.py
@@ -54,8 +54,14 @@
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):