mirror of
https://github.com/django/django.git
synced 2025-10-25 22:56:12 +00:00
[1.6.x] Fixed #22107 -- Fixed django.core.files.File object iteration.
Due to a mixup between text and bytes, iteration over
a File instance was broken under Python 3.
Thanks to trac user pdewacht for the report and patch.
Backport of 3841feee86 from master.
This commit is contained in:
@@ -1,5 +1,6 @@
|
||||
from __future__ import absolute_import
|
||||
|
||||
from io import BytesIO
|
||||
import os
|
||||
import gzip
|
||||
import shutil
|
||||
@@ -164,6 +165,14 @@ class FileTests(unittest.TestCase):
|
||||
self.assertFalse(hasattr(file, 'mode'))
|
||||
g = gzip.GzipFile(fileobj=file)
|
||||
|
||||
def test_file_iteration(self):
|
||||
"""
|
||||
File objects should yield lines when iterated over.
|
||||
Refs #22107.
|
||||
"""
|
||||
file = File(BytesIO(b'one\ntwo\nthree'))
|
||||
self.assertEqual(list(file), [b'one\n', b'two\n', b'three'])
|
||||
|
||||
|
||||
class FileMoveSafeTests(unittest.TestCase):
|
||||
def test_file_move_overwrite(self):
|
||||
|
||||
Reference in New Issue
Block a user