From 4e8d89020cca87fcf484eb6b6b514b4c9bfa592f Mon Sep 17 00:00:00 2001 From: Matthias Kestenholz Date: Thu, 30 Jan 2020 18:08:56 +0100 Subject: Fixed #31219 -- Fixed object deletion crash for nested protected related objects. --- tests/delete/tests.py | 11 +++++++++++ 1 file changed, 11 insertions(+) (limited to 'tests/delete/tests.py') diff --git a/tests/delete/tests.py b/tests/delete/tests.py index 279788d2d3..1731342bc1 100644 --- a/tests/delete/tests.py +++ b/tests/delete/tests.py @@ -90,6 +90,17 @@ class OnDeleteTests(TestCase): with self.assertRaisesMessage(ProtectedError, msg): a.protect.delete() + def test_protect_path(self): + a = create_a('protect') + a.protect.p = P.objects.create() + a.protect.save() + msg = ( + "Cannot delete some instances of model 'P' because they are " + "referenced through protected foreign keys: 'R.p'." + ) + with self.assertRaisesMessage(ProtectedError, msg): + a.protect.p.delete() + def test_do_nothing(self): # Testing DO_NOTHING is a bit harder: It would raise IntegrityError for a normal model, # so we connect to pre_delete and set the fk to a known value. -- cgit v1.3