mirror of
				https://github.com/django/django.git
				synced 2025-10-26 07:06:08 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			38 lines
		
	
	
		
			956 B
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			38 lines
		
	
	
		
			956 B
		
	
	
	
		
			Python
		
	
	
	
	
	
| """
 | |
| Upload handlers to test the upload API.
 | |
| """
 | |
| 
 | |
| from django.core.files.uploadhandler import FileUploadHandler, StopUpload
 | |
| 
 | |
| 
 | |
| class QuotaUploadHandler(FileUploadHandler):
 | |
|     """
 | |
|     This test upload handler terminates the connection if more than a quota
 | |
|     (5MB) is uploaded.
 | |
|     """
 | |
| 
 | |
|     QUOTA = 5 * 2 ** 20  # 5 MB
 | |
| 
 | |
|     def __init__(self, request=None):
 | |
|         super(QuotaUploadHandler, self).__init__(request)
 | |
|         self.total_upload = 0
 | |
| 
 | |
|     def receive_data_chunk(self, raw_data, start):
 | |
|         self.total_upload += len(raw_data)
 | |
|         if self.total_upload >= self.QUOTA:
 | |
|             raise StopUpload(connection_reset=True)
 | |
|         return raw_data
 | |
| 
 | |
|     def file_complete(self, file_size):
 | |
|         return None
 | |
| 
 | |
| 
 | |
| class CustomUploadError(Exception):
 | |
|     pass
 | |
| 
 | |
| 
 | |
| class ErroringUploadHandler(FileUploadHandler):
 | |
|     """A handler that raises an exception."""
 | |
|     def receive_data_chunk(self, raw_data, start):
 | |
|         raise CustomUploadError("Oops!")
 |