summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorAnssi Kääriäinen <akaariai@gmail.com>2013-08-07 09:51:32 +0300
committerAnssi Kääriäinen <akaariai@gmail.com>2013-08-19 09:51:28 +0300
commit4668c142dce77c6f29fb75532c1acfa1b2d322ff (patch)
tree0d4bfb51d43879c9e0410e42152542a3c78e828d /tests
parent40909826172374b849ddc9db8e1a8be9a8c3251b (diff)
Made Model.__eq__ consider proxy models equivalent
Fixed #11892, fixed #16458, fixed #14492.
Diffstat (limited to 'tests')
-rw-r--r--tests/basic/tests.py4
-rw-r--r--tests/defer/tests.py6
-rw-r--r--tests/model_inheritance/tests.py5
-rw-r--r--tests/proxy_models/tests.py3
4 files changed, 18 insertions, 0 deletions
diff --git a/tests/basic/tests.py b/tests/basic/tests.py
index 55ed6a436f..2b051621ef 100644
--- a/tests/basic/tests.py
+++ b/tests/basic/tests.py
@@ -707,6 +707,10 @@ class ModelTest(TestCase):
with self.assertRaises(ObjectDoesNotExist):
SelfRef.objects.get(selfref=sr)
+ def test_eq(self):
+ self.assertNotEqual(Article(id=1), object())
+ self.assertNotEqual(object(), Article(id=1))
+
class ConcurrentSaveTests(TransactionTestCase):
diff --git a/tests/defer/tests.py b/tests/defer/tests.py
index 1df312e1bf..b66b173f7a 100644
--- a/tests/defer/tests.py
+++ b/tests/defer/tests.py
@@ -183,3 +183,9 @@ class DeferTests(TestCase):
with self.assertNumQueries(0):
bc_deferred.id
self.assertEqual(bc_deferred.pk, bc_deferred.id)
+
+ def test_eq(self):
+ s1 = Secondary.objects.create(first="x1", second="y1")
+ s1_defer = Secondary.objects.only('pk').get(pk=s1.pk)
+ self.assertEqual(s1, s1_defer)
+ self.assertEqual(s1_defer, s1)
diff --git a/tests/model_inheritance/tests.py b/tests/model_inheritance/tests.py
index eb50d30cf8..0ba6a15e5d 100644
--- a/tests/model_inheritance/tests.py
+++ b/tests/model_inheritance/tests.py
@@ -318,3 +318,8 @@ class ModelInheritanceTests(TestCase):
sql = query['sql']
if 'UPDATE' in sql:
self.assertEqual(expected_sql, sql)
+
+ def test_eq(self):
+ # Equality doesn't transfer in multitable inheritance.
+ self.assertNotEqual(Place(id=1), Restaurant(id=1))
+ self.assertNotEqual(Restaurant(id=1), Place(id=1))
diff --git a/tests/proxy_models/tests.py b/tests/proxy_models/tests.py
index 240198cc39..3598d65935 100644
--- a/tests/proxy_models/tests.py
+++ b/tests/proxy_models/tests.py
@@ -362,6 +362,9 @@ class ProxyModelTests(TestCase):
p = MyPerson.objects.get(pk=100)
self.assertEqual(p.name, 'Elvis Presley')
+ def test_eq(self):
+ self.assertEqual(MyPerson(id=100), Person(id=100))
+
class ProxyModelAdminTests(TestCase):
fixtures = ['myhorses']