def process_csv_file(self): o = getattr(self.request, 'event', self.request.organizer) try: data = csvimport.get_rows_from_file(self.request.FILES['file']) except csv.Error as e: # TODO: narrow down logger.error('Import failed: ' + str(e)) messages.error(self.request, _('I\'m sorry, but we were unable to import this CSV file. Please ' 'contact support for help.')) return self.redirect_back() if len(data) == 0: messages.error(self.request, _('I\'m sorry, but we detected this file as empty. Please ' 'contact support for help.')) if o.settings.get('banktransfer_csvhint') is not None: hint = o.settings.get('banktransfer_csvhint', as_type=dict) try: parsed, good = csvimport.parse(data, hint) except csvimport.HintMismatchError: # TODO: narrow down logger.exception('Import using stored hint failed') else: if good: return self.start_processing(parsed) return self.assign_view(data)
def _test_from_sample_file(self, filename, expected, hint, expected_parsed): with open(os.path.join(DATA_DIR, filename), 'rb') as f: data = csvimport.get_rows_from_file(f) self.assertEqual(data, expected) parsed, good = csvimport.parse(data, hint) self.assertEqual(parsed, expected_parsed)
def process_csv_file(self): o = getattr(self.request, 'event', self.request.organizer) try: data = csvimport.get_rows_from_file(self.request.FILES['file']) except csv.Error as e: # TODO: narrow down logger.error('Import failed: ' + str(e)) messages.error(self.request, _('I\'m sorry, but we were unable to import this CSV file. Please ' 'contact support for help.')) return self.redirect_back() if len(data) == 0: messages.error(self.request, _('I\'m sorry, but we detected this file as empty. Please ' 'contact support for help.')) if o.settings.get('banktransfer_csvhint') is not None: hint = o.settings.get('banktransfer_csvhint', as_type=dict) try: parsed, good = csvimport.parse(data, hint) except csvimport.HintMismatchError: # TODO: narrow down logger.exception('Import using stored hint failed') else: if good: return self.start_processing(parsed) return self.assign_view(data)
def _test_from_sample_file(self, filename, expected, hint, expected_parsed): with open(os.path.join(DATA_DIR, filename), 'rb') as f: data = csvimport.get_rows_from_file(f) self.assertEqual(data, expected) parsed = csvimport.parse(data, hint) self.assertEqual(parsed, expected_parsed)