summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorAndrew Godwin <andrew@aeracode.org>2013-09-25 13:47:46 +0100
committerAndrew Godwin <andrew@aeracode.org>2013-09-25 13:47:46 +0100
commit05656f2388b1989c9e99e1ff2aae8b2e1c805af2 (patch)
treef59f074e2c9f4b91960376678f9973cbe3cc2b62 /tests
parent9027da65d3590a3bd319490d78c86ef09cd04f9e (diff)
Add equality support for Project/ModelState
Diffstat (limited to 'tests')
-rw-r--r--tests/migrations/test_state.py40
1 files changed, 40 insertions, 0 deletions
diff --git a/tests/migrations/test_state.py b/tests/migrations/test_state.py
index 4707349176..210897dc66 100644
--- a/tests/migrations/test_state.py
+++ b/tests/migrations/test_state.py
@@ -175,3 +175,43 @@ class StateTests(TestCase):
project_state.add_model_state(ModelState.from_model(F))
with self.assertRaises(InvalidBasesError):
project_state.render()
+
+ def test_equality(self):
+ """
+ Tests that == and != are implemented correctly.
+ """
+
+ # Test two things that should be equal
+ project_state = ProjectState()
+ project_state.add_model_state(ModelState(
+ "migrations",
+ "Tag",
+ [
+ ("id", models.AutoField(primary_key=True)),
+ ("name", models.CharField(max_length=100)),
+ ("hidden", models.BooleanField()),
+ ],
+ {},
+ None,
+ ))
+ other_state = project_state.clone()
+ self.assertEqual(project_state, project_state)
+ self.assertEqual(project_state, other_state)
+ self.assertEqual(project_state != project_state, False)
+ self.assertEqual(project_state != other_state, False)
+
+ # Make a very small change (max_len 99) and see if that affects it
+ project_state = ProjectState()
+ project_state.add_model_state(ModelState(
+ "migrations",
+ "Tag",
+ [
+ ("id", models.AutoField(primary_key=True)),
+ ("name", models.CharField(max_length=99)),
+ ("hidden", models.BooleanField()),
+ ],
+ {},
+ None,
+ ))
+ self.assertNotEqual(project_state, other_state)
+ self.assertEqual(project_state == other_state, False)