Handle entity equality comparison against non-matching types
Signed-off-by: martin f. krafft <madduck@madduck.net>
diff --git a/reclass/datatypes/parameters.py b/reclass/datatypes/parameters.py
index ccfb6fe..078a247 100644
--- a/reclass/datatypes/parameters.py
+++ b/reclass/datatypes/parameters.py
@@ -59,7 +59,8 @@
self.delimiter)
def __eq__(self, other):
- return self._base == other._base \
+ return isinstance(other, type(self)) \
+ and self._base == other._base \
and self._delimiter == other._delimiter
def __ne__(self, other):
diff --git a/reclass/datatypes/tests/test_parameters.py b/reclass/datatypes/tests/test_parameters.py
index 5732018..8103aaf 100644
--- a/reclass/datatypes/tests/test_parameters.py
+++ b/reclass/datatypes/tests/test_parameters.py
@@ -98,6 +98,11 @@
self.assertNotEqual(p1, p2)
b1.__eq__.assert_called_once_with(b2)
+ def test_unequal_types(self):
+ p1, b1 = self._construct_mocked_params()
+ self.assertNotEqual(p1, None)
+ self.assertEqual(b1.__eq__.call_count, 0)
+
def test_construct_wrong_type(self):
with self.assertRaises(TypeError):
self._construct_mocked_params('wrong type')