summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTim Graham <timograham@gmail.com>2018-01-03 13:24:02 -0500
committerGitHub <noreply@github.com>2018-01-03 13:24:02 -0500
commitacc8dd4142ec81def9a73507120c0262ba6b1264 (patch)
treeb23afef0de9b19a50e96fd8706c763386419d79d
parentd79cf1e9e2887aa12567c8f27e384195253cb847 (diff)
Fixed #28984 -- Made assorted code simplifications.
-rw-r--r--django/contrib/admin/helpers.py19
-rw-r--r--django/contrib/admin/options.py4
-rw-r--r--django/contrib/sessions/backends/base.py3
-rw-r--r--django/core/serializers/__init__.py6
-rw-r--r--django/db/migrations/autodetector.py2
-rw-r--r--django/db/migrations/graph.py4
-rw-r--r--django/db/models/fields/files.py2
-rw-r--r--django/dispatch/dispatcher.py10
-rw-r--r--django/test/runner.py3
-rw-r--r--django/utils/synch.py2
-rw-r--r--tests/auth_tests/test_context_processors.py8
-rw-r--r--tests/inspectdb/tests.py2
-rw-r--r--tests/modeladmin/tests.py16
-rw-r--r--tests/serializers/test_json.py11
14 files changed, 31 insertions, 61 deletions
diff --git a/django/contrib/admin/helpers.py b/django/contrib/admin/helpers.py
index 6f638417b5..cd34587788 100644
--- a/django/contrib/admin/helpers.py
+++ b/django/contrib/admin/helpers.py
@@ -203,8 +203,7 @@ class AdminReadonlyField:
result_repr = self.empty_value_display
else:
if f is None:
- boolean = getattr(attr, "boolean", False)
- if boolean:
+ if getattr(attr, 'boolean', False):
result_repr = _boolean_icon(value)
else:
if hasattr(value, "__html__"):
@@ -331,14 +330,14 @@ class InlineAdminForm(AdminForm):
)
def needs_explicit_pk_field(self):
- # Auto fields are editable (oddly), so need to check for auto or non-editable pk
- if self.form._meta.model._meta.auto_field or not self.form._meta.model._meta.pk.editable:
- return True
- # Also search any parents for an auto field. (The pk info is propagated to child
- # models so that does not need to be checked in parents.)
- return any(
- parent._meta.auto_field or not parent._meta.model._meta.pk.editable
- for parent in self.form._meta.model._meta.get_parent_list()
+ return (
+ # Auto fields are editable, so check for auto or non-editable pk.
+ self.form._meta.model._meta.auto_field or not self.form._meta.model._meta.pk.editable or
+ # Also search any parents for an auto field. (The pk info is
+ # propagated to child models so that does not need to be checked
+ # in parents.)
+ any(parent._meta.auto_field or not parent._meta.model._meta.pk.editable
+ for parent in self.form._meta.model._meta.get_parent_list())
)
def pk_field(self):
diff --git a/django/contrib/admin/options.py b/django/contrib/admin/options.py
index 14d4e712c8..d37615b1e5 100644
--- a/django/contrib/admin/options.py
+++ b/django/contrib/admin/options.py
@@ -841,13 +841,11 @@ class ModelAdmin(BaseModelAdmin):
actions = filter(None, actions)
# Convert the actions into an OrderedDict keyed by name.
- actions = OrderedDict(
+ return OrderedDict(
(name, (func, name, desc))
for func, name, desc in actions
)
- return actions
-
def get_action_choices(self, request, default_choices=BLANK_CHOICE_DASH):
"""
Return a list of choices for use in a form object. Each choice is a
diff --git a/django/contrib/sessions/backends/base.py b/django/contrib/sessions/backends/base.py
index d469dab44d..35798dbdf7 100644
--- a/django/contrib/sessions/backends/base.py
+++ b/django/contrib/sessions/backends/base.py
@@ -151,8 +151,7 @@ class SessionBase:
while True:
session_key = get_random_string(32, VALID_KEY_CHARS)
if not self.exists(session_key):
- break
- return session_key
+ return session_key
def _get_or_create_session_key(self):
if self._session_key is None:
diff --git a/django/core/serializers/__init__.py b/django/core/serializers/__init__.py
index 666d1bb297..3406572b76 100644
--- a/django/core/serializers/__init__.py
+++ b/django/core/serializers/__init__.py
@@ -216,11 +216,7 @@ def sort_dependencies(app_list):
# If all of the models in the dependency list are either already
# on the final model list, or not on the original serialization list,
# then we've found another model with all it's dependencies satisfied.
- found = True
- for candidate in ((d not in models or d in model_list) for d in deps):
- if not candidate:
- found = False
- if found:
+ if all(candidate for candidate in ((d not in models or d in model_list) for d in deps)):
model_list.append(model)
changed = True
else:
diff --git a/django/db/migrations/autodetector.py b/django/db/migrations/autodetector.py
index 0ccb726b3d..0f022137d0 100644
--- a/django/db/migrations/autodetector.py
+++ b/django/db/migrations/autodetector.py
@@ -301,7 +301,7 @@ class MigrationAutodetector:
if deps_satisfied:
chopped.append(operation)
dependencies.update(operation_dependencies)
- self.generated_operations[app_label] = self.generated_operations[app_label][1:]
+ del self.generated_operations[app_label][0]
else:
break
# Make a migration! Well, only if there's stuff to put in it
diff --git a/django/db/migrations/graph.py b/django/db/migrations/graph.py
index a2ad984e73..aba8259a7c 100644
--- a/django/db/migrations/graph.py
+++ b/django/db/migrations/graph.py
@@ -304,7 +304,7 @@ class MigrationGraph:
"""
roots = set()
for node in self.nodes:
- if not any(key[0] == node[0] for key in self.node_map[node].parents) and (not app or app == node[0]):
+ if all(key[0] != node[0] for key in self.node_map[node].parents) and (not app or app == node[0]):
roots.add(node)
return sorted(roots)
@@ -318,7 +318,7 @@ class MigrationGraph:
"""
leaves = set()
for node in self.nodes:
- if not any(key[0] == node[0] for key in self.node_map[node].children) and (not app or app == node[0]):
+ if all(key[0] != node[0] for key in self.node_map[node].children) and (not app or app == node[0]):
leaves.add(node)
return sorted(leaves)
diff --git a/django/db/models/fields/files.py b/django/db/models/fields/files.py
index d45de14e27..683a34ecd9 100644
--- a/django/db/models/fields/files.py
+++ b/django/db/models/fields/files.py
@@ -39,7 +39,7 @@ class FieldFile(File):
def _get_file(self):
self._require_file()
- if not hasattr(self, '_file') or self._file is None:
+ if getattr(self, '_file', None) is None:
self._file = self.storage.open(self.name, 'rb')
return self._file
diff --git a/django/dispatch/dispatcher.py b/django/dispatch/dispatcher.py
index 6488c7fbd4..cefc00aad7 100644
--- a/django/dispatch/dispatcher.py
+++ b/django/dispatch/dispatcher.py
@@ -215,12 +215,10 @@ class Signal:
# Note: caller is assumed to hold self.lock.
if self._dead_receivers:
self._dead_receivers = False
- new_receivers = []
- for r in self.receivers:
- if isinstance(r[1], weakref.ReferenceType) and r[1]() is None:
- continue
- new_receivers.append(r)
- self.receivers = new_receivers
+ self.receivers = [
+ r for r in self.receivers
+ if not(isinstance(r[1], weakref.ReferenceType) and r[1]() is None)
+ ]
def _live_receivers(self, sender):
"""
diff --git a/django/test/runner.py b/django/test/runner.py
index 49c106049f..d89d734c70 100644
--- a/django/test/runner.py
+++ b/django/test/runner.py
@@ -531,8 +531,7 @@ class DiscoverRunner:
# Since tests are distributed across processes on a per-TestCase
# basis, there's no need for more processes than TestCases.
parallel_units = len(parallel_suite.subsuites)
- if self.parallel > parallel_units:
- self.parallel = parallel_units
+ self.parallel = min(self.parallel, parallel_units)
# If there's only one TestCase, parallelization isn't needed.
if self.parallel > 1:
diff --git a/django/utils/synch.py b/django/utils/synch.py
index d944bfd242..23469869bd 100644
--- a/django/utils/synch.py
+++ b/django/utils/synch.py
@@ -60,7 +60,7 @@ class RWLock:
def writer_enters(self):
with self.mutex:
if self.active_writers == 0 and self.waiting_writers == 0 and self.active_readers == 0:
- self.active_writers += 1
+ self.active_writers = 1
self.can_write.release()
else:
self.waiting_writers += 1
diff --git a/tests/auth_tests/test_context_processors.py b/tests/auth_tests/test_context_processors.py
index d9cd679a6e..281ea744d8 100644
--- a/tests/auth_tests/test_context_processors.py
+++ b/tests/auth_tests/test_context_processors.py
@@ -10,14 +10,10 @@ from .settings import AUTH_MIDDLEWARE, AUTH_TEMPLATES
class MockUser:
def has_module_perms(self, perm):
- if perm == 'mockapp':
- return True
- return False
+ return perm == 'mockapp'
def has_perm(self, perm):
- if perm == 'mockapp.someperm':
- return True
- return False
+ return perm == 'mockapp.someperm'
class PermWrapperTests(SimpleTestCase):
diff --git a/tests/inspectdb/tests.py b/tests/inspectdb/tests.py
index b060f7e25b..88b828168b 100644
--- a/tests/inspectdb/tests.py
+++ b/tests/inspectdb/tests.py
@@ -189,7 +189,7 @@ class InspectDBTestCase(TestCase):
table_name_filter=lambda tn: tn.startswith('inspectdb_special'),
stdout=out)
output = out.getvalue()
- base_name = 'Field' if not connection.features.uppercases_column_names else 'field'
+ base_name = 'field' if connection.features.uppercases_column_names else 'Field'
self.assertIn("field = models.IntegerField()", output)
self.assertIn("field_field = models.IntegerField(db_column='%s_')" % base_name, output)
self.assertIn("field_field_0 = models.IntegerField(db_column='%s__')" % base_name, output)
diff --git a/tests/modeladmin/tests.py b/tests/modeladmin/tests.py
index 67bed3d697..202929df05 100644
--- a/tests/modeladmin/tests.py
+++ b/tests/modeladmin/tests.py
@@ -671,27 +671,19 @@ class ModelAdminPermissionTests(SimpleTestCase):
class MockUser:
def has_module_perms(self, app_label):
- if app_label == "modeladmin":
- return True
- return False
+ return app_label == 'modeladmin'
class MockAddUser(MockUser):
def has_perm(self, perm):
- if perm == "modeladmin.add_band":
- return True
- return False
+ return perm == 'modeladmin.add_band'
class MockChangeUser(MockUser):
def has_perm(self, perm):
- if perm == "modeladmin.change_band":
- return True
- return False
+ return perm == 'modeladmin.change_band'
class MockDeleteUser(MockUser):
def has_perm(self, perm):
- if perm == "modeladmin.delete_band":
- return True
- return False
+ return perm == 'modeladmin.delete_band'
def test_has_add_permission(self):
"""
diff --git a/tests/serializers/test_json.py b/tests/serializers/test_json.py
index 9037e75e46..a804aa1f3a 100644
--- a/tests/serializers/test_json.py
+++ b/tests/serializers/test_json.py
@@ -55,20 +55,13 @@ class JsonSerializerTestCase(SerializersTestBase, TestCase):
@staticmethod
def _get_pk_values(serial_str):
- ret_list = []
serial_list = json.loads(serial_str)
- for obj_dict in serial_list:
- ret_list.append(obj_dict["pk"])
- return ret_list
+ return [obj_dict['pk'] for obj_dict in serial_list]
@staticmethod
def _get_field_values(serial_str, field_name):
- ret_list = []
serial_list = json.loads(serial_str)
- for obj_dict in serial_list:
- if field_name in obj_dict["fields"]:
- ret_list.append(obj_dict["fields"][field_name])
- return ret_list
+ return [obj_dict['fields'][field_name] for obj_dict in serial_list if field_name in obj_dict['fields']]
def test_indentation_whitespace(self):
s = serializers.json.Serializer()