From a34cb5a6d408203f4fbdb364fc9768c026eda224 Mon Sep 17 00:00:00 2001 From: Carlton Gibson Date: Tue, 18 Feb 2020 10:50:19 +0100 Subject: Refs #31282 -- Clarified M2O add/remove/set with PK behaviour. Improved error message for remove() and added tests. --- tests/many_to_one/tests.py | 11 +++++++++++ 1 file changed, 11 insertions(+) (limited to 'tests') diff --git a/tests/many_to_one/tests.py b/tests/many_to_one/tests.py index d769b206b9..76ef4921dd 100644 --- a/tests/many_to_one/tests.py +++ b/tests/many_to_one/tests.py @@ -733,3 +733,14 @@ class ManyToOneTests(TestCase): child = parent.to_field_children.get() with self.assertNumQueries(0): self.assertIs(child.parent, parent) + + def test_add_remove_set_by_pk_raises(self): + usa = Country.objects.create(name='United States') + chicago = City.objects.create(name='Chicago') + msg = "'City' instance expected, got %s" % chicago.pk + with self.assertRaisesMessage(TypeError, msg): + usa.cities.add(chicago.pk) + with self.assertRaisesMessage(TypeError, msg): + usa.cities.remove(chicago.pk) + with self.assertRaisesMessage(TypeError, msg): + usa.cities.set([chicago.pk]) -- cgit v1.3