[SVCS-479] Raise exception for copy/move replace folder that orphans itself.
Ticket
https://openscience.atlassian.net/browse/SVCS-479
Replaces: https://github.com/CenterForOpenScience/waterbutler/pull/274
Purpose:
Replace folder from inside folder deletes both
Changes:
- Updated waterbutler/core/provider.py
- Add def replace_will_orphan
- Update def move calls replace_will_orphan
- Update def copy calls replace_will_orphan
- Update waterbutler/core/exceptions.py
- Add class OrphanSelfError
- Update tests/providers/osfstorage/test_provider.py
- Add test test_intra_copy_folder_orphan
Side effects
Folder move/copies that use conflict=replace may now be more costly
See previous PR for discussion https://github.com/CenterForOpenScience/waterbutler/pull/274
Coverage decreased (-0.003%) to 91.981% when pulling e012a516771d097259946c596317ffc9b77eeff1 on birdbrained:ft/move-orphan-delete into 5c637a2affa8dfb43159ff80cf430c9ac5d369f8 on CenterForOpenScience:develop.
@cslzchen Can you note here what specifically blocks this PR that is resolved by #341?