@@ -204,6 +204,35 @@ def test_after_after_before_invalid(self):
204
204
self .assertIn ("expires_before" , errors )
205
205
self .assertIn ("expires_after" , errors )
206
206
207
+ def test_permanent_after_invalid (self ):
208
+ url = reverse ('bot:infraction-list' , host = 'api' )
209
+ target_time = datetime .datetime .utcnow () + datetime .timedelta (hours = 5 )
210
+ response = self .client .get (f'{ url } ?permanent=true&expires_after={ target_time .isoformat ()} ' )
211
+
212
+ self .assertEqual (response .status_code , 400 )
213
+ errors = list (response .json ())
214
+ self .assertEqual ("permanent" , errors [0 ])
215
+
216
+ def test_permanent_before_invalid (self ):
217
+ url = reverse ('bot:infraction-list' , host = 'api' )
218
+ target_time = datetime .datetime .utcnow () + datetime .timedelta (hours = 5 )
219
+ response = self .client .get (f'{ url } ?permanent=true&expires_before={ target_time .isoformat ()} ' )
220
+
221
+ self .assertEqual (response .status_code , 400 )
222
+ errors = list (response .json ())
223
+ self .assertEqual ("permanent" , errors [0 ])
224
+
225
+ def test_nonpermanent_before (self ):
226
+ url = reverse ('bot:infraction-list' , host = 'api' )
227
+ target_time = datetime .datetime .utcnow () + datetime .timedelta (hours = 6 )
228
+ response = self .client .get (
229
+ f'{ url } ?permanent=false&expires_before={ target_time .isoformat ()} '
230
+ )
231
+
232
+ self .assertEqual (response .status_code , 200 )
233
+ self .assertEqual (len (response .json ()), 1 )
234
+ self .assertEqual (response .json ()[0 ]["id" ], self .superstar_expires_soon .id )
235
+
207
236
def test_filter_manytypes (self ):
208
237
url = reverse ('bot:infraction-list' , host = 'api' )
209
238
response = self .client .get (f'{ url } ?types=mute,ban' )
0 commit comments