示例#1
0
文件: tests.py 项目: ZackaryG/IFB299
    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)