|
|
- from django.test import TestCase, Client
- from django.conf import settings
- from django.contrib.auth.models import User
- from django.http import HttpResponse
- from datetime import date
-
- from .models import HonoraryCertificate, Project, Account, Literature
- from .forms import LibraryForm
-
- class TestWithoutLogin(TestCase):
-
- def setUp(self):
- #this setting supress an unwanted warning about missing root dir
- settings.WHITENOISE_AUTOREFRESH = True
- self.client = Client()
-
- 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,'<a href="https://srcsrv.wikimedia.de/beba/foerderbarometer">Sourcecode</a>')
-
- 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')
-
- def _postform(self, data, expected_form):
- '''helper function to manage the Wizzard'''
- response = self.client.post('/', data, follow=True)
- # print(type(response))
- self.assertEqual(200, self.response.status_code)
- if not type(response) == HttpResponse:
- if 'form' in response.context:
- print('CONTENT')
- print(response.content)
- print('ITEMS')
- print(response.items())
- self.assertFalse(response.context['form'].errors)
- else:
- if expected_form:
- print(response.context)
- raise BaseException("NO FORM FOUND")
- else:
- self.assertContains(response,"Deine Anfrage wurde gesendet.")
- self.assertEqual(
- type(response.context['wizard']['form']),
- expected_form
- )
- return response
-
- def test_bib(self):
- '''full run through the forms to check Bibliotheksstipendium'''
- self.response = self.client.get('/')
- self.assertEqual(200, self.response.status_code)
-
- print("\n\nEINS EINS\n\n")
-
- response = self._postform({
- 'extern_view-current_step': '0',
- '0-realname': 'vladimir reiherzehe',
- '0-email': 'vlre@wikimedia.de',
- '0-username': 'stoffel',
- '0-choice': 'BIB',
- '0-check': True
- }, LibraryForm)
-
- print("\n\nZWEI ZWEI\n\n")
-
- response = self._postform({
- 'extern_view-current_step': '1',
- '1-cost': 'teuroooo!',
- '1-duration': 'looooong',
- '1-library': 'of congress',
- }, None)
-
-
-
- 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_of_year(self):
- ''' test if the finance id is resettet ad start of year'''
- acc = Account.objects.create()
- acc.code='1234'
- acc.description='blabla'
- acc.save()
- startdate = date(2022,1,1)
- obj = Project.objects.create(account= acc, name='testproject', start=startdate)
- self.assertEqual(obj.project_of_year,1)
-
- obj2 = Project.objects.create(account= acc, name='testproject2', start=startdate)
- self.assertEqual(obj2.project_of_year,2)
-
- olddate = date(2021,12,31)
- obj4 = Project.objects.create(account= acc, name='testproject2', start=olddate)
-
- obj3 = Project.objects.create(account= acc, name='testproject2', start=startdate)
- self.assertEqual(obj3.project_of_year,3)
-
- def test_finance_id(self):
- ''' test if the finance id is resettet ad start of year'''
- acc = Account.objects.create(code='1234', description='blabla')
- startdate = date(2022,1,1)
- obj = Project.objects.create(account= acc, name='testproject', start=startdate)
- self.assertEqual(obj.finance_id,"1234001")
-
- obj2 = Project.objects.create(account= acc, name='testproject2', start=startdate)
- self.assertEqual(obj2.finance_id,"1234002")
-
- olddate = date(2021,12,31)
- obj4 = Project.objects.create(account= acc, name='testproject2', start=olddate)
-
- obj3 = Project.objects.create(account= acc, name='testproject2', start=startdate)
- self.assertEqual(obj3.finance_id,"1234003")
-
- def test_pid(self):
- ''' test if the finance id is resettet ad start of year'''
- acc = Account.objects.create(code='1234', description='blabla')
- startdate = date(2022,1,1)
- obj = Project.objects.create(account= acc, name='testproject', start=startdate)
- self.assertEqual(obj.pid,"1234001")
- self.assertEqual(obj.account.code,"1234")
-
- obj2 = Project.objects.create(account= acc, name='testproject2', start=startdate)
- self.assertEqual(obj2.pid,"1234002")
-
- olddate = date(2021,12,31)
- obj4 = Project.objects.create(account= acc, name='testproject2', start=olddate)
-
- obj3 = Project.objects.create(account= acc, name='testproject2', start=startdate)
- self.assertEqual(obj3.pid,"1234004")
-
- def test_literature(self):
- obj = Literature.objects.create(cost='100', notes='jolo')
- self.assertEqual(obj.service_id,'Literature1')
|