## $Id: test_utils.py 17943 2024-10-16 12:21:57Z henrik $ ## ## Copyright (C) 2011 Uli Fouquet & Henrik Bettermann ## This program is free software; you can redistribute it and/or modify ## it under the terms of the GNU General Public License as published by ## the Free Software Foundation; either version 2 of the License, or ## (at your option) any later version. ## ## This program is distributed in the hope that it will be useful, ## but WITHOUT ANY WARRANTY; without even the implied warranty of ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ## GNU General Public License for more details. ## ## You should have received a copy of the GNU General Public License ## along with this program; if not, write to the Free Software ## Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ## import grok from hurry.workflow.interfaces import IWorkflowState from zope.component import getUtility, createObject from waeup.kofa.students.studylevel import StudentStudyLevel from waeup.kofa.students.tests.test_browser import StudentsFullSetup from waeup.kofa.students.interfaces import IStudentsUtils from waeup.kofa.students.studylevel import StudentStudyLevel from kofacustom.edopoly.testing import FunctionalLayer class StudentsUtilsTests(StudentsFullSetup): layer = FunctionalLayer def test_setMatricNumber(self): IWorkflowState(self.student).setState('school fee paid') site = grok.getSite() utils = getUtility(IStudentsUtils) site['configuration'].next_matric_integer = 1 site['configuration'].next_matric_integer_2 = 1 site['configuration'].next_matric_integer_3 = 1 self.student.matric_number = None # nd_ft self.certificate.study_mode ='nd_ft' msg, mnumber = utils.setMatricNumber(self.student) self.assertEqual(msg, 'Matriculation number cannot be set.') error, payment = utils.setPaymentDetails('clearance',self.student) payment.p_state = 'paid' self.student['payments']['any_key'] = payment msg, mnumber = utils.setMatricNumber(self.student) self.assertEqual(self.student.matric_number, 'fac1/ND/04/00001') self.assertEqual(site['configuration'].next_matric_integer, 2) self.assertEqual(msg, None) # hnd_ft self.student.matric_number = None self.certificate.study_mode ='hnd_ft' msg, mnumber = utils.setMatricNumber(self.student) self.assertEqual(self.student.matric_number, 'fac1/HD/04/00001') self.assertEqual(site['configuration'].next_matric_integer_2, 2) self.assertEqual(msg, None) # nd_pt self.student.matric_number = None self.certificate.study_mode ='nd_pt' msg, mnumber = utils.setMatricNumber(self.student) self.assertEqual(self.student.matric_number, 'fac1/PT/04/00001') self.assertEqual(site['configuration'].next_matric_integer_3, 2) self.assertEqual(msg, None) return def test_set_payment_details(self): self.student['studycourse'].certificate.school_fee_1 = 6666.0 self.student['studycourse'].certificate.study_mode = 'nd_pt' IWorkflowState(self.student).setState('returning') #self.student.nationality = u'NG' #self.student.lga = 'ebonyi_ukaba' utils = getUtility(IStudentsUtils) configuration = createObject('waeup.SessionConfiguration') configuration.academic_session = 2005 self.app['configuration'].addSessionConfiguration(configuration) self.app['configuration']['2004'].ict_entre_fee = 4170.0 self.app['configuration']['2005'].ict_entre_fee = 2180.0 self.app['configuration']['2004'].union_fee = 1234.0 self.app['configuration']['2005'].union_fee = 1434.0 error, payment = utils.setPaymentDetails('schoolfee',self.student) self.assertEqual(error, u'Pay ICT fee(s) first.') error, payment = utils.setPaymentDetails('ict_entre',self.student) self.assertEqual(error, None) self.assertEqual(payment.p_level, 200) self.assertEqual(payment.p_session, 2005) self.assertEqual(payment.amount_auth, 2180.0) payment.p_state = 'paid' self.student['payments']['any_key'] = payment #error, payment = utils.setPaymentDetails('union',self.student) #self.assertEqual(error, None) #self.assertEqual(payment.p_level, 200) #self.assertEqual(payment.p_session, 2005) #self.assertEqual(payment.amount_auth, 1434.0) #payment.p_state = 'paid' #self.student['payments']['any_key_2'] = payment error, payment = utils.setPaymentDetails('schoolfee',self.student) self.assertEqual(error, None) self.assertEqual(payment.p_level, 200) self.assertEqual(payment.p_session, 2005) self.assertEqual(payment.amount_auth, 6666.0) IWorkflowState(self.student).setState('cleared') error, payment = utils.setPaymentDetails('ict_entre',self.student) self.assertEqual(error, None) self.assertEqual(payment.p_level, 100) self.assertEqual(payment.p_session, 2004) self.assertEqual(payment.amount_auth, 4170.0) payment.p_state = 'paid' self.student['payments']['any_key_3'] = payment error, payment = utils.setPaymentDetails('union',self.student) self.assertEqual(error, None) self.assertEqual(payment.p_level, 100) self.assertEqual(payment.p_session, 2004) self.assertEqual(payment.amount_auth, 1234.0) payment.p_state = 'paid' self.student['payments']['any_key_4'] = payment error, payment = utils.setPaymentDetails('schoolfee',self.student) self.assertEqual(error, None) self.assertEqual(payment.p_level, 100) self.assertEqual(payment.p_session, 2004) self.assertEqual(payment.amount_auth, 6666.0) IWorkflowState(self.student).setState('admitted') error, payment = utils.setPaymentDetails('schoolfee',self.student) self.assertEqual(error, u'Please proceed for clearance before paying school fees.')