Fix != operations on lazy objects.

This commit is contained in:
Alex Gaynor 2013-04-19 10:58:29 -07:00
parent 59d127e45f
commit 714161c864
2 changed files with 10 additions and 0 deletions

View File

@ -346,6 +346,7 @@ class SimpleLazyObject(LazyObject):
# care about this (especially in equality tests)
__class__ = property(new_method_proxy(operator.attrgetter("__class__")))
__eq__ = new_method_proxy(operator.eq)
__ne__ = new_method_proxy(operator.ne)
__hash__ = new_method_proxy(hash)
__bool__ = new_method_proxy(bool) # Python 3
__nonzero__ = __bool__ # Python 2

View File

@ -152,3 +152,12 @@ class TestUtilsSimpleLazyObject(TestCase):
SimpleLazyObject(None)
finally:
sys.settrace(old_trace_func)
def test_not_equal(self):
lazy1 = SimpleLazyObject(lambda: 2)
lazy2 = SimpleLazyObject(lambda: 2)
lazy3 = SimpleLazyObject(lambda: 3)
self.assertEqual(lazy1, lazy2)
self.assertNotEqual(lazy1, lazy3)
self.assertTrue(lazy1 != lazy3)
self.assertFalse(lazy1 != lazy2)