summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authoramitmi704 <36094800+amitmi704@users.noreply.github.com>2021-02-07 18:54:27 -0600
committerGitHub <noreply@github.com>2021-02-08 01:54:27 +0100
commitb6c4203f85dba18074971208c0602c5bada90e8b (patch)
tree3ebc04f8a7bdfd6f5ece28e4569304de6685b0c5
parent606a44b62ea7032f63e359aaaaabc0057e168890 (diff)
downloadnetaddr-b6c4203f85dba18074971208c0602c5bada90e8b.tar.gz
Add hash capabilities to OUI (#225)
Closes #224
-rw-r--r--netaddr/eui/__init__.py3
-rw-r--r--netaddr/tests/eui/test_eui.py8
2 files changed, 11 insertions, 0 deletions
diff --git a/netaddr/eui/__init__.py b/netaddr/eui/__init__.py
index 5639676..07bbdc3 100644
--- a/netaddr/eui/__init__.py
+++ b/netaddr/eui/__init__.py
@@ -100,6 +100,9 @@ class OUI(BaseIdentifier):
else:
raise NotRegisteredError('OUI %r not registered!' % (oui,))
+ def __hash__(self):
+ return hash(self._value)
+
def __eq__(self, other):
if not isinstance(other, OUI):
try:
diff --git a/netaddr/tests/eui/test_eui.py b/netaddr/tests/eui/test_eui.py
index 645a518..c17d0ce 100644
--- a/netaddr/tests/eui/test_eui.py
+++ b/netaddr/tests/eui/test_eui.py
@@ -186,6 +186,14 @@ def test_oui_constructor():
assert oui.reg_count == 3
+def test_oui_hash():
+ oui0 = OUI(0)
+ oui1 = OUI(1)
+ oui_dict = {oui0: None, oui1: None}
+
+ assert list(oui_dict.keys()) == [OUI(0), OUI(1)]
+
+
def test_eui_iab():
mac = EUI('00-50-C2-00-0F-01')
assert mac.is_iab()