Advertisement
Guest User

Untitled

a guest
Jul 4th, 2015
140
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.04 KB | None | 0 0
  1. from django.db.models.deletion import Collector, ProtectedError
  2.  
  3.  
  4. def delete_child_instances(instance):
  5. try:
  6. collector = Collector(using='default')
  7. collector.collect(objs=[instance], collect_related=True)
  8. except ProtectedError as error:
  9. protected_objects = error.protected_objects
  10. for obj in protected_objects:
  11. delete_child_instances(obj)
  12. obj.deleted = True
  13. obj.save()
  14.  
  15.  
  16. def test_cascading_deletes(self):
  17. contact_type = mommy.make(ContactType)
  18. contact_1 = mommy.make(Contact, contact_type=contact_type)
  19. contact_2 = mommy.make(Contact, contact_type=contact_type)
  20. url = reverse("api:common:contact_types_list")
  21. url = url + "{}/".format(contact_type)
  22. response = self.client.delete(url)
  23. # wait for 15 seconds for the cache
  24. time.sleep(20)
  25. self.assertEquals(204, response.status_code)
  26. self.assertTrue(contact_type.deleted)
  27. self.assertTrue(contact_1.deleted)
  28. self.assertTrue(contact_2.deleted)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement