mirror of
				https://github.com/django/django.git
				synced 2025-11-04 05:35:37 +00:00 
			
		
		
		
	git-svn-id: http://code.djangoproject.com/svn/django/trunk@8748 bcc190cf-cafb-0310-a4f2-bffc1f526a37
		
			
				
	
	
		
			34 lines
		
	
	
	
		
			978 B
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			34 lines
		
	
	
	
		
			978 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!")
 |