|
1 |
| -import calendar |
2 | 1 | import time
|
3 | 2 | from datetime import datetime, timezone # pylint: disable=E0611
|
4 | 3 |
|
5 |
| -from dateutil.parser import parse as parse_date |
6 | 4 | from django.contrib.auth.models import User
|
7 | 5 | from django.test.utils import override_settings
|
8 | 6 | from django.urls import reverse
|
@@ -65,12 +63,24 @@ def test_countdown_with_extended_rounds(self):
|
65 | 63 | @override_settings(CONTEST_MODE=ContestMode.neutral)
|
66 | 64 | def test_admin_time(self):
|
67 | 65 | self.assertTrue(self.client.login(username='test_admin'))
|
68 |
| - session = self.client.session |
69 |
| - session['admin_time'] = datetime(2012, 12, 12, tzinfo=timezone.utc).isoformat() |
70 |
| - session.save() |
| 66 | + # As seconds since the epoch |
| 67 | + changed_time = datetime(2012, 12, 12, tzinfo=timezone.utc).timestamp() |
| 68 | + response = self.client.get(reverse('get_status')).json() |
| 69 | + current_time = response['time'] |
| 70 | + post_data = {'ok-button': '', 'admin-time': '2012-12-12+0:0:0'} |
| 71 | + post_url = reverse('admin_time') |
| 72 | + |
| 73 | + response = self.client.post(post_url, post_data, follow=True) |
| 74 | + self.assertEqual(response.status_code, 200) |
71 | 75 | response = self.client.get(reverse('get_status')).json()
|
72 | 76 | self.assertTrue(response['is_admin_time_set'])
|
73 |
| - self.assertEqual( |
74 |
| - response['time'], |
75 |
| - calendar.timegm(parse_date(session['admin_time']).timetuple()), |
76 |
| - ) |
| 77 | + self.assertEqual(response['time'], changed_time) |
| 78 | + |
| 79 | + post_data = {'reset-button': '', 'admin-time': '2012-12-12+0:0:0'} |
| 80 | + |
| 81 | + response = self.client.post(post_url, post_data, follow=True) |
| 82 | + self.assertEqual(response.status_code, 200) |
| 83 | + response = self.client.get(reverse('get_status')).json() |
| 84 | + self.assertFalse(response['is_admin_time_set']) |
| 85 | + # This test shouldn't take more than a minute. |
| 86 | + self.assertLess(abs(response['time'] - current_time), 60) |
0 commit comments