@@ -51,7 +51,7 @@ def fake_init(self):
51
51
]
52
52
53
53
def is_authenticated (self ):
54
- if self .request_method () == 'DELETE' :
54
+ if self .request_method () == 'DELETE' and self . endpoint == 'list' :
55
55
return False
56
56
57
57
return True
@@ -82,6 +82,12 @@ def update(self, pk):
82
82
def create_detail (self ):
83
83
raise ValueError ("This is a random & crazy exception." )
84
84
85
+ def delete (self , pk ):
86
+ for i , item in enumerate (self .fake_db ):
87
+ if item .id == pk :
88
+ del self .fake_db [i ]
89
+ return
90
+
85
91
@skip_prepare
86
92
def schema (self ):
87
93
# A WILD SCHEMA VIEW APPEARS!
@@ -340,3 +346,18 @@ def test_create(self):
340
346
'id' : 6 ,
341
347
'title' : 'Moved hosts'
342
348
})
349
+
350
+ def test_delete (self ):
351
+ self .res .request = FakeHttpRequest ('DELETE' )
352
+ self .assertEqual (len (self .res .fake_db ), 3 )
353
+
354
+ resp = self .res .handle ('detail' , pk = 2 )
355
+ self .assertEqual (resp ['Content-Type' ], 'text/plain' )
356
+ self .assertEqual (resp .status_code , 204 )
357
+ self .assertEqual (resp .content .decode ('utf-8' ), '' )
358
+
359
+ # Check the internal state.
360
+ self .res .request = FakeHttpRequest ('GET' )
361
+ self .assertEqual (len (self .res .fake_db ), 2 )
362
+ resp = self .res .handle ('detail' , pk = 2 )
363
+ self .assertEqual (resp .status_code , 404 )
0 commit comments