diff options
| author | Andrew Godwin <andrew@aeracode.org> | 2013-09-25 13:47:46 +0100 |
|---|---|---|
| committer | Andrew Godwin <andrew@aeracode.org> | 2013-09-25 13:47:46 +0100 |
| commit | 05656f2388b1989c9e99e1ff2aae8b2e1c805af2 (patch) | |
| tree | f59f074e2c9f4b91960376678f9973cbe3cc2b62 /tests | |
| parent | 9027da65d3590a3bd319490d78c86ef09cd04f9e (diff) | |
Add equality support for Project/ModelState
Diffstat (limited to 'tests')
| -rw-r--r-- | tests/migrations/test_state.py | 40 |
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) |
