Changeset 8371 for main/waeup.kofa/trunk/src/waeup/kofa/students/tests
- Timestamp:
- 6 May 2012, 14:33:14 (13 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
main/waeup.kofa/trunk/src/waeup/kofa/students/tests/test_export.py
r8341 r8371 1 import datetime 1 2 from zope.component import queryUtility 2 3 from zope.interface.verify import verifyObject, verifyClass … … 4 5 from waeup.kofa.students.export import ( 5 6 StudentsExporter, StudentStudyCourseExporter, StudentStudyLevelExporter, 6 CourseTicketExporter) 7 CourseTicketExporter, PaymentsExporter) 8 from waeup.kofa.students.payments import StudentOnlinePayment 7 9 from waeup.kofa.students.student import StudentStudyCourse 8 10 from waeup.kofa.students.studylevel import StudentStudyLevel, CourseTicket … … 273 275 ) 274 276 return 277 278 class PaymentsExporterTest(StudentImportExportSetup): 279 280 layer = FunctionalLayer 281 282 def setUp(self): 283 super(PaymentsExporterTest, self).setUp() 284 self.setup_for_export() 285 return 286 287 def get_payment(self): 288 # get a payment with all fields set 289 payment = StudentOnlinePayment() 290 payment.creation_date = datetime.datetime(2012, 4, 1, 13, 12, 1) 291 payment.p_id = 'my-id' 292 payment.ac = u'666' 293 payment.p_item = u'p-item' 294 payment.p_level = 100 295 payment.p_session = 2012 296 payment.payment_date = datetime.datetime(2012, 4, 1, 14, 12, 1) 297 payment.r_amount_approved = 12.12 298 payment.r_code = u'r-code' 299 # XXX: there is no addPayment method to give predictable names 300 self.student['payments']['my-payment'] = payment 301 return payment 302 303 def test_ifaces(self): 304 # make sure we fullfill interface contracts 305 obj = PaymentsExporter() 306 verifyObject(ICSVExporter, obj) 307 verifyClass(ICSVExporter, PaymentsExporter) 308 return 309 310 def test_get_as_utility(self): 311 # we can get a payments exporter as utility 312 result = queryUtility(ICSVExporter, name="studentpayments") 313 self.assertTrue(result is not None) 314 return 315 316 def test_export_empty(self): 317 # we can export a nearly empty payment 318 payment = StudentOnlinePayment() 319 payment.creation_date = datetime.datetime(2012, 4, 1, 13, 12, 1) 320 exporter = PaymentsExporter() 321 exporter.export([payment], self.outfile) 322 result = open(self.outfile, 'rb').read() 323 self.assertEqual( 324 result, 325 'ac,amount_auth,creation_date,matric_number,p_category,p_id,' 326 'p_item,p_level,p_session,p_state,payment_date,r_amount_approved,' 327 'r_code,reg_number\r\n' 328 329 ',0.0,2012-04-01 13:12:01,,schoolfee,,,,,unpaid,,0.0,,\r\n' 330 ) 331 return 332 333 def test_export(self): 334 # we can really export student payments. 335 # set values we can expect in export file 336 self.setup_student(self.student) 337 payment = self.get_payment() 338 exporter = PaymentsExporter() 339 exporter.export([payment], self.outfile) 340 result = open(self.outfile, 'rb').read() 341 self.assertEqual( 342 result, 343 'ac,amount_auth,creation_date,matric_number,p_category,p_id,' 344 'p_item,p_level,p_session,p_state,payment_date,r_amount_approved,' 345 'r_code,reg_number\r\n' 346 347 '666,0.0,2012-04-01 13:12:01,M123456,schoolfee,my-id,' 348 'p-item,100,2012,unpaid,2012-04-01 14:12:01,12.12,' 349 'r-code,123456\r\n' 350 ) 351 return 352 353 def test_export_all(self): 354 # we can really export all payments 355 # set values we can expect in export file 356 self.setup_student(self.student) 357 self.get_payment() # adds new payment to student 358 exporter = PaymentsExporter() 359 exporter.export_all(self.app, self.outfile) 360 result = open(self.outfile, 'rb').read() 361 self.assertEqual( 362 result, 363 'ac,amount_auth,creation_date,matric_number,p_category,p_id,' 364 'p_item,p_level,p_session,p_state,payment_date,r_amount_approved,' 365 'r_code,reg_number\r\n' 366 367 '666,0.0,2012-04-01 13:12:01,M123456,schoolfee,my-id,' 368 'p-item,100,2012,unpaid,2012-04-01 14:12:01,12.12,' 369 'r-code,123456\r\n' 370 ) 371 return
Note: See TracChangeset for help on using the changeset viewer.