Commit cfa26f29 authored by Brad Walker's avatar Brad Walker Committed by Tim Graham
Browse files

Reduced reduce() usage; refs #23796.

django.core.exceptions.ValidationError.messages() and
django.db.backends.schema.BaseDatabaseSchemaEditor._alter_field():
Replaced reduce(operator.add, ...) w/uncoupled, explicit sum()
parent f273cedc
Loading
Loading
Loading
Loading
+1 −4
Original line number Diff line number Diff line
"""
Global Django exception and warning classes.
"""
from functools import reduce
import operator

from django.utils import six
from django.utils.encoding import force_text

@@ -137,7 +134,7 @@ class ValidationError(Exception):
    @property
    def messages(self):
        if hasattr(self, 'error_dict'):
            return reduce(operator.add, dict(self).values())
            return sum(dict(self).values(), [])
        return list(self)

    def update_error_dict(self, error_dict):
+1 −3
Original line number Diff line number Diff line
import hashlib
import operator

from django.db.backends.creation import BaseDatabaseCreation
from django.db.backends.utils import truncate_name
@@ -7,7 +6,6 @@ from django.db.models.fields.related import ManyToManyField
from django.db.transaction import atomic
from django.utils.encoding import force_bytes
from django.utils.log import getLogger
from django.utils.six.moves import reduce
from django.utils import six

logger = getLogger('django.db.backends.schema')
@@ -609,7 +607,7 @@ class BaseDatabaseSchemaEditor(object):
            # Combine actions together if we can (e.g. postgres)
            if self.connection.features.supports_combined_alters and actions:
                sql, params = tuple(zip(*actions))
                actions = [(", ".join(sql), reduce(operator.add, params))]
                actions = [(", ".join(sql), sum(params, []))]
            # Apply those actions
            for sql, params in actions:
                self.execute(
+2 −2
Original line number Diff line number Diff line
@@ -6,8 +6,8 @@ from django.core.exceptions import ValidationError
class TestValidationError(unittest.TestCase):
    def test_messages_concatenates_error_dict_values(self):
        message_dict = {}
        with self.assertRaises(TypeError):
            ValidationError(message_dict).messages
        exception = ValidationError(message_dict)
        self.assertEqual(sorted(exception.messages), [])
        message_dict['field1'] = ['E1', 'E2']
        exception = ValidationError(message_dict)
        self.assertEqual(sorted(exception.messages), ['E1', 'E2'])