from django.test import TestCase from django.test import Client from django.contrib.auth.models import User from django.conf import settings from .forms import ITForm, WorkingForm class LoginTestCase(TestCase): def setUp(self): self.client = Client() self.user = User.objects.create_user('vladimir', 'vladimir@reiherzehe.com', 'reiherzehe') self.client.login(username='vladimir', password='reiherzehe') self.response = self.client.get('/') def testLogin(self): self.assertContains(self.response, 'Du bist eingeloggt als vladimir@reiherzehe.com', status_code=200) def testDebugWarning(self): with self.settings(DEBUG=True): self.response = self.client.get('/') # we need to do it again with DEBUG = True self.assertContains(self.response, "WARNUNG! Test-MODUS aktiviert. Es werden keine Mails verschickt!", status_code=200) with self.settings(DEBUG=False) and self.settings(MAILTEST=False): self.response = self.client.get('/') # we need to do it again with DEBUG = False self.assertNotContains(self.response, "WARNUNG! Test-MODUS aktiviert. Es werden keine Mails verschickt!", status_code=200) def testWizzard(self): ''' this test goes thru the whole process of the EvaFormView from start to end ''' self.assertEqual(200, self.response.status_code) response = self.client.post('/', { 'eva_form_view-current_step': '0', '0-firstname': 'Ara', '0-lastname': 'Seva', '0-department': 'CENT', }) #print(response.context) self.assertFalse(response.context['form'].is_bound) print(response.context['wizard']['steps']) self.assertEqual( type(response.context['wizard']['form']), WorkingForm ) response = self.client.post('/', { 'eva_form_view-current_step': '1', '1-firstdate_employment': '2021-01-01', '1-firstdate_presence': '2021-01-01', '1-jobdescription_german': 'hau drauf', '1-jobdescription_english': 'und schluss', '1-works_in_gs': False }, follow=True) if 'form' in response.context: self.assertFalse(response.context['form'].errors) else: raise "NO FORM FOUND" response = self.client.post('/', { 'eva_form_view-current_step': '2', '2-vendor': 'STANDARD', '2-os': 'UBU', '2-keyboard': 'DE', '2-language': 'GER' }, follow=True) if 'form' in response.context: self.assertFalse(response.context['form'].errors) else: raise "NO FORM FOUND" class NoLoginTestCase(TestCase): def setUp(self): self.client = Client() def test_details(self): response = self.client.get('/') self.assertEqual(response.status_code, 302) response2 = self.client.get(response.url) self.assertContains( response2, 'Bitte via Wolke einloggen:', status_code=200) class ITFORMTestCase(TestCase): def test_mac(self): form = ITForm(data={"vendor": 'MAC', 'os': 'UBU'}) #print (form.errors) self.assertEqual(form.non_field_errors(), ['Ein MAC sollte Mac OS installiert haben']) def test_ubu(self): form = ITForm(data={"vendor": 'STANDARD', 'os': 'UBU'}) #print (form.errors) self.assertNotEqual(form.non_field_errors(), ['Ein MAC sollte Mac OS installiert haben'])