from django.test import TestCase, Client from django.conf import settings from django.contrib.auth.models import User from .models import HonoraryCertificate, Project, Account class TestWithoutLogin(TestCase): def setUp(self): #this supress an unwanted warning about missing root dir settings.WHITENOISE_AUTOREFRESH = True def test_set_granted(self): '''test if the model function set_granted() works as intended''' obj = HonoraryCertificate.objects.create(realname='hurzel',email='hurzel@web.de') self.assertEqual(obj.granted,None) HonoraryCertificate.set_granted(obj.pk, True) obj2 = HonoraryCertificate.objects.get(pk=obj.pk) self.assertEqual(obj2.granted,True) def test_source_link(self): '''test if link to source code is included in main page''' response = self.client.get('', follow=True) #print (response.content) self.assertContains(response,'Sourcecode') def test_access_denied(self): '''test if /intern redirects to login page if not logged in''' response = self.client.get('/intern', follow=True) self.assertContains(response,'password') class TestWithLogin(TestCase): def setUp(self): User.objects.create_superuser('testuser', 'nomail@nomail.com', 'testpasswd') self.client = Client() self.user = User.objects.create_user('vladimir', 'vladimir@reiherzehe.com', 'reiherzehe') def test_access(self): '''test if /intern gives an answer''' self.assertEqual(self.client.login(username='testuser', password='testpasswd'), True) response = self.client.get('/intern') self.assertContains(response,'Übersicht aller Förderangebote') def test_project_pid(self): ''' test if the project pid is resettet ad start of year''' # self.client.login(username='vladimir', password='reiherzehe') acc = Account.objects.create(code='1234', description='blabla') #acc.save() obj = Project.objects.create(account= acc, name='testproject', start='2022-01-01') #obj.save() print(f'pid: {obj.pid}') self.assertEqual(obj.pid,'1234000')