Fixed #29188 -- Fixed ContentFile.size after a write().
This commit is contained in:
parent
277ed07209
commit
2d9ec4d735
|
@ -149,6 +149,10 @@ class ContentFile(File):
|
|||
def close(self):
|
||||
pass
|
||||
|
||||
def write(self, data):
|
||||
self.__dict__.pop('_size', None) # Clear the computed size.
|
||||
return self.file.write(data)
|
||||
|
||||
|
||||
def endswith_cr(line):
|
||||
"""Return True if line (a text or byte string) ends with '\r'."""
|
||||
|
|
|
@ -206,6 +206,16 @@ class ContentFileTestCase(unittest.TestCase):
|
|||
with file.open() as f:
|
||||
self.assertEqual(f.read(), b'content')
|
||||
|
||||
def test_size_changing_after_writing(self):
|
||||
"""ContentFile.size changes after a write()."""
|
||||
f = ContentFile('')
|
||||
self.assertEqual(f.size, 0)
|
||||
f.write('Test ')
|
||||
f.write('string')
|
||||
self.assertEqual(f.size, 11)
|
||||
with f.open() as fh:
|
||||
self.assertEqual(fh.read(), 'Test string')
|
||||
|
||||
|
||||
class InMemoryUploadedFileTests(unittest.TestCase):
|
||||
def test_open_resets_file_to_start_and_returns_context_manager(self):
|
||||
|
|
Loading…
Reference in New Issue