Handle WorkerRun foreign keys when deleting a corpus
Closes #1419 (closed)
I could reproduce locally and tested the fix locally, but could not get the tests to catch fire properly. It took me a while to figure out PostgreSQL was not verifying any foreign key constraint during the tests since they are inside transactions and Django sets all constraints to be DEFERRABLE INITIALLY DEFERRED, and the real life corpus_delete does not run inside of a transaction. I added a new context manager to enforce the foreign keys whenever I want because Postgres isn't my mom.
The tests did catch fire here: https://gitlab.com/teklia/arkindex/backend/-/pipelines/753059975/test_report
Edited by Erwan Rouchet