__ne__() unit tests & have special methods use (self, other)
Commit 41c0413adb
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
This commit is contained in:
parent
41c0413adb
commit
aeaf273c07
@ -105,11 +105,11 @@ class Version(object):
|
|||||||
"Invalid value for %s header") % Version.string)
|
"Invalid value for %s header") % Version.string)
|
||||||
return version
|
return version
|
||||||
|
|
||||||
def __gt__(a, b):
|
def __gt__(self, other):
|
||||||
return (a.major, a.minor) > (b.major, b.minor)
|
return (self.major, self.minor) > (other.major, other.minor)
|
||||||
|
|
||||||
def __eq__(a, b):
|
def __eq__(self, other):
|
||||||
return (a.major, a.minor) == (b.major, b.minor)
|
return (self.major, self.minor) == (other.major, other.minor)
|
||||||
|
|
||||||
def __ne__(self, other):
|
def __ne__(self, other):
|
||||||
return not self.__eq__(other)
|
return not self.__eq__(other)
|
||||||
|
@ -97,8 +97,24 @@ class TestVersion(base.BaseApiTest):
|
|||||||
{cbase.Version.string: '123.456'}, mock.ANY, mock.ANY)
|
{cbase.Version.string: '123.456'}, mock.ANY, mock.ANY)
|
||||||
ver_2 = cbase.Version(
|
ver_2 = cbase.Version(
|
||||||
{cbase.Version.string: '123.456'}, mock.ANY, mock.ANY)
|
{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.assertTrue(hasattr(ver_1, '__eq__'))
|
||||||
self.assertEqual(ver_1, ver_2)
|
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):
|
def test_greaterthan(self):
|
||||||
ver_1 = cbase.Version(
|
ver_1 = cbase.Version(
|
||||||
@ -107,6 +123,8 @@ class TestVersion(base.BaseApiTest):
|
|||||||
{cbase.Version.string: '123.456'}, mock.ANY, mock.ANY)
|
{cbase.Version.string: '123.456'}, mock.ANY, mock.ANY)
|
||||||
self.assertTrue(hasattr(ver_1, '__gt__'))
|
self.assertTrue(hasattr(ver_1, '__gt__'))
|
||||||
self.assertGreater(ver_1, ver_2)
|
self.assertGreater(ver_1, ver_2)
|
||||||
|
# Force __gt__ to be called and return False
|
||||||
|
self.assertFalse(ver_2 > ver_1)
|
||||||
|
|
||||||
def test_lessthan(self):
|
def test_lessthan(self):
|
||||||
# __lt__ is created by @functools.total_ordering, make sure it exists
|
# __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)
|
{cbase.Version.string: '123.457'}, mock.ANY, mock.ANY)
|
||||||
self.assertTrue(hasattr(ver_1, '__lt__'))
|
self.assertTrue(hasattr(ver_1, '__lt__'))
|
||||||
self.assertLess(ver_1, ver_2)
|
self.assertLess(ver_1, ver_2)
|
||||||
|
# Force __lt__ to be called and return False
|
||||||
|
self.assertFalse(ver_2 < ver_1)
|
||||||
|
Loading…
Reference in New Issue
Block a user