from django.test import TestCase
from .models import (
Profile, User, Workshop, WorkshopType,
RequestedWorkshop, BookedWorkshop, ProposeWorkshopDate
)
from datetime import datetime
# Setup for Model Test
def setUpModule():
'''
Sets up database
demo user as coordinator and test user as instructor
'''
demoUser1 = User.objects.create(username='demouser1',
email='test.user@gmail.com', password='pass@123')
demoUser2 = User.objects.create(username='demouser2',
email='test.user@gmail.com', password='pass@123')
testUser1 = User.objects.create(username='testuser1',
email='test.user@gmail.com',password='pass@123')
testUser2 = User.objects.create(username='testuser2',
email='test.user@gmail.com', password='pass@123')
instructor_profile = Profile.objects.create(user=testUser2, position='instructor',
department='cs', institute='ace', phone_number='1122334456',
is_email_verified=1)
coordinator_profile = Profile.objects.create(user=demoUser2, position='coordinator',
department='IT', institute='iit', phone_number='1122334456',
is_email_verified=1)
workshoptype1 = WorkshopType.objects.create(workshoptype_name='ISCP',
workshoptype_description='Introduction to Scientific Computing in\
Python
> Numpy
> Matplotlib
> iPython
',
workshoptype_duration='1day, 8hours a day')
requested_workshop = RequestedWorkshop.objects.create(
requested_workshop_instructor=testUser2,
requested_workshop_coordinator=demoUser2,
requested_workshop_title=workshoptype1,
requested_workshop_date='2017-07-24'
)
propose_workshop = ProposeWorkshopDate.objects.create(
proposed_workshop_coordinator=demoUser2,
proposed_workshop_instructor=testUser2,
proposed_workshop_title=workshoptype1,
proposed_workshop_date='2017-07-06',
condition_one=1,
condition_two=1,
condition_three=1
)
def tearDownModule():
User.objects.all().delete()
Profile.objects.all().delete()
ProposeWorkshopDate.objects.all().delete()
RequestedWorkshop.objects.all().delete()
WorkshopType.objects.all().delete()
class ProfileModelTest(TestCase):
'''
This class tests the Profile Model
'''
def setUp(self):
'''
setsup profile for instructor and coordinator
'''
self.testuser1 = User.objects.get(username='testuser1')
self.demouser1 = User.objects.get(username='demouser1')
self.instructor_profile1 = Profile.objects.create(user=self.testuser1, position='instructor',
department='cs', institute='ace', phone_number='1123323344558899192',
is_email_verified=1)
self.coordinator_profile1 = Profile.objects.create(user=self.demouser1, position='coordinator',
department='IT', institute='iit', phone_number='112233',
is_email_verified=1)
def test_profile_model(self):
self.assertEqual(self.demouser1.email,'test.user@gmail.com')
self.assertEqual(self.testuser1.email,'test.user@gmail.com')
self.assertEqual(self.instructor_profile1.position,'instructor')
self.assertEqual(self.coordinator_profile1.position,'coordinator')
class WorkshopTypeModelTest(TestCase):
'''
This class tests the WorkshopType Model
'''
def setUp(self):
self.workshoptype1 = WorkshopType.objects.create(workshoptype_name='ISCP',
workshoptype_description='Introduction to Scientific Computing in\
Python
> Numpy
> Matplotlib
> iPython
',
workshoptype_duration='1day, 8hours a day')
self.workshoptype2 = WorkshopType.objects.create(workshoptype_name='Basic Python',
workshoptype_description='Basic Python
> DataTypes
\
> Conditions
> Loops
> Functions'
,workshoptype_duration='3days, 8hours a day')
def test_workshoptype_model(self):
self.assertEqual(self.workshoptype2.workshoptype_duration,'3days, 8hours a day')
self.assertEqual(self.workshoptype1.workshoptype_name, 'ISCP')
class WorkshopModelTest(TestCase):
'''
This class tests the Workshop Model
'''
def setUp(self):
self.testuser2 = User.objects.get(username='testuser2')
self.instructor_profile = Profile.objects.get(user=self.testuser2)
self.workshoptype = WorkshopType.objects.get(workshoptype_name='ISCP')
self.workshop = Workshop.objects.create(workshop_instructor=self.testuser2,
workshop_title=self.workshoptype,
recurrences='RRULE:FREQ=WEEKLY;UNTIL=20170629T183000Z;BYDAY=TH')
def test_workshop_model(self):
self.assertEqual(self.workshop.workshop_title.workshoptype_name,'ISCP' )
self.assertEqual(self.workshop.recurrences.rrules[0].__dict__['freq'],2)
class RequestedWorkshopModelTest(TestCase):
'''
This class tests the RequestedWorkshop Model
'''
def setUp(self):
self.testuser2 = User.objects.get(username='testuser2')
self.demouser2 = User.objects.get(username='demouser2')
self.workshoptype = WorkshopType.objects.get(workshoptype_name='ISCP')
self.requestedworkshop = RequestedWorkshop.objects.create(
requested_workshop_instructor=self.testuser2,
requested_workshop_coordinator=self.demouser2,
requested_workshop_title=self.workshoptype,
requested_workshop_date='2017-05-24'
)
def test_requestedworkshop_model(self):
self.assertEqual(self.requestedworkshop.requested_workshop_date, '2017-05-24')
self.assertEqual(self.requestedworkshop.status, 'Pending')
class ProposedWorkshopDateModelTest(TestCase):
'''
This class tests the ProposeWorkshopDate Model
'''
def setUp(self):
self.testuser2 = User.objects.get(username='testuser2')
self.demouser2 = User.objects.get(username='demouser2')
self.workshoptype = WorkshopType.objects.get(workshoptype_name='ISCP')
self.propose_workshop = ProposeWorkshopDate.objects.create(
proposed_workshop_coordinator=self.demouser2,
proposed_workshop_instructor=self.testuser2,
proposed_workshop_title=self.workshoptype,
proposed_workshop_date='2017-06-06',
condition_one=1,
condition_two=1,
condition_three=1
)
def test_proposedworkshopdate_model(self):
self.assertEqual(self.propose_workshop.proposed_workshop_title.workshoptype_name,'ISCP')
self.assertEqual(self.propose_workshop.condition_three, 1)
self.assertEqual(self.propose_workshop.status, 'Pending')
class BookedWorkshopModelTest(TestCase):
'''
This class tests the BookedWorkshop Model
'''
def setUp(self):
self.requestedworkshop = RequestedWorkshop.objects.get(requested_workshop_date='2017-07-24')
self.propose_workshop = ProposeWorkshopDate.objects.get(proposed_workshop_date='2017-07-06')
self.bwr = BookedWorkshop.objects.create(booked_workshop_requested=self.requestedworkshop)
self.bwp = BookedWorkshop.objects.create(booked_workshop_proposed=self.propose_workshop)
def test_bookedworkshop_model(self):
self.assertEqual(self.bwp.booked_workshop_proposed.condition_one,1)
self.assertEqual(self.bwr.booked_workshop_requested.requested_workshop_title.workshoptype_name,
'ISCP' )