mirror of https://github.com/django/django.git
Adapted fixture read mode to file type
Binary mode added in ed532a6a1e
is not supported by ZipFile.
Refs #22399.
This commit is contained in:
parent
6b2ce38c49
commit
275811a93c
|
@ -76,13 +76,14 @@ class Command(BaseCommand):
|
|||
self.models = set()
|
||||
|
||||
self.serialization_formats = serializers.get_public_serializer_formats()
|
||||
# Forcing binary mode may be revisited after dropping Python 2 support (see #22399)
|
||||
self.compression_formats = {
|
||||
None: open,
|
||||
'gz': gzip.GzipFile,
|
||||
'zip': SingleZipReader
|
||||
None: (open, 'rb'),
|
||||
'gz': (gzip.GzipFile, 'rb'),
|
||||
'zip': (SingleZipReader, 'r'),
|
||||
}
|
||||
if has_bz2:
|
||||
self.compression_formats['bz2'] = bz2.BZ2File
|
||||
self.compression_formats['bz2'] = (bz2.BZ2File, 'r')
|
||||
|
||||
with connection.constraint_checks_disabled():
|
||||
for fixture_label in fixture_labels:
|
||||
|
@ -124,9 +125,8 @@ class Command(BaseCommand):
|
|||
"""
|
||||
for fixture_file, fixture_dir, fixture_name in self.find_fixtures(fixture_label):
|
||||
_, ser_fmt, cmp_fmt = self.parse_name(os.path.basename(fixture_file))
|
||||
open_method = self.compression_formats[cmp_fmt]
|
||||
# Forcing binary mode may be revisited after dropping Python 2 support (see #22399)
|
||||
fixture = open_method(fixture_file, 'rb')
|
||||
open_method, mode = self.compression_formats[cmp_fmt]
|
||||
fixture = open_method(fixture_file, mode)
|
||||
try:
|
||||
self.fixture_count += 1
|
||||
objects_in_fixture = 0
|
||||
|
|
Loading…
Reference in New Issue