Changeset 9797 for main/waeup.kofa/trunk/src/waeup/kofa/utils
- Timestamp:
- 13 Dec 2012, 15:39:31 (12 years ago)
- Location:
- main/waeup.kofa/trunk/src/waeup/kofa/utils
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
main/waeup.kofa/trunk/src/waeup/kofa/utils/batching.py
r9739 r9797 480 480 return 481 481 482 def get_filtered(self, site, **kw): 483 """Get datasets to export filtered by keyword arguments. 484 485 Returns an iterable. 486 """ 487 raise NotImplementedError 488 482 489 def export(self, iterable, filepath=None): 483 490 """Export `iterable` as CSV file. … … 497 504 raise NotImplementedError 498 505 499 500 def export_job(site, exporter_name): 506 def export_filtered(self, site, filepath=None, **kw): 507 """Export items denoted by `args` and `kw`. 508 509 If `filepath` is ``None``, a raw string with CSV data should 510 be returned. 511 """ 512 data = self.get_filtered(site, **kw) 513 return self.export(data, filepath=filepath) 514 515 def export_job(site, exporter_name, **kw): 501 516 """Export all entries delivered by exporter and store it in a temp file. 502 517 … … 524 539 filename = '%s.csv' % exporter_name 525 540 output_path = os.path.join(output_dir, filename) 526 exporter.export_all(site, filepath=output_path) 541 if kw == {}: 542 exporter.export_all(site, filepath=output_path) 543 else: 544 exporter.export_filtered(site, filepath=output_path, **kw) 527 545 return output_path 528 546 -
main/waeup.kofa/trunk/src/waeup/kofa/utils/tests/test_batching.py
r9739 r9797 87 87 """ 88 88 89 SAMPLE_FILTERED_DATA = """name,dinoports,owner,taxpayer 90 Barneys Home,2,Barney,1 91 Wilmas Asylum,1,Wilma,1 92 """ 93 89 94 class CaveProcessor(BatchProcessor): 90 95 util_name = 'caveprocessor' … … 334 339 return 335 340 341 def test_export_filtered(self): 342 # we can pass in positional and keyword args 343 exporter = ExporterBase() 344 writer, outfile = exporter.get_csv_writer(filepath=self.workfile) 345 self.assertRaises(NotImplementedError, exporter.export_filtered, 346 'foo', bar='bar') 347 return 336 348 337 349 class CaveExporter(ExporterBase): … … 344 356 return SAMPLE_DATA 345 357 open(filepath, 'wb').write(SAMPLE_DATA) 358 return 359 360 def export_filtered(self, site, filepath=None, foo=None, bar=None): 361 if foo or bar: 362 open(filepath, 'wb').write(SAMPLE_FILTERED_DATA) 363 return 364 self.export_all(site, filepath=filepath) 346 365 return 347 366 … … 375 394 verify.verifyClass(IExportJob, AsyncExportJob) 376 395 verify.verifyObject(IExportJob, job) 396 return 397 398 def test_export_job_with_args(self): 399 # we export filtered sets 400 result_path = export_job(None, 'cave_exporter', foo='foo') 401 contents = open(result_path, 'rb').read() 402 shutil.rmtree(os.path.dirname(result_path)) 403 self.assertEqual(contents, SAMPLE_FILTERED_DATA) 377 404 return 378 405
Note: See TracChangeset for help on using the changeset viewer.