def testContractVerification(self): student, teacher = self.createStudentTeacher() contract = Contract(teacher=teacher, student=student) contract.save() # Case: Neither accepted # Expected: Acceptance Error Raised with self.assertRaises(AcceptenceError) as context: contract.start_contract() self.assertTrue('This is broken' in str(context.AcceptanceError)) assert (contract.status == contract.PENDING) # Case: Student not accepted # Expected: Acceptance Error Raised contract.teacher_accepted = True contract.student_accepted = False contract.save() with self.assertRaises(AcceptenceError) as context: contract.start_contract() self.assertTrue('This is broken' in str(context.AcceptanceError)) assert (contract.status == contract.PENDING) # Case: Teacher not accepted # Expected: Acceptance Error Raised contract.teacher_accepted = False contract.student_accepted = True contract.save() with self.assertRaises(AcceptenceError) as context: contract.start_contract() self.assertTrue('This is broken' in str(context.AcceptanceError)) assert (contract.status == contract.PENDING) # Case: Both accepted contract.teacher_accepted = True contract.student_accepted = True contract.start_contract() contract.save() assert (contract.student_accepted == True) assert (contract.teacher_accepted == True) assert (contract.status == contract.ACTIVE)