Skip to content

Commit c5a29dd

Browse files
committed
Drop Django 1.8 support
1 parent 5cd628a commit c5a29dd

File tree

2 files changed

+14
-13
lines changed

2 files changed

+14
-13
lines changed

s3file/middleware.py

+12-11
Original file line numberDiff line numberDiff line change
@@ -2,23 +2,24 @@
22

33
from django.core.files.storage import default_storage
44

5-
try:
6-
from django.utils.deprecation import MiddlewareMixin
7-
except ImportError:
8-
MiddlewareMixin = object
95

6+
class S3FileMiddleware:
7+
8+
def __init__(self, get_response):
9+
self.get_response = get_response
10+
11+
def __call__(self, request):
12+
file_fields = request.POST.getlist('s3file', [])
13+
for field_name in file_fields:
14+
paths = request.POST.getlist(field_name, [])
15+
request.FILES.setlist(field_name, list(self.get_files_from_storage(paths)))
16+
17+
return self.get_response(request)
1018

11-
class S3FileMiddleware(MiddlewareMixin):
1219
@staticmethod
1320
def get_files_from_storage(paths):
1421
"""Return S3 file where the name does not include the path."""
1522
for path in paths:
1623
f = default_storage.open(path)
1724
f.name = os.path.basename(path)
1825
yield f
19-
20-
def process_request(self, request):
21-
file_fields = request.POST.getlist('s3file', [])
22-
for field_name in file_fields:
23-
paths = request.POST.getlist(field_name, [])
24-
request.FILES.setlist(field_name, list(self.get_files_from_storage(paths)))

tests/test_middleware.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -17,12 +17,12 @@ def test_get_files_from_storage(self):
1717
def test_process_request(self, rf):
1818
uploaded_file = SimpleUploadedFile('uploaded_file.txt', b'uploaded')
1919
request = rf.post('/', data={'file': uploaded_file})
20-
S3FileMiddleware().process_request(request)
20+
S3FileMiddleware(lambda x: None)(request)
2121
assert request.FILES.getlist('file')
2222
assert request.FILES.get('file').read() == b'uploaded'
2323

2424
default_storage.save('s3_file.txt', ContentFile(b's3file'))
2525
request = rf.post('/', data={'file': 's3_file.txt', 's3file': 'file'})
26-
S3FileMiddleware().process_request(request)
26+
S3FileMiddleware(lambda x: None)(request)
2727
assert request.FILES.getlist('file')
2828
assert request.FILES.get('file').read() == b's3file'

0 commit comments

Comments
 (0)