summaryrefslogtreecommitdiff
path: root/tests/responses/test_fileresponse.py
diff options
context:
space:
mode:
authordjango-bot <ops@djangoproject.com>2022-02-03 20:24:19 +0100
committerMariusz Felisiak <felisiak.mariusz@gmail.com>2022-02-07 20:37:05 +0100
commit9c19aff7c7561e3a82978a272ecdaad40dda5c00 (patch)
treef0506b668a013d0063e5fba3dbf4863b466713ba /tests/responses/test_fileresponse.py
parentf68fa8b45dfac545cfc4111d4e52804c86db68d3 (diff)
Refs #33476 -- Reformatted code with Black.
Diffstat (limited to 'tests/responses/test_fileresponse.py')
-rw-r--r--tests/responses/test_fileresponse.py158
1 files changed, 87 insertions, 71 deletions
diff --git a/tests/responses/test_fileresponse.py b/tests/responses/test_fileresponse.py
index 4e10105ce5..ebb7876be2 100644
--- a/tests/responses/test_fileresponse.py
+++ b/tests/responses/test_fileresponse.py
@@ -17,32 +17,36 @@ class UnseekableBytesIO(io.BytesIO):
class FileResponseTests(SimpleTestCase):
def test_content_length_file(self):
- response = FileResponse(open(__file__, 'rb'))
+ response = FileResponse(open(__file__, "rb"))
response.close()
- self.assertEqual(response.headers['Content-Length'], str(os.path.getsize(__file__)))
+ self.assertEqual(
+ response.headers["Content-Length"], str(os.path.getsize(__file__))
+ )
def test_content_length_buffer(self):
- response = FileResponse(io.BytesIO(b'binary content'))
- self.assertEqual(response.headers['Content-Length'], '14')
+ response = FileResponse(io.BytesIO(b"binary content"))
+ self.assertEqual(response.headers["Content-Length"], "14")
def test_content_length_nonzero_starting_position_file(self):
- file = open(__file__, 'rb')
+ file = open(__file__, "rb")
file.seek(10)
response = FileResponse(file)
response.close()
- self.assertEqual(response.headers['Content-Length'], str(os.path.getsize(__file__) - 10))
+ self.assertEqual(
+ response.headers["Content-Length"], str(os.path.getsize(__file__) - 10)
+ )
def test_content_length_nonzero_starting_position_buffer(self):
test_tuples = (
- ('BytesIO', io.BytesIO),
- ('UnseekableBytesIO', UnseekableBytesIO),
+ ("BytesIO", io.BytesIO),
+ ("UnseekableBytesIO", UnseekableBytesIO),
)
for buffer_class_name, BufferClass in test_tuples:
with self.subTest(buffer_class_name=buffer_class_name):
- buffer = BufferClass(b'binary content')
+ buffer = BufferClass(b"binary content")
buffer.seek(10)
response = FileResponse(buffer)
- self.assertEqual(response.headers['Content-Length'], '4')
+ self.assertEqual(response.headers["Content-Length"], "4")
def test_content_length_nonzero_starting_position_file_seekable_no_tell(self):
class TestFile:
@@ -73,125 +77,136 @@ class FileResponseTests(SimpleTestCase):
def __exit__(self, e_type, e_val, e_tb):
self.close()
- file = TestFile(__file__, 'rb')
+ file = TestFile(__file__, "rb")
file.seek(10)
response = FileResponse(file)
response.close()
- self.assertEqual(response.headers['Content-Length'], str(os.path.getsize(__file__) - 10))
+ self.assertEqual(
+ response.headers["Content-Length"], str(os.path.getsize(__file__) - 10)
+ )
def test_content_type_file(self):
- response = FileResponse(open(__file__, 'rb'))
+ response = FileResponse(open(__file__, "rb"))
response.close()
- self.assertIn(response.headers['Content-Type'], ['text/x-python', 'text/plain'])
+ self.assertIn(response.headers["Content-Type"], ["text/x-python", "text/plain"])
def test_content_type_buffer(self):
- response = FileResponse(io.BytesIO(b'binary content'))
- self.assertEqual(response.headers['Content-Type'], 'application/octet-stream')
+ response = FileResponse(io.BytesIO(b"binary content"))
+ self.assertEqual(response.headers["Content-Type"], "application/octet-stream")
def test_content_type_buffer_explicit(self):
- response = FileResponse(io.BytesIO(b'binary content'), content_type='video/webm')
- self.assertEqual(response.headers['Content-Type'], 'video/webm')
+ response = FileResponse(
+ io.BytesIO(b"binary content"), content_type="video/webm"
+ )
+ self.assertEqual(response.headers["Content-Type"], "video/webm")
def test_content_type_buffer_explicit_default(self):
- response = FileResponse(io.BytesIO(b'binary content'), content_type='text/html')
- self.assertEqual(response.headers['Content-Type'], 'text/html')
+ response = FileResponse(io.BytesIO(b"binary content"), content_type="text/html")
+ self.assertEqual(response.headers["Content-Type"], "text/html")
def test_content_type_buffer_named(self):
test_tuples = (
- (__file__, ['text/x-python', 'text/plain']),
- (__file__ + 'nosuchfile', ['application/octet-stream']),
- ('test_fileresponse.py', ['text/x-python', 'text/plain']),
- ('test_fileresponse.pynosuchfile', ['application/octet-stream']),
+ (__file__, ["text/x-python", "text/plain"]),
+ (__file__ + "nosuchfile", ["application/octet-stream"]),
+ ("test_fileresponse.py", ["text/x-python", "text/plain"]),
+ ("test_fileresponse.pynosuchfile", ["application/octet-stream"]),
)
for filename, content_types in test_tuples:
with self.subTest(filename=filename):
- buffer = io.BytesIO(b'binary content')
+ buffer = io.BytesIO(b"binary content")
buffer.name = filename
response = FileResponse(buffer)
- self.assertIn(response.headers['Content-Type'], content_types)
+ self.assertIn(response.headers["Content-Type"], content_types)
def test_content_disposition_file(self):
filenames = (
- ('', 'test_fileresponse.py'),
- ('custom_name.py', 'custom_name.py'),
+ ("", "test_fileresponse.py"),
+ ("custom_name.py", "custom_name.py"),
)
dispositions = (
- (False, 'inline'),
- (True, 'attachment'),
+ (False, "inline"),
+ (True, "attachment"),
)
- for (filename, header_filename), (as_attachment, header_disposition) in itertools.product(
- filenames, dispositions
- ):
+ for (filename, header_filename), (
+ as_attachment,
+ header_disposition,
+ ) in itertools.product(filenames, dispositions):
with self.subTest(filename=filename, disposition=header_disposition):
- response = FileResponse(open(__file__, 'rb'), filename=filename, as_attachment=as_attachment)
+ response = FileResponse(
+ open(__file__, "rb"), filename=filename, as_attachment=as_attachment
+ )
response.close()
self.assertEqual(
- response.headers['Content-Disposition'],
+ response.headers["Content-Disposition"],
'%s; filename="%s"' % (header_disposition, header_filename),
)
def test_content_disposition_buffer(self):
- response = FileResponse(io.BytesIO(b'binary content'))
- self.assertFalse(response.has_header('Content-Disposition'))
+ response = FileResponse(io.BytesIO(b"binary content"))
+ self.assertFalse(response.has_header("Content-Disposition"))
def test_content_disposition_buffer_attachment(self):
- response = FileResponse(io.BytesIO(b'binary content'), as_attachment=True)
- self.assertEqual(response.headers['Content-Disposition'], 'attachment')
+ response = FileResponse(io.BytesIO(b"binary content"), as_attachment=True)
+ self.assertEqual(response.headers["Content-Disposition"], "attachment")
def test_content_disposition_buffer_explicit_filename(self):
dispositions = (
- (False, 'inline'),
- (True, 'attachment'),
+ (False, "inline"),
+ (True, "attachment"),
)
for as_attachment, header_disposition in dispositions:
response = FileResponse(
- io.BytesIO(b'binary content'),
+ io.BytesIO(b"binary content"),
as_attachment=as_attachment,
- filename='custom_name.py',
+ filename="custom_name.py",
)
self.assertEqual(
- response.headers['Content-Disposition'], '%s; filename="custom_name.py"' % header_disposition,
+ response.headers["Content-Disposition"],
+ '%s; filename="custom_name.py"' % header_disposition,
)
def test_response_buffer(self):
- response = FileResponse(io.BytesIO(b'binary content'))
- self.assertEqual(list(response), [b'binary content'])
+ response = FileResponse(io.BytesIO(b"binary content"))
+ self.assertEqual(list(response), [b"binary content"])
def test_response_nonzero_starting_position(self):
test_tuples = (
- ('BytesIO', io.BytesIO),
- ('UnseekableBytesIO', UnseekableBytesIO),
+ ("BytesIO", io.BytesIO),
+ ("UnseekableBytesIO", UnseekableBytesIO),
)
for buffer_class_name, BufferClass in test_tuples:
with self.subTest(buffer_class_name=buffer_class_name):
- buffer = BufferClass(b'binary content')
+ buffer = BufferClass(b"binary content")
buffer.seek(10)
response = FileResponse(buffer)
- self.assertEqual(list(response), [b'tent'])
+ self.assertEqual(list(response), [b"tent"])
def test_buffer_explicit_absolute_filename(self):
"""
Headers are set correctly with a buffer when an absolute filename is
provided.
"""
- response = FileResponse(io.BytesIO(b'binary content'), filename=__file__)
- self.assertEqual(response.headers['Content-Length'], '14')
- self.assertEqual(response.headers['Content-Disposition'], 'inline; filename="test_fileresponse.py"')
+ response = FileResponse(io.BytesIO(b"binary content"), filename=__file__)
+ self.assertEqual(response.headers["Content-Length"], "14")
+ self.assertEqual(
+ response.headers["Content-Disposition"],
+ 'inline; filename="test_fileresponse.py"',
+ )
- @skipIf(sys.platform == 'win32', "Named pipes are Unix-only.")
+ @skipIf(sys.platform == "win32", "Named pipes are Unix-only.")
def test_file_from_named_pipe_response(self):
with tempfile.TemporaryDirectory() as temp_dir:
- pipe_file = os.path.join(temp_dir, 'named_pipe')
+ pipe_file = os.path.join(temp_dir, "named_pipe")
os.mkfifo(pipe_file)
pipe_for_read = os.open(pipe_file, os.O_RDONLY | os.O_NONBLOCK)
- with open(pipe_file, 'wb') as pipe_for_write:
- pipe_for_write.write(b'binary content')
+ with open(pipe_file, "wb") as pipe_for_write:
+ pipe_for_write.write(b"binary content")
- response = FileResponse(os.fdopen(pipe_for_read, mode='rb'))
+ response = FileResponse(os.fdopen(pipe_for_read, mode="rb"))
response_content = list(response)
response.close()
- self.assertEqual(response_content, [b'binary content'])
- self.assertFalse(response.has_header('Content-Length'))
+ self.assertEqual(response_content, [b"binary content"])
+ self.assertFalse(response.has_header("Content-Length"))
def test_compressed_response(self):
"""
@@ -200,33 +215,34 @@ class FileResponseTests(SimpleTestCase):
uncompress the file, which is most probably not wanted.
"""
test_tuples = (
- ('.tar.gz', 'application/gzip'),
- ('.tar.bz2', 'application/x-bzip'),
- ('.tar.xz', 'application/x-xz'),
+ (".tar.gz", "application/gzip"),
+ (".tar.bz2", "application/x-bzip"),
+ (".tar.xz", "application/x-xz"),
)
for extension, mimetype in test_tuples:
with self.subTest(ext=extension):
with tempfile.NamedTemporaryFile(suffix=extension) as tmp:
response = FileResponse(tmp)
- self.assertEqual(response.headers['Content-Type'], mimetype)
- self.assertFalse(response.has_header('Content-Encoding'))
+ self.assertEqual(response.headers["Content-Type"], mimetype)
+ self.assertFalse(response.has_header("Content-Encoding"))
def test_unicode_attachment(self):
response = FileResponse(
- ContentFile(b'binary content', name="祝您平安.odt"), as_attachment=True,
- content_type='application/vnd.oasis.opendocument.text',
+ ContentFile(b"binary content", name="祝您平安.odt"),
+ as_attachment=True,
+ content_type="application/vnd.oasis.opendocument.text",
)
self.assertEqual(
- response.headers['Content-Type'],
- 'application/vnd.oasis.opendocument.text',
+ response.headers["Content-Type"],
+ "application/vnd.oasis.opendocument.text",
)
self.assertEqual(
- response.headers['Content-Disposition'],
+ response.headers["Content-Disposition"],
"attachment; filename*=utf-8''%E7%A5%9D%E6%82%A8%E5%B9%B3%E5%AE%89.odt",
)
def test_repr(self):
- response = FileResponse(io.BytesIO(b'binary content'))
+ response = FileResponse(io.BytesIO(b"binary content"))
self.assertEqual(
repr(response),
'<FileResponse status_code=200, "application/octet-stream">',