def test_error_logging(self): UploadErrorLog.objects.all().delete() uploader_service = UploadService(self.file) uploader_service.log_error(row_number=1, error="hahaha") retrieved_log = UploadErrorLog.objects.filter(filename=self.file.name, row_number=1, error="hahaha") self.assertEqual(1, retrieved_log.count())
def test_remove_trailing_name_in_headers(self): headers = ['heheName', 'somethingCode', 'hahaName', 'blablaCode', 'hihihi', 'hohoho'] self.assertEqual(['hehe','somethingCode', 'haha', 'blablaCode', 'hihihi', 'hohoho'], UploadService.remove_trailing('Name', in_array=headers)) self.assertEqual(['hehe', 'haha', 'hihihi', 'hohoho'], UploadService.remove_trailing('Name', in_array=headers, exclude='Code')) self.assertEqual(['hehe', 'haha', 'hihihi', 'hohoho'], UploadService.remove_trailing('Name', headers, 'Code'))
def test_deletes_one_month_old_error_logs_every_time_an_instance_is_created( self): UploadErrorLog.objects.all().delete() error_location = UploadErrorLog.objects.create( model='LOCATION', filename=self.filename, error="Some errors location") error_now = UploadErrorLog.objects.create(filename=self.filename, error="Some errors now") two_months_old_error_log = UploadErrorLog.objects.create( filename=self.filename, error="Some different errors") two_months_old_error_log.created = datetime.utcnow().replace( tzinfo=utc) - timedelta(days=31) two_months_old_error_log.save() UploadService(self.file) two_months_old_error_log = UploadErrorLog.objects.filter( filename=self.filename, error="Some different errors") self.failIf(two_months_old_error_log) error_location = UploadErrorLog.objects.filter( model='LOCATION', filename=self.filename, error="Some errors location") self.failUnless(error_location) error_now = UploadErrorLog.objects.filter(filename=self.filename, error="Some errors now") self.failUnless(error_now)
def clean_headers_location_type_order(self, headers): headers = UploadService.remove_trailing('Name', in_array=headers, exclude='Code') headers = [header.upper() for header in headers] if headers[0] == 'COUNTRY': headers.pop(0) location_types = [loc.name.upper() for loc in LocationType.all().exclude(name__iexact='COUNTRY')] if not location_types == headers: raise ValidationError('Location types not in order. Please refer to input file format.')
def test_remove_trailing_name_in_headers(self): headers = [ 'heheName', 'somethingCode', 'hahaName', 'blablaCode', 'hihihi', 'hohoho' ] self.assertEqual([ 'hehe', 'somethingCode', 'haha', 'blablaCode', 'hihihi', 'hohoho' ], UploadService.remove_trailing('Name', in_array=headers)) self.assertEqual(['hehe', 'haha', 'hihihi', 'hohoho'], UploadService.remove_trailing('Name', in_array=headers, exclude='Code')) self.assertEqual(['hehe', 'haha', 'hihihi', 'hohoho'], UploadService.remove_trailing('Name', headers, 'Code'))
def clean_headers_location_type_order(self, headers): headers = UploadService.remove_trailing('Name', in_array=headers, exclude='Code') ordered_types = [ type.name for type in LocationTypeDetails.get_ordered_types().exclude( name__iexact='country') ] if not ordered_types == headers: raise ValidationError( 'Location types not in order. Please refer to input file format.' )
def clean_headers_location_type_order(self, headers): headers = UploadService.remove_trailing('Name', in_array=headers, exclude='Code') headers = [header.upper() for header in headers] if headers[0] == 'COUNTRY': headers.pop(0) location_types = [ loc.name.upper() for loc in LocationType.all().exclude(name__iexact='COUNTRY') ] if not location_types == headers: raise ValidationError( 'Location types not in order. Please refer to input file format.' )
def clean_headers_location_type_order(self, headers): headers = UploadService.remove_trailing('Name', in_array=headers, exclude='Code') ordered_types = [type.name for type in LocationTypeDetails.get_ordered_types().exclude(name__iexact='country')] if not ordered_types == headers: raise ValidationError('Location types not in order. Please refer to input file format.')