File tree Expand file tree Collapse file tree 2 files changed +16
-7
lines changed
Expand file tree Collapse file tree 2 files changed +16
-7
lines changed Original file line number Diff line number Diff line change @@ -219,16 +219,17 @@ def table_name(cls):
219219 else cls .master .table_name + "__" + from_camel_case (cls .__name__ )
220220 )
221221
222- def delete (self , force = False ):
222+ def delete (self , force = False , ** kwargs ):
223223 """
224- unless force is True, prohibits direct deletes from parts.
224+ Unless force is True, prohibits direct deletes from parts.
225+ Accepts any kwargs supported by Table.delete and forwards them to super().delete.
225226 """
226227 if force :
227- super ().delete (force_parts = True )
228- else :
229- raise DataJointError (
230- "Cannot delete from a Part directly. Delete from master instead"
231- )
228+ return super ().delete (force_parts = True , ** kwargs )
229+
230+ raise DataJointError (
231+ "Cannot delete from a Part directly. Delete from master instead"
232+ )
232233
233234 def drop (self , force = False ):
234235 """
Original file line number Diff line number Diff line change @@ -36,6 +36,14 @@ def test_stepwise_delete(schema_simp_pop):
3636 not B ()
3737 ), "failed to delete from the parent table following child table deletion"
3838
39+ def test_part_delete_forwards_kwargs (schema_simp_pop ):
40+ assert not dj .config ["safemode" ], "safemode must be off for testing"
41+ assert L () and A () and B () and B .C (), "schema population failed"
42+
43+ # Should accept and forward kwargs supported by Table.delete
44+ B .C ().delete (force = True , transaction = False )
45+
46+ assert not B .C (), "failed to delete child table with forwarded kwargs"
3947
4048def test_delete_tree_restricted (schema_simp_pop ):
4149 assert not dj .config ["safemode" ], "safemode must be off for testing"
You can’t perform that action at this time.
0 commit comments