From 17ea9cd3dba17783d83128f2aa5acc63f1f0a456 Mon Sep 17 00:00:00 2001 From: Cyrus Vafadari Date: Fri, 21 Nov 2014 12:03:08 -0500 Subject: [PATCH] Override equality to not use builtin cmp --- src/mongopersist/serialize.py | 6 ++++++ src/mongopersist/tests/test_serialize.py | 26 ++++++++++++++++++++++++ versions.cfg | 2 +- 3 files changed, 33 insertions(+), 1 deletion(-) diff --git a/src/mongopersist/serialize.py b/src/mongopersist/serialize.py index 7b4d1e0..bb61ed1 100644 --- a/src/mongopersist/serialize.py +++ b/src/mongopersist/serialize.py @@ -66,6 +66,12 @@ def __getitem__(self, key): # slower. So let's not do that. return self.data[key] + def __eq__(self, other): + return self.data == other + + def __ne__(self, other): + return not self.__eq__(other) + class PersistentList(persistent.list.PersistentList): _p_mongo_sub_object = True diff --git a/src/mongopersist/tests/test_serialize.py b/src/mongopersist/tests/test_serialize.py index 7f32c2c..032a327 100644 --- a/src/mongopersist/tests/test_serialize.py +++ b/src/mongopersist/tests/test_serialize.py @@ -1039,6 +1039,32 @@ def doctest_deserialize_persistent_references(): """ +def doctest_PersistentDict_equality(): + """Test basic functions if PersistentDicts + + >>> import datetime + >>> obj1 = serialize.PersistentDict({'key':'value'}) + >>> obj2 = serialize.PersistentDict({'key':'value'}) + >>> obj3 = serialize.PersistentDict({'key':None}) + >>> obj4 = serialize.PersistentDict({'key':datetime.datetime.now()}) + + >>> obj1 == obj1 and obj2 == obj2 and obj3 == obj3 and obj4 == obj4 + True + + >>> obj1 == obj2 + True + + >>> obj1 == obj3 + False + + >>> obj1 == obj4 + False + + >>> obj3 == obj4 + False + """ + + def test_suite(): return doctest.DocTestSuite( setUp=testing.setUp, tearDown=testing.tearDown, diff --git a/versions.cfg b/versions.cfg index 61df852..e6d91bb 100644 --- a/versions.cfg +++ b/versions.cfg @@ -229,4 +229,4 @@ distribute = 0.6.36 # zope.interface==4.0.2 # zope.testing==4.1.1 # zope.testrunner==4.0.4 -setuptools = 0.8 +setuptools = 3.3