summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJohn L. Villalovos <john.l.villalovos@intel.com>2016-09-08 14:44:26 -0700
committerJohn L. Villalovos <john.l.villalovos@intel.com>2016-09-08 19:56:57 -0700
commitaeaf273c07cf7dffbe2e6879ca247d0af557cd52 (patch)
treebeb6ff97b36614213fe7e46b3d7a77176636d34d
parent41c0413adb6076d6c43a0de0b0b9be5d890551ef (diff)
downloadironic-aeaf273c07cf7dffbe2e6879ca247d0af557cd52.tar.gz
__ne__() unit tests & have special methods use (self, other)
Commit 41c0413adb6076d6c43a0de0b0b9be5d890551ef added the __ne__() method. This adds unit tests for the method. Add some additional unit tests for the special methods. Use the standard way[1] of defining the special methods __eq__() and __gt__() with (self, other) as the arguments https://docs.python.org/2/reference/datamodel.html#special-method-names Change-Id: I947e7a453e1cb621f27a0bb3576b0544868734fb
-rw-r--r--ironic/api/controllers/base.py8
-rw-r--r--ironic/tests/unit/api/test_base.py20
2 files changed, 24 insertions, 4 deletions
diff --git a/ironic/api/controllers/base.py b/ironic/api/controllers/base.py
index 03aac3776..911f97d2c 100644
--- a/ironic/api/controllers/base.py
+++ b/ironic/api/controllers/base.py
@@ -105,11 +105,11 @@ class Version(object):
"Invalid value for %s header") % Version.string)
return version
- def __gt__(a, b):
- return (a.major, a.minor) > (b.major, b.minor)
+ def __gt__(self, other):
+ return (self.major, self.minor) > (other.major, other.minor)
- def __eq__(a, b):
- return (a.major, a.minor) == (b.major, b.minor)
+ def __eq__(self, other):
+ return (self.major, self.minor) == (other.major, other.minor)
def __ne__(self, other):
return not self.__eq__(other)
diff --git a/ironic/tests/unit/api/test_base.py b/ironic/tests/unit/api/test_base.py
index 0cea5d279..f15f4724c 100644
--- a/ironic/tests/unit/api/test_base.py
+++ b/ironic/tests/unit/api/test_base.py
@@ -97,8 +97,24 @@ class TestVersion(base.BaseApiTest):
{cbase.Version.string: '123.456'}, mock.ANY, mock.ANY)
ver_2 = cbase.Version(
{cbase.Version.string: '123.456'}, mock.ANY, mock.ANY)
+ ver_3 = cbase.Version(
+ {cbase.Version.string: '654.321'}, mock.ANY, mock.ANY)
self.assertTrue(hasattr(ver_1, '__eq__'))
self.assertEqual(ver_1, ver_2)
+ # Force __eq__ to be called and return False
+ self.assertFalse(ver_1 == ver_3)
+
+ def test_not_equals(self):
+ ver_1 = cbase.Version(
+ {cbase.Version.string: '123.456'}, mock.ANY, mock.ANY)
+ ver_2 = cbase.Version(
+ {cbase.Version.string: '123.456'}, mock.ANY, mock.ANY)
+ ver_3 = cbase.Version(
+ {cbase.Version.string: '654.321'}, mock.ANY, mock.ANY)
+ self.assertTrue(hasattr(ver_1, '__ne__'))
+ self.assertNotEqual(ver_1, ver_3)
+ # Force __ne__ to be called and return False
+ self.assertFalse(ver_1 != ver_2)
def test_greaterthan(self):
ver_1 = cbase.Version(
@@ -107,6 +123,8 @@ class TestVersion(base.BaseApiTest):
{cbase.Version.string: '123.456'}, mock.ANY, mock.ANY)
self.assertTrue(hasattr(ver_1, '__gt__'))
self.assertGreater(ver_1, ver_2)
+ # Force __gt__ to be called and return False
+ self.assertFalse(ver_2 > ver_1)
def test_lessthan(self):
# __lt__ is created by @functools.total_ordering, make sure it exists
@@ -117,3 +135,5 @@ class TestVersion(base.BaseApiTest):
{cbase.Version.string: '123.457'}, mock.ANY, mock.ANY)
self.assertTrue(hasattr(ver_1, '__lt__'))
self.assertLess(ver_1, ver_2)
+ # Force __lt__ to be called and return False
+ self.assertFalse(ver_2 < ver_1)