/tests/regressiontests/file_uploads/uploadhandler.py
https://code.google.com/p/mango-py/ · Python · 34 lines · 18 code · 8 blank · 8 comment · 1 complexity · 904a6ea9d8ff569b36755ac9c9517156 MD5 · raw file
- """
- 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!")