Ignore:
Timestamp:
13 Dec 2012, 15:39:31 (12 years ago)
Author:
uli
Message:

Local exports for departments.

File:
1 edited

Legend:

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

    r9788 r9797  
    183183        exporter = StudentsExporter()
    184184
    185         exporter.export_filtered(self.app, None, None, filepath=self.outfile)
     185        exporter.export_filtered(
     186            self.app, self.outfile,
     187            current_session=None, current_level=None)
    186188        result1 = open(self.outfile, 'rb').read()
    187         exporter.export_filtered(self.app, 2012, None, filepath=self.outfile)
     189        exporter.export_filtered(
     190            self.app, self.outfile,
     191            current_session=2012, current_level=None)
    188192        result2 = open(self.outfile, 'rb').read()
    189         exporter.export_filtered(self.app, None, 200, filepath=self.outfile)
     193        exporter.export_filtered(
     194            self.app, self.outfile,
     195            current_session=None, current_level=200)
    190196        result3 = open(self.outfile, 'rb').read()
    191         exporter.export_filtered(self.app, 2011, None, filepath=self.outfile)
     197        exporter.export_filtered(
     198            self.app, self.outfile,
     199            current_session=2011, current_level=None)
    192200        result4 = open(self.outfile, 'rb').read()
    193         exporter.export_filtered(self.app, None, 100, filepath=self.outfile)
     201        exporter.export_filtered(
     202            self.app, self.outfile,
     203            current_session=None, current_level=100)
    194204        result5 = open(self.outfile, 'rb').read()
    195205        self.assertTrue(self.std_csv_entry in result1)
     
    207217        exporter = StudentsExporter()
    208218
    209         exporter.export_filtered(self.app, 2012, 200, depcode='NA',
    210                                  filepath=self.outfile)
     219        exporter.export_filtered(
     220            self.app, self.outfile,
     221            current_session=2012, current_level=200, depcode='NA')
    211222        result1 = open(self.outfile, 'rb').read()
    212         exporter.export_filtered(self.app, 2012, 200, depcode='NODEPT',
    213                                  filepath=self.outfile)
     223        exporter.export_filtered(
     224            self.app, self.outfile,
     225            current_session=2012, current_level=200, depcode='NODEPT')
    214226        result2 = open(self.outfile, 'rb').read()
    215227        self.assertTrue(self.std_csv_entry in result1)
     
    225237
    226238        exporter.export_filtered(
    227             self.app, 2012, 200, faccode='NA', filepath=self.outfile)
     239            self.app, self.outfile,
     240            current_session=2012, current_level=200, faccode='NA')
    228241        result1 = open(self.outfile, 'rb').read()
    229         exporter.export_filtered(self.app, 2012, 200, faccode='NOFAC',
    230                                  filepath=self.outfile)
     242        exporter.export_filtered(
     243            self.app, self.outfile,
     244            current_session=2012, current_level=200, faccode='NOFAC')
    231245        result2 = open(self.outfile, 'rb').read()
    232246        self.assertTrue(self.std_csv_entry in result1)
     
    234248        return
    235249
    236 
    237250class StudentStudyCourseExporterTest(StudentImportExportSetup):
    238251
     
    247260        # make sure we fullfill interface contracts
    248261        obj = StudentStudyCourseExporter()
    249         verifyObject(ICSVExporter, obj)
    250         verifyClass(ICSVExporter, StudentStudyCourseExporter)
     262        verifyObject(ICSVStudentExporter, obj)
     263        verifyClass(ICSVStudentExporter, StudentStudyCourseExporter)
    251264        return
    252265
     
    320333        return
    321334
     335    def test_export_filtered(self):
     336        # we can export studycourses of a filtered set of students
     337        self.setup_student(self.student)
     338        self.app['students'].addStudent(self.student)
     339        notify(grok.ObjectModifiedEvent(self.student))
     340
     341        exporter = StudentStudyCourseExporter()
     342        exporter.export_filtered(
     343            self.student, self.outfile, current_session=2012)
     344        result = open(self.outfile, 'rb').read()
     345        self.assertEqual(
     346            result,
     347            'certificate,current_level,current_session,current_verdict,'
     348            'entry_mode,entry_session,previous_verdict,student_id\r\n'
     349
     350            'CERT1,200,2012,0,ug_ft,2010,0,A111111\r\n'
     351            )
     352        return
     353
     354
     355
    322356class StudentStudyLevelExporterTest(StudentImportExportSetup):
    323357
     
    332366        # make sure we fullfill interface contracts
    333367        obj = StudentStudyLevelExporter()
    334         verifyObject(ICSVExporter, obj)
    335         verifyClass(ICSVExporter, StudentStudyLevelExporter)
     368        verifyObject(ICSVStudentExporter, obj)
     369        verifyClass(ICSVStudentExporter, StudentStudyLevelExporter)
    336370        return
    337371
     
    406440        return
    407441
     442    def test_export_filtered(self):
     443        # we can export studylevels of a filtered set of students
     444        self.setup_student(self.student)
     445        self.app['students'].addStudent(self.student)
     446        notify(grok.ObjectModifiedEvent(self.student))
     447
     448        exporter = StudentStudyLevelExporter()
     449        exporter.export_filtered(
     450            self.student, self.outfile, current_level=200)
     451        result = open(self.outfile, 'rb').read()
     452        self.assertEqual(
     453            result,
     454            'gpa,level,level_session,level_verdict,total_credits,'
     455            'validated_by,validation_date,'
     456            'student_id,number_of_tickets,certcode\r\n'
     457            '0.0,100,2012,A,100,,,A111111,1,CERT1\r\n'
     458            )
     459        return
     460
    408461class CourseTicketExporterTest(StudentImportExportSetup):
    409462
     
    418471        # make sure we fullfill interface contracts
    419472        obj = CourseTicketExporter()
    420         verifyObject(ICSVExporter, obj)
    421         verifyClass(ICSVExporter, CourseTicketExporter)
     473        verifyObject(ICSVStudentExporter, obj)
     474        verifyClass(ICSVStudentExporter, CourseTicketExporter)
    422475        return
    423476
     
    489542        return
    490543
     544    def test_export_filtered(self):
     545        # we can export studylevels of a filtered set of students
     546        self.setup_student(self.student)
     547        self.app['students'].addStudent(self.student)
     548        notify(grok.ObjectModifiedEvent(self.student))
     549
     550        exporter = CourseTicketExporter()
     551        exporter.export_filtered(
     552            self.student, self.outfile, current_level=200)
     553        result = open(self.outfile, 'rb').read()
     554        self.assertEqual(
     555            result,
     556            'automatic,carry_over,code,credits,dcode,fcode,level,mandatory,'
     557            'passmark,score,semester,title,student_id,certcode\r\n'
     558            '1,1,CRS1,100,DEP1,FAC1,100,0,100,,2,Course 1,A111111,CERT1\r\n'
     559            )
     560        return
     561
    491562class PaymentsExporterTest(StudentImportExportSetup):
    492563
     
    501572        # make sure we fullfill interface contracts
    502573        obj = PaymentsExporter()
    503         verifyObject(ICSVExporter, obj)
    504         verifyClass(ICSVExporter, PaymentsExporter)
     574        verifyObject(ICSVStudentExporter, obj)
     575        verifyClass(ICSVStudentExporter, PaymentsExporter)
    505576        return
    506577
     
    586657        return
    587658
     659    def test_export_filtered(self):
     660        # we can export payments of a filtered set of students
     661        self.setup_student(self.student)
     662        self.app['students'].addStudent(self.student)
     663        notify(grok.ObjectModifiedEvent(self.student))
     664
     665        exporter = PaymentsExporter()
     666        exporter.export_filtered(
     667            self.student, self.outfile, current_level=200)
     668        result = open(self.outfile, 'rb').read()
     669        self.assertEqual(
     670            result,
     671            'ac,amount_auth,creation_date,p_category,p_current,p_id,'
     672            'p_item,p_level,p_session,p_state,payment_date,r_amount_approved,'
     673            'r_code,r_desc,student_id,student_state,current_session\r\n'
     674
     675            '666,0.0,2012-04-01 13:12:01,schoolfee,1,my-id,'
     676            'p-item,100,2012,unpaid,2012-04-01 14:12:01,12.12,'
     677            'r-code,,A111111,created,2012\r\n'
     678            )
     679        return
     680
    588681class BedTicketsExporterTest(StudentImportExportSetup):
    589682
     
    598691        # make sure we fullfill interface contracts
    599692        obj = BedTicketsExporter()
    600         verifyObject(ICSVExporter, obj)
    601         verifyClass(ICSVExporter, BedTicketsExporter)
     693        verifyObject(ICSVStudentExporter, obj)
     694        verifyClass(ICSVStudentExporter, BedTicketsExporter)
    602695        return
    603696
     
    673766        return
    674767
     768    def test_export_filtered(self):
     769        # we can export payments of a filtered set of students
     770        self.setup_student(self.student)
     771        self.app['students'].addStudent(self.student)
     772        notify(grok.ObjectModifiedEvent(self.student))
     773
     774        exporter = BedTicketsExporter()
     775        exporter.export_filtered(
     776            self.student, self.outfile, current_level=200)
     777        result = open(self.outfile, 'rb').read()
     778        self.assertMatches(
     779            result,
     780            'bed,bed_coordinates,bed_type,booking_code,booking_date,'
     781            'booking_session,student_id,actual_bed_type\r\n'
     782            'hall-1_A_101_A,,any bed type,,<YYYY-MM-DD hh:mm:ss>.<6-DIGITS>,'
     783            '2004,A111111,regular_male_fr\r\n')
     784        return
     785
     786
    675787class StudentPaymentsOverviewExporterTest(StudentImportExportSetup):
    676788
     
    685797        # make sure we fullfill interface contracts
    686798        obj = StudentPaymentsOverviewExporter()
    687         verifyObject(ICSVExporter, obj)
    688         verifyClass(ICSVExporter, StudentPaymentsOverviewExporter)
     799        verifyObject(ICSVStudentExporter, obj)
     800        verifyClass(ICSVStudentExporter, StudentPaymentsOverviewExporter)
    689801        return
    690802
     
    744856    def test_ifaces(self):
    745857        obj = StudentStudyLevelsOverviewExporter()
    746         verifyObject(ICSVExporter, obj)
    747         verifyClass(ICSVExporter, StudentStudyLevelsOverviewExporter)
     858        verifyObject(ICSVStudentExporter, obj)
     859        verifyClass(ICSVStudentExporter, StudentStudyLevelsOverviewExporter)
    748860        return
    749861
Note: See TracChangeset for help on using the changeset viewer.