Ignore:
Timestamp:
18 Feb 2015, 12:36:02 (10 years ago)
Author:
Henrik Bettermann
Message:

StudentOnlinePaymentProcessor?: Raise DuplicationError? if payment
(in state paid) with same p_session and p_category exists.

See ticket Uniben #970.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • main/waeup.kofa/trunk/src/waeup/kofa/students/tests/test_batching.py

    r12515 r12623  
    3434
    3535from waeup.kofa.app import University
    36 from waeup.kofa.interfaces import IBatchProcessor, FatalCSVError, IUserAccount
     36from waeup.kofa.interfaces import (
     37    IBatchProcessor, FatalCSVError, IUserAccount, DuplicationError)
    3738from waeup.kofa.students.batching import (
    3839    StudentProcessor, StudentStudyCourseProcessor,
     
    982983        payment = createObject(u'waeup.StudentOnlinePayment')
    983984        payment.p_id = 'p120'
     985        payment.p_session = 2012
     986        payment.p_category = 'schoolfee'
     987        payment.p_state = 'paid'
    984988        self.student['payments'][payment.p_id] = payment
    985989
     
    10461050        self.assertEqual(len(self.student['payments'].keys()),3)
    10471051        self.assertEqual(self.student['payments']['p560'].p_id, 'p560')
     1052        # Requirement added on 19/02/2015: same payment must not exist.
     1053        payment3 = createObject(u'waeup.StudentOnlinePayment')
     1054        payment3.p_id = 'p456'
     1055        payment3.p_session = 2012
     1056        payment3.p_category = 'schoolfee'
     1057        self.assertRaises(
     1058            DuplicationError, self.processor.addEntry, payment3,
     1059            dict(student_id=self.student.student_id, p_id='p456'), self.app)
    10481060
    10491061    def test_checkConversion(self):
     
    11101122            'p_item=BTECHBDT, creation_date=2010-02-15 13:19:01+00:00, '
    11111123            'p_category=schoolfee, amount_auth=19500.0, p_current=True, '
     1124            'p_session=2009, '
    11121125            'p_id=p1266236341955, r_code=00, r_amount_approved=19500.0, '
    11131126            'p_state=paid'
     
    11181131            'p_item=BTECHBDT, creation_date=2010-02-15 13:19:01+00:00, '
    11191132            'p_category=schoolfee, amount_auth=19500.6, p_current=True, '
     1133            'p_session=2011, '
    11201134            'p_id=ABC-11-1234567890, r_code=SC, r_amount_approved=19500.0, '
    11211135            'p_state=paid'
     
    11531167        num, num_warns, fin_file, fail_file = self.processor.doImport(
    11541168            self.csv_file2, PAYMENT_CREATE_HEADER_FIELDS,'create')
    1155         self.assertEqual(num_warns,0)
    1156         shutil.rmtree(os.path.dirname(fin_file))
    1157         self.assertEqual(len(self.app['students']['X666666']['payments']), 50)
     1169        # One payment with same session and category exists
     1170        self.assertEqual(num_warns,1)
     1171        content = open(fail_file).read()
     1172        self.assertTrue(
     1173            '1,942,online,BTECHBDT,2010/11/26 19:59:33.744 GMT+1,0,'
     1174            '19500,schoolfee,19500,2015,paid,'
     1175            'Same payment has already been made. Skipping.'
     1176            in content)
     1177        shutil.rmtree(os.path.dirname(fin_file))
     1178        self.assertEqual(len(self.app['students']['X666666']['payments']), 13)
    11581179
    11591180class StudentVerdictProcessorTest(StudentImportExportSetup):
Note: See TracChangeset for help on using the changeset viewer.