Source code for oioioi.maintenancemode.tests

from django.test.utils import override_settings
from django.urls import reverse

from oioioi.base.tests import TestCase
from oioioi.maintenancemode.models import get_maintenance_mode, set_maintenance_mode


[docs]class TestMaintenanceMode(TestCase):
[docs] fixtures = ['test_users']
[docs] def test_set_maintenance(self): set_maintenance_mode(True, 'test') info = get_maintenance_mode() self.assertEqual('test', info['message']) self.assertEqual(True, info['state']) set_maintenance_mode(False) info = get_maintenance_mode() self.assertEqual('', info['message']) self.assertEqual(False, info['state'])
[docs] def test_not_logged_redirect(self): set_maintenance_mode(True, 'test message') response = self.client.get('/', follow=True) self.assertRedirects(response, reverse('maintenance')) self.assertEqual(response.context['message'], 'test message') self.assertContains(response, 'test message') response = self.client.get(reverse('login')) self.assertEqual(response.status_code, 200)
[docs] def test_logged_user_redirect(self): set_maintenance_mode(True, 'test message') self.assertTrue(self.client.login(username='test_user')) response = self.client.get('/', follow=True) self.assertRedirects(response, reverse('maintenance')) self.assertContains(response, 'test message') response = self.client.post( reverse('logout'), { 'user': 'test_user', 'backend': 'django.contrib.auth.backends.ModelBackend', }, ) self.assertEqual(response.status_code, 302)
@override_settings(DEFAULT_GLOBAL_PORTAL_AS_MAIN_PAGE=False)
[docs] def test_logged_admin_no_redirect(self): set_maintenance_mode(True, 'test message') self.assertTrue(self.client.login(username='test_admin')) response = self.client.get('/') self.assertEqual(response.status_code, 200)
@override_settings(DEFAULT_GLOBAL_PORTAL_AS_MAIN_PAGE=False)
[docs] def test_maintenance_off(self): set_maintenance_mode(False) response = self.client.get(reverse('maintenance')) self.assertRedirects(response, '/')
@override_settings(DEFAULT_GLOBAL_PORTAL_AS_MAIN_PAGE=False)
[docs] def test_su_no_redirect(self): set_maintenance_mode(True, 'test message') self.assertTrue(self.client.login(username='test_admin')) self.client.post( reverse('su'), { 'user': 'test_user', 'backend': 'django.contrib.auth.backends.ModelBackend', }, ) response = self.client.get('/') self.assertEqual(response.status_code, 200)
[docs] def test_admin_change_message(self): set_maintenance_mode(False) self.assertTrue(self.client.login(username='test_admin')) self.client.post( reverse('set_maintenance_mode'), { 'message': 'new test message', 'set_button': 1, }, ) info = get_maintenance_mode() self.assertEqual('new test message', info['message']) self.assertEqual(True, info['state']) self.client.post( reverse('set_maintenance_mode'), { 'turn_off_button': 1, }, ) info = get_maintenance_mode() self.assertEqual(False, info['state'])