@@ -241,71 +241,96 @@ class PenaltyTestCase(BaseTestCase):
241241
242242 def setUp (self ):
243243 self .test_user = User .objects .get (pk = 1 )
244- self .source = Event .objects .all ().first ()
245244
246245 def test_create_penalty (self ):
246+ source = Event .objects .all ().first ()
247247 penalty = Penalty .objects .create (
248- user = self .test_user , reason = "test" , weight = 1 , source_event = self . source
248+ user = self .test_user , reason = "test" , weight = 1 , source_event = source
249249 )
250250
251251 self .assertEqual (self .test_user .number_of_penalties (), 1 )
252252 self .assertEqual (self .test_user , penalty .user )
253253 self .assertEqual ("test" , penalty .reason )
254254 self .assertEqual (1 , penalty .weight )
255- self .assertEqual (self . source , penalty .source_event )
256- self .assertEqual (self . source .id , penalty .source_event .id )
255+ self .assertEqual (source , penalty .source_event )
256+ self .assertEqual (source .id , penalty .source_event .id )
257257
258258 def test_count_weights (self ):
259+ source = Event .objects .all ().first ()
259260 weights = [1 , 2 ]
260261 for weight in weights :
261262 Penalty .objects .create (
262263 user = self .test_user ,
263264 reason = "test" ,
264265 weight = weight ,
265- source_event = self . source ,
266+ source_event = source ,
266267 )
267268
268269 self .assertEqual (self .test_user .number_of_penalties (), sum (weights ))
269270
270271 @mock .patch ("django.utils.timezone.now" , return_value = fake_time (2016 , 10 , 1 ))
271272 def test_only_count_active_penalties (self , mock_now ):
273+ event1 = Event .objects .create (
274+ title = "A simple event" ,
275+ event_type = 0 ,
276+ start_time = mock_now () - timedelta (days = 20 ),
277+ end_time = mock_now () - timedelta (days = 20 ),
278+ )
279+
280+ event2 = Event .objects .create (
281+ title = "A simple event" ,
282+ event_type = 0 ,
283+ start_time = mock_now () - timedelta (days = 19 , hours = 23 , minutes = 59 ),
284+ end_time = mock_now () - timedelta (days = 19 , hours = 23 , minutes = 59 ),
285+ )
286+
272287 Penalty .objects .create (
273- created_at = mock_now () - timedelta (days = 20 ),
274288 user = self .test_user ,
275289 reason = "test" ,
276290 weight = 1 ,
277- source_event = self . source ,
291+ source_event = event1 ,
278292 )
279293 Penalty .objects .create (
280- created_at = mock_now () - timedelta (days = 19 , hours = 23 , minutes = 59 ),
281294 user = self .test_user ,
282295 reason = "test" ,
283296 weight = 1 ,
284- source_event = self . source ,
297+ source_event = event2 ,
285298 )
286299 self .assertEqual (self .test_user .number_of_penalties (), 1 )
287300
288301 @override_settings (PENALTY_IGNORE_WINTER = ((12 , 10 ), (1 , 10 )))
289302 @mock .patch ("django.utils.timezone.now" , return_value = fake_time (2016 , 12 , 10 ))
290303 def test_frozen_penalties_count_as_active_winter (self , mock_now ):
291- # This penalty is created slightly less than 20 days from the freeze-point.
292- # It should be counted as active.
304+ # This event is created slightly less than 20 days from the freeze-point.
305+ # The penalty should be counted as active.
306+ event1 = Event .objects .create (
307+ title = "A simple event" ,
308+ event_type = 0 ,
309+ start_time = mock_now ().replace (day = 1 ),
310+ end_time = mock_now ().replace (day = 1 ),
311+ )
312+
293313 Penalty .objects .create (
294314 created_at = mock_now () - timedelta (days = 20 , hours = 23 , minutes = 59 ),
295315 user = self .test_user ,
296316 reason = "active" ,
297317 weight = 1 ,
298- source_event = self . source ,
318+ source_event = event1 ,
299319 )
300320
301- # This penalty is created exactly 20 days from the freeze-point.
302- # It should be counted as inactive.
321+ # This event is created exactly 20 days from the freeze-point.
322+ # The penalty should be counted as inactive.
323+ event2 = Event .objects .create (
324+ title = "A simple event" ,
325+ event_type = 0 ,
326+ start_time = mock_now () - timedelta (days = 21 ),
327+ end_time = mock_now () - timedelta (days = 21 ),
328+ )
303329 Penalty .objects .create (
304- created_at = mock_now () - timedelta (days = 21 ),
305330 user = self .test_user ,
306331 reason = "inactive" ,
307332 weight = 1 ,
308- source_event = self . source ,
333+ source_event = event2 ,
309334 )
310335
311336 self .assertEqual (self .test_user .number_of_penalties (), 1 )
@@ -314,24 +339,35 @@ def test_frozen_penalties_count_as_active_winter(self, mock_now):
314339 @override_settings (PENALTY_IGNORE_SUMMER = ((6 , 12 ), (8 , 15 )))
315340 @mock .patch ("django.utils.timezone.now" , return_value = fake_time (2016 , 6 , 12 ))
316341 def test_frozen_penalties_count_as_active_summer (self , mock_now ):
317- # This penalty is created slightly less than 20 days from the freeze-point.
318- # It should be counted as active.
342+ # This event is created slightly less than 20 days from the freeze-point.
343+ # The penalty should be counted as active.
344+ event1 = Event .objects .create (
345+ title = "A simple event" ,
346+ event_type = 0 ,
347+ start_time = mock_now () - timedelta (days = 19 , hours = 23 , minutes = 59 ),
348+ end_time = mock_now () - timedelta (days = 19 , hours = 23 , minutes = 59 ),
349+ )
350+
319351 Penalty .objects .create (
320- created_at = mock_now () - timedelta (days = 20 , hours = 23 , minutes = 59 ),
321352 user = self .test_user ,
322353 reason = "active" ,
323354 weight = 1 ,
324- source_event = self . source ,
355+ source_event = event1 ,
325356 )
326357
327- # This penalty is created exactly 20 days from the freeze-point.
328- # It should be counted as inactive.
358+ # This event is created exactly 20 days from the freeze-point.
359+ # The penalty should be counted as inactive.
360+ event2 = Event .objects .create (
361+ title = "Another simple event" ,
362+ event_type = 0 ,
363+ start_time = mock_now () - timedelta (days = 21 ),
364+ end_time = mock_now () - timedelta (days = 21 ),
365+ )
329366 Penalty .objects .create (
330- created_at = mock_now () - timedelta (days = 21 ),
331367 user = self .test_user ,
332368 reason = "inactive" ,
333369 weight = 1 ,
334- source_event = self . source ,
370+ source_event = event2 ,
335371 )
336372
337373 self .assertEqual (self .test_user .number_of_penalties (), 1 )
@@ -342,25 +378,36 @@ def test_frozen_penalties_count_as_active_summer(self, mock_now):
342378 def test_penalty_offset_is_calculated_correctly (self , mock_now ):
343379 # This penalty is set to expire the day before the penalty freeze
344380 # It should not be active
381+ event1 = Event .objects .create (
382+ title = "A simple event" ,
383+ event_type = 0 ,
384+ start_time = mock_now ().replace (day = 1 ),
385+ end_time = mock_now ().replace (day = 1 ),
386+ )
387+
345388 inactive = Penalty .objects .create (
346- created_at = mock_now ().replace (day = 1 ),
347389 user = self .test_user ,
348390 reason = "inactive" ,
349391 weight = 1 ,
350- source_event = self . source ,
392+ source_event = event1 ,
351393 )
352394 self .assertEqual (self .test_user .number_of_penalties (), 0 )
353395 self .assertEqual (
354396 (inactive .exact_expiration .month , inactive .exact_expiration .day ), (12 , 21 )
355397 )
356398
357399 # This penalty is set to expire the same day as the freeze
400+ event2 = Event .objects .create (
401+ title = "A simple event" ,
402+ event_type = 0 ,
403+ start_time = mock_now ().replace (day = 2 ),
404+ end_time = mock_now ().replace (day = 2 ),
405+ )
358406 active = Penalty .objects .create (
359- created_at = mock_now ().replace (day = 2 ),
360407 user = self .test_user ,
361408 reason = "active" ,
362409 weight = 1 ,
363- source_event = self . source ,
410+ source_event = event2 ,
364411 )
365412 self .assertEqual (self .test_user .number_of_penalties (), 1 )
366413 self .assertEqual (
0 commit comments