浏览代码

Fixed E127 pep8 warnings.

Loic Bistuer 11 年之前
父节点
当前提交
6685713869
共有 55 个文件被更改,包括 362 次插入338 次删除
  1. 6 6
      django/contrib/admin/filters.py
  2. 1 2
      django/contrib/admin/templatetags/admin_modify.py
  3. 11 8
      django/contrib/admin/widgets.py
  4. 2 2
      django/contrib/auth/forms.py
  5. 5 3
      django/contrib/auth/tests/test_models.py
  6. 2 2
      django/contrib/flatpages/templatetags/flatpages.py
  7. 1 1
      django/contrib/gis/forms/fields.py
  8. 1 1
      django/contrib/gis/gdal/prototypes/generation.py
  9. 5 3
      django/contrib/gis/geos/libgeos.py
  10. 1 1
      django/contrib/gis/geos/polygon.py
  11. 8 8
      django/contrib/gis/geos/tests/test_geos_mutation.py
  12. 3 3
      django/contrib/gis/tests/geo3d/tests.py
  13. 2 2
      django/contrib/gis/tests/test_spatialrefsys.py
  14. 1 1
      django/contrib/messages/storage/cookie.py
  15. 4 6
      django/contrib/messages/tests/base.py
  16. 1 1
      django/contrib/sessions/tests.py
  17. 2 2
      django/core/files/move.py
  18. 1 2
      django/core/management/__init__.py
  19. 2 2
      django/core/management/commands/compilemessages.py
  20. 1 2
      django/core/urlresolvers.py
  21. 7 7
      django/db/backends/oracle/base.py
  22. 15 11
      django/db/models/base.py
  23. 1 1
      django/db/models/fields/__init__.py
  24. 46 18
      django/db/models/fields/related.py
  25. 4 6
      django/db/models/loading.py
  26. 16 16
      django/db/models/query.py
  27. 1 1
      django/db/models/sql/compiler.py
  28. 2 2
      django/db/models/sql/query.py
  29. 1 1
      django/dispatch/saferef.py
  30. 1 2
      django/forms/models.py
  31. 3 4
      django/http/multipartparser.py
  32. 2 4
      django/template/base.py
  33. 2 2
      django/template/defaulttags.py
  34. 1 1
      django/template/loader_tags.py
  35. 14 14
      django/test/testcases.py
  36. 1 1
      django/utils/archive.py
  37. 1 2
      django/utils/html.py
  38. 1 2
      django/utils/importlib.py
  39. 2 2
      docs/_ext/djangodocs.py
  40. 1 1
      setup.cfg
  41. 32 14
      tests/admin_filters/tests.py
  42. 2 2
      tests/admin_views/tests.py
  43. 34 41
      tests/defaultfilters/tests.py
  44. 9 6
      tests/mail/tests.py
  45. 1 1
      tests/many_to_one/tests.py
  46. 2 4
      tests/model_inheritance_regress/tests.py
  47. 7 9
      tests/prefetch_related/tests.py
  48. 8 4
      tests/raw_query/tests.py
  49. 4 4
      tests/select_related/tests.py
  50. 2 3
      tests/staticfiles_tests/tests.py
  51. 10 8
      tests/timezones/tests.py
  52. 4 8
      tests/urlpatterns_reverse/urls.py
  53. 22 14
      tests/utils_tests/test_datastructures.py
  54. 41 60
      tests/utils_tests/test_termcolors.py
  55. 2 4
      tests/view_tests/tests/test_static.py

+ 6 - 6
django/contrib/admin/filters.py

@@ -179,9 +179,9 @@ class RelatedFieldListFilter(FieldListFilter):
         self.title = self.lookup_title
 
     def has_output(self):
-        if (isinstance(self.field, models.related.RelatedObject)
-                and self.field.field.null or hasattr(self.field, 'rel')
-                    and self.field.null):
+        if (isinstance(self.field, models.related.RelatedObject) and
+                self.field.field.null or hasattr(self.field, 'rel') and
+                self.field.null):
             extra = 1
         else:
             extra = 0
@@ -206,9 +206,9 @@ class RelatedFieldListFilter(FieldListFilter):
                 }, [self.lookup_kwarg_isnull]),
                 'display': val,
             }
-        if (isinstance(self.field, models.related.RelatedObject)
-                and self.field.field.null or hasattr(self.field, 'rel')
-                    and self.field.null):
+        if (isinstance(self.field, models.related.RelatedObject) and
+                self.field.field.null or hasattr(self.field, 'rel') and
+                self.field.null):
             yield {
                 'selected': bool(self.lookup_val_isnull),
                 'query_string': cl.get_query_string({

+ 1 - 2
django/contrib/admin/templatetags/admin_modify.py

@@ -32,8 +32,7 @@ def submit_row(context):
     save_as = context['save_as']
     ctx = {
         'opts': opts,
-        'show_delete_link': (not is_popup and context['has_delete_permission']
-                              and change and context.get('show_delete', True)),
+        'show_delete_link': not is_popup and context['has_delete_permission'] and change and context.get('show_delete', True),
         'show_save_as_new': not is_popup and change and save_as,
         'show_save_and_add_another': context['has_add_permission'] and not is_popup and (not save_as or context['add']),
         'show_save_and_continue': not is_popup and context['has_change_permission'],

+ 11 - 8
django/contrib/admin/widgets.py

@@ -153,10 +153,13 @@ class ForeignKeyRawIdWidget(forms.TextInput):
         extra = []
         if rel_to in self.admin_site._registry:
             # The related object is registered with the same AdminSite
-            related_url = reverse('admin:%s_%s_changelist' %
-                                    (rel_to._meta.app_label,
-                                    rel_to._meta.model_name),
-                                    current_app=self.admin_site.name)
+            related_url = reverse(
+                'admin:%s_%s_changelist' % (
+                    rel_to._meta.app_label,
+                    rel_to._meta.model_name,
+                ),
+                current_app=self.admin_site.name,
+            )
 
             params = self.url_parameters()
             if params:
@@ -167,10 +170,10 @@ class ForeignKeyRawIdWidget(forms.TextInput):
                 attrs['class'] = 'vForeignKeyRawIdAdminField'  # The JavaScript code looks for this hook.
             # TODO: "lookup_id_" is hard-coded here. This should instead use
             # the correct API to determine the ID dynamically.
-            extra.append('<a href="%s%s" class="related-lookup" id="lookup_id_%s" onclick="return showRelatedObjectLookupPopup(this);"> '
-                            % (related_url, url, name))
-            extra.append('<img src="%s" width="16" height="16" alt="%s" /></a>'
-                            % (static('admin/img/selector-search.gif'), _('Lookup')))
+            extra.append('<a href="%s%s" class="related-lookup" id="lookup_id_%s" onclick="return showRelatedObjectLookupPopup(this);"> ' %
+                (related_url, url, name))
+            extra.append('<img src="%s" width="16" height="16" alt="%s" /></a>' %
+                (static('admin/img/selector-search.gif'), _('Lookup')))
         output = [super(ForeignKeyRawIdWidget, self).render(name, value, attrs)] + extra
         if value:
             output.append(self.label_for_value(value))

+ 2 - 2
django/contrib/auth/forms.py

@@ -75,7 +75,7 @@ class UserCreationForm(forms.ModelForm):
     username = forms.RegexField(label=_("Username"), max_length=30,
         regex=r'^[\w.@+-]+$',
         help_text=_("Required. 30 characters or fewer. Letters, digits and "
-                      "@/./+/-/_ only."),
+                    "@/./+/-/_ only."),
         error_messages={
             'invalid': _("This value may contain only letters, numbers and "
                          "@/./+/-/_ characters.")})
@@ -124,7 +124,7 @@ class UserChangeForm(forms.ModelForm):
     username = forms.RegexField(
         label=_("Username"), max_length=30, regex=r"^[\w.@+-]+$",
         help_text=_("Required. 30 characters or fewer. Letters, digits and "
-                      "@/./+/-/_ only."),
+                    "@/./+/-/_ only."),
         error_messages={
             'invalid': _("This value may contain only letters, numbers and "
                          "@/./+/-/_ characters.")})

+ 5 - 3
django/contrib/auth/tests/test_models.py

@@ -69,9 +69,11 @@ class UserManagerTestCase(TestCase):
         self.assertEqual(returned, 'email\ with_whitespace@d.com')
 
     def test_empty_username(self):
-        self.assertRaisesMessage(ValueError,
-                                 'The given username must be set',
-                                  User.objects.create_user, username='')
+        self.assertRaisesMessage(
+            ValueError,
+            'The given username must be set',
+            User.objects.create_user, username=''
+        )
 
 
 class AbstractUserTestCase(TestCase):

+ 2 - 2
django/contrib/flatpages/templatetags/flatpages.py

@@ -73,8 +73,8 @@ def get_flatpages(parser, token):
     """
     bits = token.split_contents()
     syntax_message = ("%(tag_name)s expects a syntax of %(tag_name)s "
-                       "['url_starts_with'] [for user] as context_name" %
-                       dict(tag_name=bits[0]))
+                      "['url_starts_with'] [for user] as context_name" %
+                      dict(tag_name=bits[0]))
    # Must have at 3-6 bits in the tag
     if len(bits) >= 3 and len(bits) <= 6:
 

+ 1 - 1
django/contrib/gis/forms/fields.py

@@ -23,7 +23,7 @@ class GeometryField(forms.Field):
         'invalid_geom': _('Invalid geometry value.'),
         'invalid_geom_type': _('Invalid geometry type.'),
         'transform_error': _('An error occurred when transforming the geometry '
-                              'to the SRID of the geometry form field.'),
+                             'to the SRID of the geometry form field.'),
     }
 
     def __init__(self, **kwargs):

+ 1 - 1
django/contrib/gis/gdal/prototypes/generation.py

@@ -104,7 +104,7 @@ def string_output(func, argtypes, offset=-1, str_result=False, decoding=None):
     # given offset.
     def _check_str(result, func, cargs):
         res = check_string(result, func, cargs,
-                            offset=offset, str_result=str_result)
+            offset=offset, str_result=str_result)
         if res and decoding:
             res = res.decode(decoding)
         return res

+ 5 - 3
django/contrib/gis/geos/libgeos.py

@@ -48,9 +48,11 @@ if lib_names:
 
 # No GEOS library could be found.
 if lib_path is None:
-    raise ImportError('Could not find the GEOS library (tried "%s"). '
-                        'Try setting GEOS_LIBRARY_PATH in your settings.' %
-                        '", "'.join(lib_names))
+    raise ImportError(
+        'Could not find the GEOS library (tried "%s"). '
+        'Try setting GEOS_LIBRARY_PATH in your settings.' %
+        '", "'.join(lib_names)
+    )
 
 # Getting the GEOS C library.  The C interface (CDLL) is used for
 # both *NIX and Windows.

+ 1 - 1
django/contrib/gis/geos/polygon.py

@@ -171,5 +171,5 @@ class Polygon(GEOSGeometry):
     def kml(self):
         "Returns the KML representation of this Polygon."
         inner_kml = ''.join("<innerBoundaryIs>%s</innerBoundaryIs>" % self[i + 1].kml
-                             for i in xrange(self.num_interior_rings))
+            for i in xrange(self.num_interior_rings))
         return "<Polygon><outerBoundaryIs>%s</outerBoundaryIs>%s</Polygon>" % (self[0].kml, inner_kml)

+ 8 - 8
django/contrib/gis/geos/tests/test_geos_mutation.py

@@ -117,7 +117,7 @@ class GEOSMutationTest(unittest.TestCase):
     def test04_LineStringMutations(self):
         'Testing LineString mutations'
         for ls in (LineString((1, 0), (4, 1), (6, -1)),
-                    fromstr('LINESTRING (1 0,4 1,6 -1)')):
+                   fromstr('LINESTRING (1 0,4 1,6 -1)')):
             self.assertEqual(ls._get_single_external(1), (4.0, 1.0), 'LineString _get_single_external')
 
             # _set_single
@@ -135,14 +135,14 @@ class GEOSMutationTest(unittest.TestCase):
     def test05_Polygon(self):
         'Testing Polygon mutations'
         for pg in (Polygon(((1, 0), (4, 1), (6, -1), (8, 10), (1, 0)),
-                            ((5, 4), (6, 4), (6, 3), (5, 4))),
-                    fromstr('POLYGON ((1 0,4 1,6 -1,8 10,1 0),(5 4,6 4,6 3,5 4))')):
+                           ((5, 4), (6, 4), (6, 3), (5, 4))),
+                   fromstr('POLYGON ((1 0,4 1,6 -1,8 10,1 0),(5 4,6 4,6 3,5 4))')):
             self.assertEqual(pg._get_single_external(0),
-                            LinearRing((1, 0), (4, 1), (6, -1), (8, 10), (1, 0)),
-                            'Polygon _get_single_external(0)')
+                             LinearRing((1, 0), (4, 1), (6, -1), (8, 10), (1, 0)),
+                             'Polygon _get_single_external(0)')
             self.assertEqual(pg._get_single_external(1),
-                            LinearRing((5, 4), (6, 4), (6, 3), (5, 4)),
-                            'Polygon _get_single_external(1)')
+                             LinearRing((5, 4), (6, 4), (6, 3), (5, 4)),
+                             'Polygon _get_single_external(1)')
 
             # _set_list
             pg._set_list(2, (((1, 2), (10, 0), (12, 9), (-1, 15), (1, 2)),
@@ -160,7 +160,7 @@ class GEOSMutationTest(unittest.TestCase):
     def test06_Collection(self):
         'Testing Collection mutations'
         for mp in (MultiPoint(*map(Point, ((3, 4), (-1, 2), (5, -4), (2, 8)))),
-                    fromstr('MULTIPOINT (3 4,-1 2,5 -4,2 8)')):
+                fromstr('MULTIPOINT (3 4,-1 2,5 -4,2 8)')):
             self.assertEqual(mp._get_single_external(2), Point(5, -4), 'Collection _get_single_external')
 
             mp._set_list(3, map(Point, ((5, 5), (3, -2), (8, 1))))

+ 3 - 3
django/contrib/gis/tests/geo3d/tests.py

@@ -47,9 +47,9 @@ interstate_data = (
     ('I-45',
      'LINESTRING(-95.3708481 29.7765870 11.339,-95.3694580 29.7787980 4.536,-95.3690305 29.7797359 9.762,-95.3691886 29.7812450 12.448,-95.3696447 29.7850144 10.457,-95.3702511 29.7868518 9.418,-95.3706724 29.7881286 14.858,-95.3711632 29.7896157 15.386,-95.3714525 29.7936267 13.168,-95.3717848 29.7955007 15.104,-95.3717719 29.7969804 16.516,-95.3717305 29.7982117 13.923,-95.3717254 29.8000778 14.385,-95.3719875 29.8013539 15.160,-95.3720575 29.8026785 15.544,-95.3721321 29.8040912 14.975,-95.3722074 29.8050998 15.688,-95.3722779 29.8060430 16.099,-95.3733818 29.8076750 15.197,-95.3741563 29.8103686 17.268,-95.3749458 29.8129927 19.857,-95.3763564 29.8144557 15.435)',
      (11.339, 4.536, 9.762, 12.448, 10.457, 9.418, 14.858,
-        15.386, 13.168, 15.104, 16.516, 13.923, 14.385, 15.16,
-        15.544, 14.975, 15.688, 16.099, 15.197, 17.268, 19.857,
-        15.435),
+      15.386, 13.168, 15.104, 16.516, 13.923, 14.385, 15.16,
+      15.544, 14.975, 15.688, 16.099, 15.197, 17.268, 19.857,
+      15.435),
      ),
 )
 

+ 2 - 2
django/contrib/gis/tests/test_spatialrefsys.py

@@ -23,8 +23,8 @@ test_srs = ({'srid': 4326,
              'auth_srid': 32140,
              'srtext': 'PROJCS["NAD83 / Texas South Central",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980"',
              'proj4_re': r'\+proj=lcc \+lat_1=30.28333333333333 \+lat_2=28.38333333333333 \+lat_0=27.83333333333333 '
-                          r'\+lon_0=-99 \+x_0=600000 \+y_0=4000000 (\+ellps=GRS80 )?'
-                          r'(\+datum=NAD83 |\+towgs84=0,0,0,0,0,0,0 )?\+units=m \+no_defs ',
+                         r'\+lon_0=-99 \+x_0=600000 \+y_0=4000000 (\+ellps=GRS80 )?'
+                         r'(\+datum=NAD83 |\+towgs84=0,0,0,0,0,0,0 )?\+units=m \+no_defs ',
              'spheroid': 'GRS 1980', 'name': 'NAD83 / Texas South Central',
              'geographic': False, 'projected': True, 'spatialite': False,
              'ellipsoid': (6378137.0, 6356752.31414, 298.257222101),  # From proj's "cs2cs -le" and Wikipedia (semi-minor only)

+ 1 - 1
django/contrib/messages/storage/cookie.py

@@ -39,7 +39,7 @@ class MessageDecoder(json.JSONDecoder):
             return [self.process_messages(item) for item in obj]
         if isinstance(obj, dict):
             return dict((key, self.process_messages(value))
-                         for key, value in six.iteritems(obj))
+                        for key, value in six.iteritems(obj))
         return obj
 
     def decode(self, s, **kwargs):

+ 4 - 6
django/contrib/messages/tests/base.py

@@ -62,7 +62,7 @@ class BaseTests(object):
             TEMPLATE_CONTEXT_PROCESSORS=global_settings.TEMPLATE_CONTEXT_PROCESSORS,
             MESSAGE_TAGS='',
             MESSAGE_STORAGE='%s.%s' % (self.storage_class.__module__,
-                                         self.storage_class.__name__),
+                                       self.storage_class.__name__),
             SESSION_SERIALIZER='django.contrib.sessions.serializers.JSONSerializer',
         )
         self.settings_override.enable()
@@ -164,8 +164,7 @@ class BaseTests(object):
             response = self.client.post(add_url, data, follow=True)
             self.assertRedirects(response, show_url)
             self.assertTrue('messages' in response.context)
-            messages = [Message(self.levels[level], msg) for msg in
-                                                         data['messages']]
+            messages = [Message(self.levels[level], msg) for msg in data['messages']]
             self.assertEqual(list(response.context['messages']), messages)
             for msg in data['messages']:
                 self.assertContains(response, msg)
@@ -209,8 +208,7 @@ class BaseTests(object):
         show_url = reverse('django.contrib.messages.tests.urls.show')
         messages = []
         for level in ('debug', 'info', 'success', 'warning', 'error'):
-            messages.extend([Message(self.levels[level], msg) for msg in
-                                                             data['messages']])
+            messages.extend([Message(self.levels[level], msg) for msg in data['messages']])
             add_url = reverse('django.contrib.messages.tests.urls.add',
                               args=(level,))
             self.client.post(add_url, data)
@@ -285,7 +283,7 @@ class BaseTests(object):
     def get_existing_storage(self):
         return self.get_storage([Message(constants.INFO, 'Test message 1'),
                                  Message(constants.INFO, 'Test message 2',
-                                              extra_tags='tag')])
+                                 extra_tags='tag')])
 
     def test_existing_read(self):
         """

+ 1 - 1
django/contrib/sessions/tests.py

@@ -446,7 +446,7 @@ class FileSessionTests(SessionTestsMixin, unittest.TestCase):
 
         def count_sessions():
             return len([session_file for session_file in os.listdir(storage_path)
-                                     if session_file.startswith(file_prefix)])
+                if session_file.startswith(file_prefix)])
 
         self.assertEqual(0, count_sessions())
 

+ 2 - 2
django/core/files/move.py

@@ -68,8 +68,8 @@ def file_move_safe(old_file_name, new_file_name, chunk_size=1024 * 64, allow_ove
     # first open the old file, so that it won't go away
     with open(old_file_name, 'rb') as old_file:
         # now open the new file, not forgetting allow_overwrite
-        fd = os.open(new_file_name, os.O_WRONLY | os.O_CREAT | getattr(os, 'O_BINARY', 0) |
-                                    (os.O_EXCL if not allow_overwrite else 0))
+        fd = os.open(new_file_name, (os.O_WRONLY | os.O_CREAT | getattr(os, 'O_BINARY', 0) |
+                                     (os.O_EXCL if not allow_overwrite else 0)))
         try:
             locks.lock(fd, locks.LOCK_EX)
             current_chunk = None

+ 1 - 2
django/core/management/__init__.py

@@ -118,8 +118,7 @@ def get_commands():
         for app_name in apps:
             try:
                 path = find_management_module(app_name)
-                _commands.update(dict((name, app_name)
-                                       for name in find_commands(path)))
+                _commands.update(dict((name, app_name) for name in find_commands(path)))
             except ImportError:
                 pass  # No management module - ignore this app
 

+ 2 - 2
django/core/management/commands/compilemessages.py

@@ -13,8 +13,8 @@ def has_bom(fn):
     with open(fn, 'rb') as f:
         sample = f.read(4)
     return sample[:3] == b'\xef\xbb\xbf' or \
-            sample.startswith(codecs.BOM_UTF16_LE) or \
-            sample.startswith(codecs.BOM_UTF16_BE)
+        sample.startswith(codecs.BOM_UTF16_LE) or \
+        sample.startswith(codecs.BOM_UTF16_BE)
 
 
 def compile_messages(stdout, locale=None):

+ 1 - 2
django/core/urlresolvers.py

@@ -131,8 +131,7 @@ def get_ns_resolver(ns_pattern, resolver):
     # Build a namespaced resolver for the given parent urlconf pattern.
     # This makes it possible to have captured parameters in the parent
     # urlconf pattern.
-    ns_resolver = RegexURLResolver(ns_pattern,
-                                          resolver.url_patterns)
+    ns_resolver = RegexURLResolver(ns_pattern, resolver.url_patterns)
     return RegexURLResolver(r'^/', [ns_resolver])
 
 

+ 7 - 7
django/db/backends/oracle/base.py

@@ -390,9 +390,11 @@ WHEN (new.%(col_name)s IS NULL)
             sequence_name = self._get_sequence_name(sequence_info['table'])
             table_name = self.quote_name(sequence_info['table'])
             column_name = self.quote_name(sequence_info['column'] or 'id')
-            query = _get_sequence_reset_sql() % {'sequence': sequence_name,
-                                                    'table': table_name,
-                                                    'column': column_name}
+            query = _get_sequence_reset_sql() % {
+                'sequence': sequence_name,
+                'table': table_name,
+                'column': column_name,
+            }
             sql.append(query)
         return sql
 
@@ -880,12 +882,10 @@ class FormatStylePlaceholderCursor(object):
     def fetchmany(self, size=None):
         if size is None:
             size = self.arraysize
-        return tuple(_rowfactory(r, self.cursor)
-                      for r in self.cursor.fetchmany(size))
+        return tuple(_rowfactory(r, self.cursor) for r in self.cursor.fetchmany(size))
 
     def fetchall(self):
-        return tuple(_rowfactory(r, self.cursor)
-                      for r in self.cursor.fetchall())
+        return tuple(_rowfactory(r, self.cursor) for r in self.cursor.fetchall())
 
     def var(self, *args):
         return VariableWrapper(self.cursor.var(*args))

+ 15 - 11
django/db/models/base.py

@@ -160,9 +160,11 @@ class ModelBase(type):
             new_class.add_to_class(obj_name, obj)
 
         # All the fields of any type declared on this model
-        new_fields = new_class._meta.local_fields + \
-                     new_class._meta.local_many_to_many + \
-                     new_class._meta.virtual_fields
+        new_fields = (
+            new_class._meta.local_fields +
+            new_class._meta.local_many_to_many +
+            new_class._meta.virtual_fields
+        )
         field_names = set(f.name for f in new_fields)
 
         # Basic setup for proxy models.
@@ -216,10 +218,11 @@ class ModelBase(type):
             # moment).
             for field in parent_fields:
                 if field.name in field_names:
-                    raise FieldError('Local field %r in class %r clashes '
-                                     'with field of similar name from '
-                                     'base class %r' %
-                                        (field.name, name, base.__name__))
+                    raise FieldError(
+                        'Local field %r in class %r clashes '
+                        'with field of similar name from '
+                        'base class %r' % (field.name, name, base.__name__)
+                    )
             if not base._meta.abstract:
                 # Concrete classes...
                 base = base._meta.concrete_model
@@ -253,10 +256,11 @@ class ModelBase(type):
             # class
             for field in base._meta.virtual_fields:
                 if base._meta.abstract and field.name in field_names:
-                    raise FieldError('Local field %r in class %r clashes '
-                                     'with field of similar name from '
-                                     'abstract base class %r' %
-                                        (field.name, name, base.__name__))
+                    raise FieldError(
+                        'Local field %r in class %r clashes '
+                        'with field of similar name from '
+                        'abstract base class %r' % (field.name, name, base.__name__)
+                    )
                 new_class.add_to_class(field.name, copy.deepcopy(field))
 
         if abstract:

+ 1 - 1
django/db/models/fields/__init__.py

@@ -603,7 +603,7 @@ class Field(object):
         rel_model = self.rel.to
         if hasattr(self.rel, 'get_related_field'):
             lst = [(getattr(x, self.rel.get_related_field().attname),
-                        smart_text(x))
+                   smart_text(x))
                    for x in rel_model._default_manager.complex_filter(
                        self.rel.limit_choices_to)]
         else:

+ 46 - 18
django/db/models/fields/related.py

@@ -227,12 +227,21 @@ class SingleRelatedObjectDescriptor(six.with_metaclass(RenameRelatedObjectDescri
         # If null=True, we can assign null here, but otherwise the value needs
         # to be an instance of the related class.
         if value is None and self.related.field.null is False:
-            raise ValueError('Cannot assign None: "%s.%s" does not allow null values.' %
-                                (instance._meta.object_name, self.related.get_accessor_name()))
+            raise ValueError(
+                'Cannot assign None: "%s.%s" does not allow null values.' % (
+                    instance._meta.object_name,
+                    self.related.get_accessor_name(),
+                )
+            )
         elif value is not None and not isinstance(value, self.related.model):
-            raise ValueError('Cannot assign "%r": "%s.%s" must be a "%s" instance.' %
-                                (value, instance._meta.object_name,
-                                 self.related.get_accessor_name(), self.related.opts.object_name))
+            raise ValueError(
+                'Cannot assign "%r": "%s.%s" must be a "%s" instance.' % (
+                    value,
+                    instance._meta.object_name,
+                    self.related.get_accessor_name(),
+                    self.related.opts.object_name,
+                )
+            )
         elif value is not None:
             if instance._state.db is None:
                 instance._state.db = router.db_for_write(instance.__class__, instance=value)
@@ -244,8 +253,10 @@ class SingleRelatedObjectDescriptor(six.with_metaclass(RenameRelatedObjectDescri
 
         related_pk = tuple(getattr(instance, field.attname) for field in self.related.field.foreign_related_fields)
         if None in related_pk:
-            raise ValueError('Cannot assign "%r": "%s" instance isn\'t saved in the database.' %
-                                (value, instance._meta.object_name))
+            raise ValueError(
+                'Cannot assign "%r": "%s" instance isn\'t saved in the database.' %
+                (value, instance._meta.object_name)
+            )
 
         # Set the value of the related field to the value of the related object's related field
         for index, field in enumerate(self.related.field.local_related_fields):
@@ -355,12 +366,19 @@ class ReverseSingleRelatedObjectDescriptor(six.with_metaclass(RenameRelatedObjec
         # If null=True, we can assign null here, but otherwise the value needs
         # to be an instance of the related class.
         if value is None and self.field.null is False:
-            raise ValueError('Cannot assign None: "%s.%s" does not allow null values.' %
-                                (instance._meta.object_name, self.field.name))
+            raise ValueError(
+                'Cannot assign None: "%s.%s" does not allow null values.' %
+                (instance._meta.object_name, self.field.name)
+            )
         elif value is not None and not isinstance(value, self.field.rel.to):
-            raise ValueError('Cannot assign "%r": "%s.%s" must be a "%s" instance.' %
-                                (value, instance._meta.object_name,
-                                 self.field.name, self.field.rel.to._meta.object_name))
+            raise ValueError(
+                'Cannot assign "%r": "%s.%s" must be a "%s" instance.' % (
+                    value,
+                    instance._meta.object_name,
+                    self.field.name,
+                    self.field.rel.to._meta.object_name,
+                )
+            )
         elif value is not None:
             if instance._state.db is None:
                 instance._state.db = router.db_for_write(instance.__class__, instance=value)
@@ -706,7 +724,10 @@ def create_many_related_manager(superclass, rel):
             # from the method lookup table, as we do with add and remove.
             if not self.through._meta.auto_created:
                 opts = self.through._meta
-                raise AttributeError("Cannot use create() on a ManyToManyField which specifies an intermediary model. Use %s.%s's Manager instead." % (opts.app_label, opts.object_name))
+                raise AttributeError(
+                    "Cannot use create() on a ManyToManyField which specifies an intermediary model. Use %s.%s's Manager instead." %
+                    (opts.app_label, opts.object_name)
+                )
             db = router.db_for_write(self.instance.__class__, instance=self.instance)
             new_obj = super(ManyRelatedManager, self.db_manager(db)).create(**kwargs)
             self.add(new_obj)
@@ -736,16 +757,23 @@ def create_many_related_manager(superclass, rel):
                 for obj in objs:
                     if isinstance(obj, self.model):
                         if not router.allow_relation(obj, self.instance):
-                            raise ValueError('Cannot add "%r": instance is on database "%s", value is on database "%s"' %
-                                               (obj, self.instance._state.db, obj._state.db))
+                            raise ValueError(
+                                'Cannot add "%r": instance is on database "%s", value is on database "%s"' %
+                                (obj, self.instance._state.db, obj._state.db)
+                            )
                         fk_val = self.through._meta.get_field(
                             target_field_name).get_foreign_related_value(obj)[0]
                         if fk_val is None:
-                            raise ValueError('Cannot add "%r": the value for field "%s" is None' %
-                                             (obj, target_field_name))
+                            raise ValueError(
+                                'Cannot add "%r": the value for field "%s" is None' %
+                                (obj, target_field_name)
+                            )
                         new_ids.add(fk_val)
                     elif isinstance(obj, Model):
-                        raise TypeError("'%s' instance expected, got %r" % (self.model._meta.object_name, obj))
+                        raise TypeError(
+                            "'%s' instance expected, got %r" %
+                            (self.model._meta.object_name, obj)
+                        )
                     else:
                         new_ids.add(obj)
                 db = router.db_for_write(self.through, instance=self.instance)

+ 4 - 6
django/db/models/loading.py

@@ -276,16 +276,15 @@ class BaseAppCache(object):
         try:
             model_list = self._get_models_cache[cache_key]
             if self.available_apps is not None and only_installed:
-                model_list = [m for m in model_list
-                                if m._meta.app_label in self.available_apps]
+                model_list = [m for m in model_list if m._meta.app_label in self.available_apps]
+
             return model_list
         except KeyError:
             pass
         self._populate()
         if app_mod:
             if app_mod in self.app_store:
-                app_list = [self.app_models.get(self._label_for(app_mod),
-                                                ModelDict())]
+                app_list = [self.app_models.get(self._label_for(app_mod), ModelDict())]
             else:
                 app_list = []
         else:
@@ -304,8 +303,7 @@ class BaseAppCache(object):
             )
         self._get_models_cache[cache_key] = model_list
         if self.available_apps is not None and only_installed:
-            model_list = [m for m in model_list
-                            if m._meta.app_label in self.available_apps]
+            model_list = [m for m in model_list if m._meta.app_label in self.available_apps]
         return model_list
 
     def get_model(self, app_label, model_name,

+ 16 - 16
django/db/models/query.py

@@ -150,10 +150,10 @@ class QuerySet(object):
         """
         if not isinstance(k, (slice,) + six.integer_types):
             raise TypeError
-        assert ((not isinstance(k, slice) and (k >= 0))
-                or (isinstance(k, slice) and (k.start is None or k.start >= 0)
-                    and (k.stop is None or k.stop >= 0))), \
-                "Negative indexing is not supported."
+        assert ((not isinstance(k, slice) and (k >= 0)) or
+                (isinstance(k, slice) and (k.start is None or k.start >= 0) and
+                 (k.stop is None or k.stop >= 0))), \
+            "Negative indexing is not supported."
 
         if self._result_cache is not None:
             return self._result_cache[k]
@@ -521,7 +521,7 @@ class QuerySet(object):
         that ID.
         """
         assert self.query.can_filter(), \
-                "Cannot use 'limit' or 'offset' with in_bulk"
+            "Cannot use 'limit' or 'offset' with in_bulk"
         if not id_list:
             return {}
         qs = self.filter(pk__in=id_list).order_by()
@@ -532,7 +532,7 @@ class QuerySet(object):
         Deletes the records in the current QuerySet.
         """
         assert self.query.can_filter(), \
-                "Cannot use 'limit' or 'offset' with delete."
+            "Cannot use 'limit' or 'offset' with delete."
 
         del_query = self._clone()
 
@@ -569,7 +569,7 @@ class QuerySet(object):
         fields to the appropriate values.
         """
         assert self.query.can_filter(), \
-                "Cannot update a query once a slice has been taken."
+            "Cannot update a query once a slice has been taken."
         self._for_write = True
         query = self.query.clone(sql.UpdateQuery)
         query.add_update_values(kwargs)
@@ -587,7 +587,7 @@ class QuerySet(object):
         useful at that level).
         """
         assert self.query.can_filter(), \
-                "Cannot update a query once a slice has been taken."
+            "Cannot update a query once a slice has been taken."
         query = self.query.clone(sql.UpdateQuery)
         query.add_update_fields(values)
         self._result_cache = None
@@ -635,11 +635,11 @@ class QuerySet(object):
         the given field_name, scoped to 'kind'.
         """
         assert kind in ("year", "month", "day"), \
-                "'kind' must be one of 'year', 'month' or 'day'."
+            "'kind' must be one of 'year', 'month' or 'day'."
         assert order in ('ASC', 'DESC'), \
-                "'order' must be either 'ASC' or 'DESC'."
+            "'order' must be either 'ASC' or 'DESC'."
         return self._clone(klass=DateQuerySet, setup=True,
-                _field_name=field_name, _kind=kind, _order=order)
+             _field_name=field_name, _kind=kind, _order=order)
 
     def datetimes(self, field_name, kind, order='ASC', tzinfo=None):
         """
@@ -647,9 +647,9 @@ class QuerySet(object):
         datetimes for the given field_name, scoped to 'kind'.
         """
         assert kind in ("year", "month", "day", "hour", "minute", "second"), \
-                "'kind' must be one of 'year', 'month', 'day', 'hour', 'minute' or 'second'."
+            "'kind' must be one of 'year', 'month', 'day', 'hour', 'minute' or 'second'."
         assert order in ('ASC', 'DESC'), \
-                "'order' must be either 'ASC' or 'DESC'."
+            "'order' must be either 'ASC' or 'DESC'."
         if settings.USE_TZ:
             if tzinfo is None:
                 tzinfo = timezone.get_current_timezone()
@@ -804,7 +804,7 @@ class QuerySet(object):
         Returns a new QuerySet instance with the ordering changed.
         """
         assert self.query.can_filter(), \
-                "Cannot reorder a query once a slice has been taken."
+            "Cannot reorder a query once a slice has been taken."
         obj = self._clone()
         obj.query.clear_ordering(force_empty=False)
         obj.query.add_ordering(*field_names)
@@ -815,7 +815,7 @@ class QuerySet(object):
         Returns a new QuerySet instance that will select only distinct results.
         """
         assert self.query.can_filter(), \
-                "Cannot create distinct fields once a slice has been taken."
+            "Cannot create distinct fields once a slice has been taken."
         obj = self._clone()
         obj.query.add_distinct_fields(*field_names)
         return obj
@@ -826,7 +826,7 @@ class QuerySet(object):
         Adds extra SQL fragments to the query.
         """
         assert self.query.can_filter(), \
-                "Cannot change a query once a slice has been taken"
+            "Cannot change a query once a slice has been taken"
         clone = self._clone()
         clone.query.add_extra(select, select_params, where, params, tables, order_by)
         return clone

+ 1 - 1
django/db/models/sql/compiler.py

@@ -893,7 +893,7 @@ class SQLDeleteCompiler(SQLCompiler):
         parameters.
         """
         assert len(self.query.tables) == 1, \
-                "Can only delete from one table at a time."
+            "Can only delete from one table at a time."
         qn = self.quote_name_unless_alias
         result = ['DELETE FROM %s' % qn(self.query.tables[0])]
         where, params = self.query.where.as_sql(qn=qn, connection=self.connection)

+ 2 - 2
django/db/models/sql/query.py

@@ -452,9 +452,9 @@ class Query(object):
         'rhs' query.
         """
         assert self.model == rhs.model, \
-                "Cannot combine queries on two different base models."
+            "Cannot combine queries on two different base models."
         assert self.can_filter(), \
-                "Cannot combine queries once a slice has been taken."
+            "Cannot combine queries once a slice has been taken."
         assert self.distinct == rhs.distinct, \
             "Cannot combine a unique query with a non-unique query."
         assert self.distinct_fields == rhs.distinct_fields, \

+ 1 - 1
django/dispatch/saferef.py

@@ -221,7 +221,7 @@ class BoundNonDescriptorMethodWeakref(BoundMethodWeakref):
             which will be passed a pointer to this object.
         """
         assert getattr(target.__self__, target.__name__) == target, \
-               ("method %s isn't available as the attribute %s of %s" %
+            ("method %s isn't available as the attribute %s of %s" %
                 (target, target.__name__, target.__self__))
         super(BoundNonDescriptorMethodWeakref, self).__init__(target, onDelete)
 

+ 1 - 2
django/forms/models.py

@@ -240,8 +240,7 @@ class ModelFormMetaclass(DeclarativeFieldsMetaclass):
     def __new__(mcs, name, bases, attrs):
         formfield_callback = attrs.pop('formfield_callback', None)
 
-        new_class = (super(ModelFormMetaclass, mcs)
-                        .__new__(mcs, name, bases, attrs))
+        new_class = super(ModelFormMetaclass, mcs).__new__(mcs, name, bases, attrs)
 
         if bases == (BaseModelForm,):
             return new_class

+ 3 - 4
django/http/multipartparser.py

@@ -259,10 +259,9 @@ class MultiPartParser(object):
             file_obj = handler.file_complete(counters[i])
             if file_obj:
                 # If it returns a file object, then set the files dict.
-                self._files.appendlist(force_text(old_field_name,
-                                                     self._encoding,
-                                                     errors='replace'),
-                                       file_obj)
+                self._files.appendlist(
+                    force_text(old_field_name, self._encoding, errors='replace'),
+                    file_obj)
                 break
 
     def IE_sanitize(self, filename):

+ 2 - 4
django/template/base.py

@@ -92,8 +92,7 @@ class VariableDoesNotExist(Exception):
         self.params = params
 
     def __str__(self):
-        return self.msg % tuple(force_text(p, errors='replace')
-                                 for p in self.params)
+        return self.msg % tuple(force_text(p, errors='replace') for p in self.params)
 
 
 class InvalidTemplateLibrary(Exception):
@@ -1055,8 +1054,7 @@ class TagHelperNode(Node):
         resolved_args = [var.resolve(context) for var in self.args]
         if self.takes_context:
             resolved_args = [context] + resolved_args
-        resolved_kwargs = dict((k, v.resolve(context))
-                                for k, v in self.kwargs.items())
+        resolved_kwargs = dict((k, v.resolve(context)) for k, v in self.kwargs.items())
         return resolved_args, resolved_kwargs
 
 

+ 2 - 2
django/template/defaulttags.py

@@ -430,7 +430,7 @@ class URLNode(Node):
         from django.core.urlresolvers import reverse, NoReverseMatch
         args = [arg.resolve(context) for arg in self.args]
         kwargs = dict((smart_text(k, 'ascii'), v.resolve(context))
-                       for k, v in self.kwargs.items())
+                      for k, v in self.kwargs.items())
 
         view_name = self.view_name.resolve(context)
 
@@ -525,7 +525,7 @@ class WithNode(Node):
 
     def render(self, context):
         values = dict((key, val.resolve(context)) for key, val in
-                       six.iteritems(self.extra_context))
+                      six.iteritems(self.extra_context))
         with context.push(**values):
             return self.nodelist.render(context)
 

+ 1 - 1
django/template/loader_tags.py

@@ -117,7 +117,7 @@ class ExtendsNode(Node):
             if not isinstance(node, TextNode):
                 if not isinstance(node, ExtendsNode):
                     blocks = dict((n.name, n) for n in
-                                   compiled_parent.nodelist.get_nodes_by_type(BlockNode))
+                                  compiled_parent.nodelist.get_nodes_by_type(BlockNode))
                     block_context.add_blocks(blocks)
                 break
 

+ 14 - 14
django/test/testcases.py

@@ -394,15 +394,15 @@ class SimpleTestCase(unittest.TestCase):
                             msg_prefix + "The field '%s' on form '%s' in"
                             " context %d does not contain the error '%s'"
                             " (actual errors: %s)" %
-                                (field, form, i, err, repr(field_errors)))
+                            (field, form, i, err, repr(field_errors)))
                     elif field in context[form].fields:
                         self.fail(msg_prefix + "The field '%s' on form '%s'"
                                   " in context %d contains no errors" %
-                                      (field, form, i))
+                                  (field, form, i))
                     else:
                         self.fail(msg_prefix + "The form '%s' in context %d"
                                   " does not contain the field '%s'" %
-                                      (form, i, field))
+                                  (form, i, field))
                 else:
                     non_field_errors = context[form].non_field_errors()
                     self.assertTrue(err in non_field_errors,
@@ -452,30 +452,30 @@ class SimpleTestCase(unittest.TestCase):
                                 msg_prefix + "The field '%s' on formset '%s', "
                                 "form %d in context %d does not contain the "
                                 "error '%s' (actual errors: %s)" %
-                                        (field, formset, form_index, i, err,
-                                        repr(field_errors)))
+                                (field, formset, form_index, i, err,
+                                 repr(field_errors)))
                     elif field in context[formset].forms[form_index].fields:
                         self.fail(msg_prefix + "The field '%s' "
                                   "on formset '%s', form %d in "
                                   "context %d contains no errors" %
-                                        (field, formset, form_index, i))
+                                  (field, formset, form_index, i))
                     else:
                         self.fail(msg_prefix + "The formset '%s', form %d in "
-                                 "context %d does not contain the field '%s'" %
-                                        (formset, form_index, i, field))
+                                  "context %d does not contain the field '%s'" %
+                                  (formset, form_index, i, field))
                 elif form_index is not None:
                     non_field_errors = context[formset].forms[form_index].non_field_errors()
                     self.assertFalse(len(non_field_errors) == 0,
-                                msg_prefix + "The formset '%s', form %d in "
-                                "context %d does not contain any non-field "
-                                "errors." % (formset, form_index, i))
+                                     msg_prefix + "The formset '%s', form %d in "
+                                     "context %d does not contain any non-field "
+                                     "errors." % (formset, form_index, i))
                     self.assertTrue(err in non_field_errors,
                                     msg_prefix + "The formset '%s', form %d "
                                     "in context %d does not contain the "
                                     "non-field error '%s' "
                                     "(actual errors: %s)" %
-                                        (formset, form_index, i, err,
-                                         repr(non_field_errors)))
+                                    (formset, form_index, i, err,
+                                     repr(non_field_errors)))
                 else:
                     non_form_errors = context[formset].non_form_errors()
                     self.assertFalse(len(non_form_errors) == 0,
@@ -486,7 +486,7 @@ class SimpleTestCase(unittest.TestCase):
                                     msg_prefix + "The formset '%s' in context "
                                     "%d does not contain the "
                                     "non-form error '%s' (actual errors: %s)" %
-                                      (formset, i, err, repr(non_form_errors)))
+                                    (formset, i, err, repr(non_form_errors)))
         if not found_formset:
             self.fail(msg_prefix + "The formset '%s' was not used to render "
                       "the response" % formset)

+ 1 - 1
django/utils/archive.py

@@ -160,7 +160,7 @@ class TarArchive(BaseArchive):
                     # Some corrupt tar files seem to produce this
                     # (specifically bad symlinks)
                     print("In the tar file %s the member %s is invalid: %s" %
-                            (name, member.name, exc))
+                          (name, member.name, exc))
                 else:
                     dirname = os.path.dirname(filename)
                     if dirname and not os.path.exists(dirname):

+ 1 - 2
django/utils/html.py

@@ -80,8 +80,7 @@ def format_html(format_string, *args, **kwargs):
     of str.format or % interpolation to build up small HTML fragments.
     """
     args_safe = map(conditional_escape, args)
-    kwargs_safe = dict((k, conditional_escape(v)) for (k, v) in
-                        six.iteritems(kwargs))
+    kwargs_safe = dict((k, conditional_escape(v)) for (k, v) in six.iteritems(kwargs))
     return mark_safe(format_string.format(*args_safe, **kwargs_safe))
 
 

+ 1 - 2
django/utils/importlib.py

@@ -17,8 +17,7 @@ def _resolve_name(name, package, level):
         try:
             dot = package.rindex('.', 0, dot)
         except ValueError:
-            raise ValueError("attempted relative import beyond top-level "
-                              "package")
+            raise ValueError("attempted relative import beyond top-level package")
     return "%s.%s" % (package[:dot], name)
 
 

+ 2 - 2
docs/_ext/djangodocs.py

@@ -344,9 +344,9 @@ class DjangoStandaloneHTMLBuilder(StandaloneHTMLBuilder):
         xrefs = self.env.domaindata["std"]["objects"]
         templatebuiltins = {
             "ttags": [n for ((t, n), (l, a)) in xrefs.items()
-                        if t == "templatetag" and l == "ref/templates/builtins"],
+                      if t == "templatetag" and l == "ref/templates/builtins"],
             "tfilters": [n for ((t, n), (l, a)) in xrefs.items()
-                        if t == "templatefilter" and l == "ref/templates/builtins"],
+                         if t == "templatefilter" and l == "ref/templates/builtins"],
         }
         outfilename = os.path.join(self.outdir, "templatebuiltins.js")
         with open(outfilename, 'w') as fp:

+ 1 - 1
setup.cfg

@@ -4,7 +4,7 @@ install-script = scripts/rpm-install.sh
 
 [flake8]
 exclude=.git,./django/utils/dictconfig.py,./django/contrib/comments/*,./django/utils/unittest.py,./django/utils/lru_cache.py,./tests/comment_tests/*,./django/test/_doctest.py,./django/utils/six.py,./django/conf/app_template/*
-ignore=E127,E128,E501,W601
+ignore=E128,E501,W601
 
 [metadata]
 license-file = LICENSE

+ 32 - 14
tests/admin_filters/tests.py

@@ -243,9 +243,13 @@ class ListFiltersTests(TestCase):
         self.assertEqual(force_text(filterspec.title), 'date registered')
         choice = select_by(filterspec.choices(changelist), "display", "Today")
         self.assertEqual(choice['selected'], True)
-        self.assertEqual(choice['query_string'], '?date_registered__gte=%s'
-                                                 '&date_registered__lt=%s'
-                                                % (self.today, self.tomorrow))
+        self.assertEqual(
+            choice['query_string'],
+            '?date_registered__gte=%s&date_registered__lt=%s' % (
+                self.today,
+                self.tomorrow,
+            )
+        )
 
         request = self.request_factory.get('/', {'date_registered__gte': self.today.replace(day=1),
                                                  'date_registered__lt': self.next_month})
@@ -264,9 +268,13 @@ class ListFiltersTests(TestCase):
         self.assertEqual(force_text(filterspec.title), 'date registered')
         choice = select_by(filterspec.choices(changelist), "display", "This month")
         self.assertEqual(choice['selected'], True)
-        self.assertEqual(choice['query_string'], '?date_registered__gte=%s'
-                                                 '&date_registered__lt=%s'
-                                                % (self.today.replace(day=1), self.next_month))
+        self.assertEqual(
+            choice['query_string'],
+            '?date_registered__gte=%s&date_registered__lt=%s' % (
+                self.today.replace(day=1),
+                self.next_month,
+            )
+        )
 
         request = self.request_factory.get('/', {'date_registered__gte': self.today.replace(month=1, day=1),
                                                  'date_registered__lt': self.next_year})
@@ -285,12 +293,18 @@ class ListFiltersTests(TestCase):
         self.assertEqual(force_text(filterspec.title), 'date registered')
         choice = select_by(filterspec.choices(changelist), "display", "This year")
         self.assertEqual(choice['selected'], True)
-        self.assertEqual(choice['query_string'], '?date_registered__gte=%s'
-                                                 '&date_registered__lt=%s'
-                                                % (self.today.replace(month=1, day=1), self.next_year))
+        self.assertEqual(
+            choice['query_string'],
+            '?date_registered__gte=%s&date_registered__lt=%s' % (
+                self.today.replace(month=1, day=1),
+                self.next_year,
+            )
+        )
 
-        request = self.request_factory.get('/', {'date_registered__gte': str(self.one_week_ago),
-                                                 'date_registered__lt': str(self.tomorrow)})
+        request = self.request_factory.get('/', {
+            'date_registered__gte': str(self.one_week_ago),
+            'date_registered__lt': str(self.tomorrow),
+        })
         changelist = self.get_changelist(request, Book, modeladmin)
 
         # Make sure the correct queryset is returned
@@ -302,9 +316,13 @@ class ListFiltersTests(TestCase):
         self.assertEqual(force_text(filterspec.title), 'date registered')
         choice = select_by(filterspec.choices(changelist), "display", "Past 7 days")
         self.assertEqual(choice['selected'], True)
-        self.assertEqual(choice['query_string'], '?date_registered__gte=%s'
-                                                 '&date_registered__lt=%s'
-                                                % (str(self.one_week_ago), str(self.tomorrow)))
+        self.assertEqual(
+            choice['query_string'],
+            '?date_registered__gte=%s&date_registered__lt=%s' % (
+                str(self.one_week_ago),
+                str(self.tomorrow),
+            )
+        )
 
     @override_settings(USE_TZ=True)
     def test_datefieldlistfilter_with_time_zone_support(self):

+ 2 - 2
tests/admin_views/tests.py

@@ -4643,7 +4643,7 @@ class AdminViewOnSiteTests(TestCase):
         # actual regression test
         for error_set in response.context['inline_admin_formset'].formset.errors:
             self.assertEqual(['Children must share a family name with their parents in this contrived test case'],
-                              error_set.get('__all__'))
+                             error_set.get('__all__'))
 
     def test_change_view_form_and_formsets_run_validation(self):
         """
@@ -4673,7 +4673,7 @@ class AdminViewOnSiteTests(TestCase):
         # actual regression test
         for error_set in response.context['inline_admin_formset'].formset.errors:
             self.assertEqual(['Children must share a family name with their parents in this contrived test case'],
-                              error_set.get('__all__'))
+                             error_set.get('__all__'))
 
     def test_validate(self):
         "Ensure that the view_on_site value is either a boolean or a callable"

+ 34 - 41
tests/defaultfilters/tests.py

@@ -59,7 +59,7 @@ class DefaultFiltersTests(TestCase):
         self.assertEqual(floatformat(0, 7), '0.0000000')
         self.assertEqual(floatformat(0, 10), '0.0000000000')
         self.assertEqual(floatformat(0.000000000000000000015, 20),
-                                     '0.00000000000000000002')
+                         '0.00000000000000000002')
 
         pos_inf = float(1e30000)
         self.assertEqual(floatformat(pos_inf), six.text_type(pos_inf))
@@ -103,10 +103,10 @@ class DefaultFiltersTests(TestCase):
 
     def test_addslashes(self):
         self.assertEqual(addslashes('"double quotes" and \'single quotes\''),
-                          '\\"double quotes\\" and \\\'single quotes\\\'')
+                         '\\"double quotes\\" and \\\'single quotes\\\'')
 
         self.assertEqual(addslashes(r'\ : backslashes, too'),
-                          '\\\\ : backslashes, too')
+                         '\\\\ : backslashes, too')
 
     def test_capfirst(self):
         self.assertEqual(capfirst('hello world'), 'Hello world')
@@ -126,14 +126,14 @@ class DefaultFiltersTests(TestCase):
 
     def test_fix_ampersands(self):
         self.assertEqual(fix_ampersands_filter('Jack & Jill & Jeroboam'),
-                          'Jack &amp; Jill &amp; Jeroboam')
+                         'Jack &amp; Jill &amp; Jeroboam')
 
     def test_linenumbers(self):
         self.assertEqual(linenumbers('line 1\nline 2'),
-                          '1. line 1\n2. line 2')
+                         '1. line 1\n2. line 2')
         self.assertEqual(linenumbers('\n'.join(['x'] * 10)),
-                          '01. x\n02. x\n03. x\n04. x\n05. x\n06. x\n07. '
-                          'x\n08. x\n09. x\n10. x')
+                         '01. x\n02. x\n03. x\n04. x\n05. x\n06. x\n07. '
+                         'x\n08. x\n09. x\n10. x')
 
     def test_lower(self):
         self.assertEqual(lower('TEST'), 'test')
@@ -151,7 +151,7 @@ class DefaultFiltersTests(TestCase):
             'jack-jill-like-numbers-123-and-4-and-silly-characters')
 
         self.assertEqual(slugify("Un \xe9l\xe9phant \xe0 l'or\xe9e du bois"),
-                          'un-elephant-a-loree-du-bois')
+                         'un-elephant-a-loree-du-bois')
 
     def test_stringformat(self):
         self.assertEqual(stringformat(1, '03d'), '001')
@@ -159,7 +159,7 @@ class DefaultFiltersTests(TestCase):
 
     def test_title(self):
         self.assertEqual(title('a nice title, isn\'t it?'),
-                          "A Nice Title, Isn't It?")
+                         "A Nice Title, Isn't It?")
         self.assertEqual(title('discoth\xe8que'), 'Discoth\xe8que')
 
     def test_truncatewords(self):
@@ -203,14 +203,14 @@ class DefaultFiltersTests(TestCase):
 
     def test_urlencode(self):
         self.assertEqual(urlencode('fran\xe7ois & jill'),
-                          'fran%C3%A7ois%20%26%20jill')
+                         'fran%C3%A7ois%20%26%20jill')
         self.assertEqual(urlencode(1), '1')
 
     def test_iriencode(self):
         self.assertEqual(iriencode('S\xf8r-Tr\xf8ndelag'),
-                          'S%C3%B8r-Tr%C3%B8ndelag')
+                         'S%C3%B8r-Tr%C3%B8ndelag')
         self.assertEqual(iriencode(urlencode('fran\xe7ois & jill')),
-                          'fran%C3%A7ois%20%26%20jill')
+                         'fran%C3%A7ois%20%26%20jill')
 
     def test_urlizetrunc(self):
         self.assertEqual(urlizetrunc('http://short.com/', 20), '<a href='
@@ -383,11 +383,11 @@ class DefaultFiltersTests(TestCase):
 
     def test_cut(self):
         self.assertEqual(cut('a string to be mangled', 'a'),
-                          ' string to be mngled')
+                         ' string to be mngled')
         self.assertEqual(cut('a string to be mangled', 'ng'),
-                          'a stri to be maled')
+                         'a stri to be maled')
         self.assertEqual(cut('a string to be mangled', 'strings'),
-                          'a string to be mangled')
+                         'a string to be mangled')
 
     def test_force_escape(self):
         escaped = force_escape('<some html & special characters > here')
@@ -402,19 +402,19 @@ class DefaultFiltersTests(TestCase):
     def test_linebreaks(self):
         self.assertEqual(linebreaks_filter('line 1'), '<p>line 1</p>')
         self.assertEqual(linebreaks_filter('line 1\nline 2'),
-                          '<p>line 1<br />line 2</p>')
+                         '<p>line 1<br />line 2</p>')
         self.assertEqual(linebreaks_filter('line 1\rline 2'),
-                          '<p>line 1<br />line 2</p>')
+                         '<p>line 1<br />line 2</p>')
         self.assertEqual(linebreaks_filter('line 1\r\nline 2'),
-                          '<p>line 1<br />line 2</p>')
+                         '<p>line 1<br />line 2</p>')
 
     def test_linebreaksbr(self):
         self.assertEqual(linebreaksbr('line 1\nline 2'),
-                          'line 1<br />line 2')
+                         'line 1<br />line 2')
         self.assertEqual(linebreaksbr('line 1\rline 2'),
-                          'line 1<br />line 2')
+                         'line 1<br />line 2')
         self.assertEqual(linebreaksbr('line 1\r\nline 2'),
-                          'line 1<br />line 2')
+                         'line 1<br />line 2')
 
     def test_removetags(self):
         self.assertEqual(removetags('some <b>html</b> with <script>alert'
@@ -509,8 +509,7 @@ class DefaultFiltersTests(TestCase):
             '</li>\n\t</ul>\n\t</li>\n\t<li>item 2</li>')
 
         self.assertEqual(
-            unordered_list(['item 1', ['item 1.1', ['item 1.1.1',
-                                                      ['item 1.1.1.1']]]]),
+            unordered_list(['item 1', ['item 1.1', ['item 1.1.1', ['item 1.1.1.1']]]]),
             '\t<li>item 1\n\t<ul>\n\t\t<li>item 1.1\n\t\t<ul>\n\t\t\t<li>'
             'item 1.1.1\n\t\t\t<ul>\n\t\t\t\t<li>item 1.1.1.1</li>\n\t\t\t'
             '</ul>\n\t\t\t</li>\n\t\t</ul>\n\t\t</li>\n\t</ul>\n\t</li>')
@@ -531,8 +530,7 @@ class DefaultFiltersTests(TestCase):
 
         a = ULItem('a')
         b = ULItem('b')
-        self.assertEqual(unordered_list([a, b]),
-                          '\t<li>ulitem-a</li>\n\t<li>ulitem-b</li>')
+        self.assertEqual(unordered_list([a, b]), '\t<li>ulitem-a</li>\n\t<li>ulitem-b</li>')
 
         # Old format for unordered lists should still work
         self.assertEqual(unordered_list(['item 1', []]), '\t<li>item 1</li>')
@@ -564,9 +562,9 @@ class DefaultFiltersTests(TestCase):
     def test_date(self):
         # real testing of date() is in dateformat.py
         self.assertEqual(date(datetime.datetime(2005, 12, 29), "d F Y"),
-                          '29 December 2005')
+                         '29 December 2005')
         self.assertEqual(date(datetime.datetime(2005, 12, 29), r'jS \o\f F'),
-                          '29th of December')
+                         '29th of December')
 
     def test_time(self):
         # real testing of time() is done in dateformat.py
@@ -615,13 +613,13 @@ class DefaultFiltersTests(TestCase):
         self.assertEqual(yesno(False), 'no')
         self.assertEqual(yesno(None), 'maybe')
         self.assertEqual(yesno(True, 'certainly,get out of town,perhaps'),
-                          'certainly')
+                         'certainly')
         self.assertEqual(yesno(False, 'certainly,get out of town,perhaps'),
-                          'get out of town')
+                         'get out of town')
         self.assertEqual(yesno(None, 'certainly,get out of town,perhaps'),
-                          'perhaps')
+                         'perhaps')
         self.assertEqual(yesno(None, 'certainly,get out of town'),
-                          'get out of town')
+                         'get out of town')
 
     def test_filesizeformat(self):
         # NOTE: \xa0 avoids wrapping between value and unit
@@ -635,12 +633,10 @@ class DefaultFiltersTests(TestCase):
         self.assertEqual(filesizeformat(1024 * 1024 * 1024), '1.0\xa0GB')
         self.assertEqual(filesizeformat(1024 * 1024 * 1024 * 1024), '1.0\xa0TB')
         self.assertEqual(filesizeformat(1024 * 1024 * 1024 * 1024 * 1024), '1.0\xa0PB')
-        self.assertEqual(filesizeformat(1024 * 1024 * 1024 * 1024 * 1024 * 2000),
-                          '2000.0\xa0PB')
+        self.assertEqual(filesizeformat(1024 * 1024 * 1024 * 1024 * 1024 * 2000), '2000.0\xa0PB')
         self.assertEqual(filesizeformat(complex(1, -1)), '0\xa0bytes')
         self.assertEqual(filesizeformat(""), '0\xa0bytes')
-        self.assertEqual(filesizeformat("\N{GREEK SMALL LETTER ALPHA}"),
-                          '0\xa0bytes')
+        self.assertEqual(filesizeformat("\N{GREEK SMALL LETTER ALPHA}"), '0\xa0bytes')
 
     def test_pluralize(self):
         self.assertEqual(pluralize(1), '')
@@ -701,11 +697,8 @@ class DefaultFiltersI18NTests(TransRealMixin, TestCase):
             self.assertEqual(filesizeformat(1024 * 1024 * 1024 - 1), '1024,0\xa0MB')
             self.assertEqual(filesizeformat(1024 * 1024 * 1024), '1,0\xa0GB')
             self.assertEqual(filesizeformat(1024 * 1024 * 1024 * 1024), '1,0\xa0TB')
-            self.assertEqual(filesizeformat(1024 * 1024 * 1024 * 1024 * 1024),
-                              '1,0\xa0PB')
-            self.assertEqual(filesizeformat(1024 * 1024 * 1024 * 1024 * 1024 * 2000),
-                              '2000,0\xa0PB')
+            self.assertEqual(filesizeformat(1024 * 1024 * 1024 * 1024 * 1024), '1,0\xa0PB')
+            self.assertEqual(filesizeformat(1024 * 1024 * 1024 * 1024 * 1024 * 2000), '2000,0\xa0PB')
             self.assertEqual(filesizeformat(complex(1, -1)), '0\xa0Bytes')
             self.assertEqual(filesizeformat(""), '0\xa0Bytes')
-            self.assertEqual(filesizeformat("\N{GREEK SMALL LETTER ALPHA}"),
-                              '0\xa0Bytes')
+            self.assertEqual(filesizeformat("\N{GREEK SMALL LETTER ALPHA}"), '0\xa0Bytes')

+ 9 - 6
tests/mail/tests.py

@@ -859,22 +859,25 @@ class SMTPBackendTests(BaseEmailBackendTests, SimpleTestCase):
     def get_mailbox_content(self):
         return self.server.get_sink()
 
-    @override_settings(EMAIL_HOST_USER="not empty username",
-                        EMAIL_HOST_PASSWORD="not empty password")
+    @override_settings(
+        EMAIL_HOST_USER="not empty username",
+        EMAIL_HOST_PASSWORD="not empty password")
     def test_email_authentication_use_settings(self):
         backend = smtp.EmailBackend()
         self.assertEqual(backend.username, 'not empty username')
         self.assertEqual(backend.password, 'not empty password')
 
-    @override_settings(EMAIL_HOST_USER="not empty username",
-                        EMAIL_HOST_PASSWORD="not empty password")
+    @override_settings(
+        EMAIL_HOST_USER="not empty username",
+        EMAIL_HOST_PASSWORD="not empty password")
     def test_email_authentication_override_settings(self):
         backend = smtp.EmailBackend(username='username', password='password')
         self.assertEqual(backend.username, 'username')
         self.assertEqual(backend.password, 'password')
 
-    @override_settings(EMAIL_HOST_USER="not empty username",
-                        EMAIL_HOST_PASSWORD="not empty password")
+    @override_settings(
+        EMAIL_HOST_USER="not empty username",
+        EMAIL_HOST_PASSWORD="not empty password")
     def test_email_disabled_authentication(self):
         backend = smtp.EmailBackend(username='', password='')
         self.assertEqual(backend.username, '')

+ 1 - 1
tests/many_to_one/tests.py

@@ -338,7 +338,7 @@ class ManyToOneTests(TestCase):
 
     def test_delete(self):
         self.r.article_set.create(headline="John's second story",
-                                                pub_date=datetime.date(2005, 7, 29))
+                                  pub_date=datetime.date(2005, 7, 29))
         self.r2.article_set.create(headline="Paul's story",
                                    pub_date=datetime.date(2006, 1, 17))
         Article.objects.create(id=None, headline="Third article",

+ 2 - 4
tests/model_inheritance_regress/tests.py

@@ -412,13 +412,11 @@ class ModelInheritanceTest(TestCase):
         # when more than one model has a concrete->abstract->concrete
         # inheritance hierarchy.
         self.assertEqual(
-            len([field for field in BusStation._meta.local_fields
-                       if field.primary_key]),
+            len([field for field in BusStation._meta.local_fields if field.primary_key]),
             1
         )
         self.assertEqual(
-            len([field for field in TrainStation._meta.local_fields
-                       if field.primary_key]),
+            len([field for field in TrainStation._meta.local_fields if field.primary_key]),
             1
         )
         self.assertIs(BusStation._meta.pk.model, BusStation)

+ 7 - 9
tests/prefetch_related/tests.py

@@ -173,7 +173,7 @@ class PrefetchRelatedTests(TestCase):
         with self.assertNumQueries(3):
             author = Author.objects.prefetch_related('books__read_by').get(name="Charlotte")
             lists = [[six.text_type(r) for r in b.read_by.all()]
-                      for b in author.books.all()]
+                     for b in author.books.all()]
             self.assertEqual(lists, [["Amy"], ["Belinda"]])  # Poems, Jane Eyre
 
     def test_foreign_key_then_m2m(self):
@@ -793,8 +793,7 @@ class NullableTest(TestCase):
                         for e in qs]
 
         qs2 = Employee.objects.select_related('boss')
-        co_serfs2 = [list(e.boss.serfs.all()) if e.boss is not None else []
-                        for e in qs2]
+        co_serfs2 = [list(e.boss.serfs.all()) if e.boss is not None else [] for e in qs2]
 
         self.assertEqual(co_serfs, co_serfs2)
 
@@ -806,8 +805,7 @@ class NullableTest(TestCase):
                         for e in qs]
 
         qs2 = Employee.objects.all()
-        co_serfs2 = [list(e.boss.serfs.all()) if e.boss is not None else []
-                        for e in qs2]
+        co_serfs2 = [list(e.boss.serfs.all()) if e.boss is not None else [] for e in qs2]
 
         self.assertEqual(co_serfs, co_serfs2)
 
@@ -865,10 +863,10 @@ class MultiDbTests(TestCase):
                                (author.name, ", ".join(b.title for b in author.books.all()))
                                for author in qs2])
         self.assertEqual(authors,
-                          "Charlotte: Poems, Jane Eyre\n"
-                          "Anne: Poems\n"
-                          "Emily: Poems, Wuthering Heights\n"
-                          "Jane: Sense and Sensibility\n")
+                         "Charlotte: Poems, Jane Eyre\n"
+                         "Anne: Poems\n"
+                         "Emily: Poems, Wuthering Heights\n"
+                         "Jane: Sense and Sensibility\n")
 
     def test_using_is_honored_fkey(self):
         B = Book.objects.using('other')

+ 8 - 4
tests/raw_query/tests.py

@@ -32,11 +32,15 @@ class RawQueryTests(TestCase):
 
             for field in model._meta.fields:
                 # Check that all values on the model are equal
-                self.assertEqual(getattr(item, field.attname),
-                                  getattr(orig_item, field.attname))
+                self.assertEqual(
+                    getattr(item, field.attname),
+                    getattr(orig_item, field.attname)
+                )
                 # This includes checking that they are the same type
-                self.assertEqual(type(getattr(item, field.attname)),
-                                  type(getattr(orig_item, field.attname)))
+                self.assertEqual(
+                    type(getattr(item, field.attname)),
+                    type(getattr(orig_item, field.attname))
+                )
 
     def assertNoAnnotations(self, results):
         """

+ 4 - 4
tests/select_related/tests.py

@@ -101,8 +101,8 @@ class SelectRelatedTests(TestCase):
 
     def test_select_related_with_extra(self):
         s = (Species.objects.all()
-                .select_related()
-                .extra(select={'a': 'select_related_species.id + 10'})[0])
+             .select_related()
+             .extra(select={'a': 'select_related_species.id + 10'})[0])
         self.assertEqual(s.id + 10, s.a)
 
     def test_certain_fields(self):
@@ -133,8 +133,8 @@ class SelectRelatedTests(TestCase):
     def test_field_traversal(self):
         with self.assertNumQueries(1):
             s = (Species.objects.all()
-                    .select_related('genus__family__order')
-                    .order_by('id')[0:1].get().genus.family.order.name)
+                 .select_related('genus__family__order')
+                 .order_by('id')[0:1].get().genus.family.order.name)
             self.assertEqual(s, 'Diptera')
 
     def test_depth_fields_fails(self):

+ 2 - 3
tests/staticfiles_tests/tests.py

@@ -80,7 +80,7 @@ class BaseStaticFilesTestCase(object):
 
     def assertFileContains(self, filepath, text):
         self.assertIn(text, self._get_file(force_text(filepath)),
-                        "'%s' not in '%s'" % (text, filepath))
+                      "'%s' not in '%s'" % (text, filepath))
 
     def assertFileNotFound(self, filepath):
         self.assertRaises(IOError, self._get_file, filepath)
@@ -783,8 +783,7 @@ class TestMiscFinder(TestCase):
 class TestTemplateTag(StaticFilesTestCase):
 
     def test_template_tag(self):
-        self.assertStaticRenders("does/not/exist.png",
-                                   "/static/does/not/exist.png")
+        self.assertStaticRenders("does/not/exist.png", "/static/does/not/exist.png")
         self.assertStaticRenders("testfile.txt", "/static/testfile.txt")
 
 

+ 10 - 8
tests/timezones/tests.py

@@ -859,14 +859,16 @@ class TemplateTests(TestCase):
         """
         Test the {% timezone %} templatetag.
         """
-        tpl = Template("{% load tz %}"
-                "{{ dt }}|"
-                "{% timezone tz1 %}"
-                    "{{ dt }}|"
-                    "{% timezone tz2 %}"
-                        "{{ dt }}"
-                    "{% endtimezone %}"
-                "{% endtimezone %}")
+        tpl = Template(
+            "{% load tz %}"
+            "{{ dt }}|"
+            "{% timezone tz1 %}"
+            "{{ dt }}|"
+            "{% timezone tz2 %}"
+            "{{ dt }}"
+            "{% endtimezone %}"
+            "{% endtimezone %}"
+        )
         ctx = Context({'dt': datetime.datetime(2011, 9, 1, 10, 20, 30, tzinfo=UTC),
                        'tz1': ICT, 'tz2': None})
         self.assertEqual(tpl.render(ctx), "2011-09-01T13:20:30+03:00|2011-09-01T17:20:30+07:00|2011-09-01T13:20:30+03:00")

+ 4 - 8
tests/urlpatterns_reverse/urls.py

@@ -32,12 +32,9 @@ urlpatterns = patterns('',
     url(r'^price/\$(\d+)/$', empty_view, name="price"),
     url(r'^price/[$](\d+)/$', empty_view, name="price2"),
     url(r'^price/[\$](\d+)/$', empty_view, name="price3"),
-    url(r'^product/(?P<product>\w+)\+\(\$(?P<price>\d+(\.\d+)?)\)/$',
-            empty_view, name="product"),
-    url(r'^headlines/(?P<year>\d+)\.(?P<month>\d+)\.(?P<day>\d+)/$', empty_view,
-            name="headlines"),
-    url(r'^windows_path/(?P<drive_name>[A-Z]):\\(?P<path>.+)/$', empty_view,
-            name="windows"),
+    url(r'^product/(?P<product>\w+)\+\(\$(?P<price>\d+(\.\d+)?)\)/$', empty_view, name="product"),
+    url(r'^headlines/(?P<year>\d+)\.(?P<month>\d+)\.(?P<day>\d+)/$', empty_view, name="headlines"),
+    url(r'^windows_path/(?P<drive_name>[A-Z]):\\(?P<path>.+)/$', empty_view, name="windows"),
     url(r'^special_chars/(?P<chars>.+)/$', empty_view, name="special"),
     url(r'^(?P<name>.+)/\d+/$', empty_view, name="mixed"),
     url(r'^repeats/a{1,2}/$', empty_view, name="repeats"),
@@ -46,8 +43,7 @@ urlpatterns = patterns('',
     url(r'^(?i)CaseInsensitive/(\w+)', empty_view, name="insensitive"),
     url(r'^test/1/?', empty_view, name="test"),
     url(r'^(?i)test/2/?$', empty_view, name="test2"),
-    url(r'^outer/(?P<outer>\d+)/',
-            include('urlpatterns_reverse.included_urls')),
+    url(r'^outer/(?P<outer>\d+)/', include('urlpatterns_reverse.included_urls')),
     url('', include('urlpatterns_reverse.extra_urls')),
 
     # This is non-reversible, but we shouldn't blow up when parsing it.

+ 22 - 14
tests/utils_tests/test_datastructures.py

@@ -179,14 +179,17 @@ class MergeDictTests(IgnorePendingDeprecationWarningsMixin, SimpleTestCase):
 
         self.assertTrue('value1' in six.itervalues(mm))
 
-        self.assertEqual(sorted(six.iteritems(mm), key=lambda k: k[0]),
-                          [('key1', 'value1'), ('key2', 'value3'),
-                           ('key4', 'value6')])
+        self.assertEqual(
+            sorted(six.iteritems(mm), key=lambda k: k[0]),
+            [('key1', 'value1'), ('key2', 'value3'), ('key4', 'value6')]
+        )
 
-        self.assertEqual([(k, mm.getlist(k)) for k in sorted(mm)],
-                          [('key1', ['value1']),
-                           ('key2', ['value2', 'value3']),
-                           ('key4', ['value5', 'value6'])])
+        self.assertEqual(
+            [(k, mm.getlist(k)) for k in sorted(mm)],
+            [('key1', ['value1']),
+             ('key2', ['value2', 'value3']),
+             ('key4', ['value5', 'value6'])]
+        )
 
     def test_bool_casting(self):
         empty = MergeDict({}, {}, {})
@@ -212,12 +215,15 @@ class MultiValueDictTests(SimpleTestCase):
         self.assertEqual(d['name'], 'Simon')
         self.assertEqual(d.get('name'), 'Simon')
         self.assertEqual(d.getlist('name'), ['Adrian', 'Simon'])
-        self.assertEqual(sorted(list(six.iteritems(d))),
-                          [('name', 'Simon'), ('position', 'Developer')])
+        self.assertEqual(
+            sorted(list(six.iteritems(d))),
+            [('name', 'Simon'), ('position', 'Developer')]
+        )
 
-        self.assertEqual(sorted(list(six.iterlists(d))),
-                          [('name', ['Adrian', 'Simon']),
-                           ('position', ['Developer'])])
+        self.assertEqual(
+            sorted(list(six.iterlists(d))),
+            [('name', ['Adrian', 'Simon']), ('position', ['Developer'])]
+        )
 
         six.assertRaisesRegex(self, MultiValueDictKeyError, 'lastname',
             d.__getitem__, 'lastname')
@@ -298,5 +304,7 @@ class DictWrapperTests(SimpleTestCase):
     def test_dictwrapper(self):
         f = lambda x: "*%s" % x
         d = DictWrapper({'a': 'a'}, f, 'xx_')
-        self.assertEqual("Normal: %(a)s. Modified: %(xx_a)s" % d,
-                          'Normal: a. Modified: *a')
+        self.assertEqual(
+            "Normal: %(a)s. Modified: %(xx_a)s" % d,
+            'Normal: a. Modified: *a'
+        )

+ 41 - 60
tests/utils_tests/test_termcolors.py

@@ -16,54 +16,44 @@ class TermColorTests(unittest.TestCase):
 
     def test_fg(self):
         self.assertEqual(parse_color_setting('error=green'),
-                          dict(PALETTES[NOCOLOR_PALETTE],
-                            ERROR={'fg': 'green'}))
+            dict(PALETTES[NOCOLOR_PALETTE], ERROR={'fg': 'green'}))
 
     def test_fg_bg(self):
         self.assertEqual(parse_color_setting('error=green/blue'),
-                          dict(PALETTES[NOCOLOR_PALETTE],
-                            ERROR={'fg': 'green', 'bg': 'blue'}))
+            dict(PALETTES[NOCOLOR_PALETTE], ERROR={'fg': 'green', 'bg': 'blue'}))
 
     def test_fg_opts(self):
         self.assertEqual(parse_color_setting('error=green,blink'),
-                          dict(PALETTES[NOCOLOR_PALETTE],
-                            ERROR={'fg': 'green', 'opts': ('blink',)}))
+            dict(PALETTES[NOCOLOR_PALETTE], ERROR={'fg': 'green', 'opts': ('blink',)}))
+
         self.assertEqual(parse_color_setting('error=green,bold,blink'),
-                          dict(PALETTES[NOCOLOR_PALETTE],
-                            ERROR={'fg': 'green', 'opts': ('blink', 'bold')}))
+            dict(PALETTES[NOCOLOR_PALETTE], ERROR={'fg': 'green', 'opts': ('blink', 'bold')}))
 
     def test_fg_bg_opts(self):
         self.assertEqual(parse_color_setting('error=green/blue,blink'),
-                          dict(PALETTES[NOCOLOR_PALETTE],
-                            ERROR={'fg': 'green', 'bg': 'blue', 'opts': ('blink',)}))
+            dict(PALETTES[NOCOLOR_PALETTE], ERROR={'fg': 'green', 'bg': 'blue', 'opts': ('blink',)}))
+
         self.assertEqual(parse_color_setting('error=green/blue,bold,blink'),
-                          dict(PALETTES[NOCOLOR_PALETTE],
-                            ERROR={'fg': 'green', 'bg': 'blue', 'opts': ('blink', 'bold')}))
+            dict(PALETTES[NOCOLOR_PALETTE], ERROR={'fg': 'green', 'bg': 'blue', 'opts': ('blink', 'bold')}))
 
     def test_override_palette(self):
         self.assertEqual(parse_color_setting('light;error=green'),
-                          dict(PALETTES[LIGHT_PALETTE],
-                            ERROR={'fg': 'green'}))
+            dict(PALETTES[LIGHT_PALETTE], ERROR={'fg': 'green'}))
 
     def test_override_nocolor(self):
         self.assertEqual(parse_color_setting('nocolor;error=green'),
-                          dict(PALETTES[NOCOLOR_PALETTE],
-                            ERROR={'fg': 'green'}))
+            dict(PALETTES[NOCOLOR_PALETTE], ERROR={'fg': 'green'}))
 
     def test_reverse_override(self):
         self.assertEqual(parse_color_setting('error=green;light'), PALETTES[LIGHT_PALETTE])
 
     def test_multiple_roles(self):
         self.assertEqual(parse_color_setting('error=green;sql_field=blue'),
-                          dict(PALETTES[NOCOLOR_PALETTE],
-                            ERROR={'fg': 'green'},
-                            SQL_FIELD={'fg': 'blue'}))
+            dict(PALETTES[NOCOLOR_PALETTE], ERROR={'fg': 'green'}, SQL_FIELD={'fg': 'blue'}))
 
     def test_override_with_multiple_roles(self):
         self.assertEqual(parse_color_setting('light;error=green;sql_field=blue'),
-                          dict(PALETTES[LIGHT_PALETTE],
-                            ERROR={'fg': 'green'},
-                            SQL_FIELD={'fg': 'blue'}))
+            dict(PALETTES[LIGHT_PALETTE], ERROR={'fg': 'green'}, SQL_FIELD={'fg': 'blue'}))
 
     def test_empty_definition(self):
         self.assertEqual(parse_color_setting(';'), None)
@@ -72,14 +62,13 @@ class TermColorTests(unittest.TestCase):
 
     def test_empty_options(self):
         self.assertEqual(parse_color_setting('error=green,'),
-                          dict(PALETTES[NOCOLOR_PALETTE],
-                            ERROR={'fg': 'green'}))
+            dict(PALETTES[NOCOLOR_PALETTE], ERROR={'fg': 'green'}))
+
         self.assertEqual(parse_color_setting('error=green,,,'),
-                          dict(PALETTES[NOCOLOR_PALETTE],
-                            ERROR={'fg': 'green'}))
+            dict(PALETTES[NOCOLOR_PALETTE], ERROR={'fg': 'green'}))
+
         self.assertEqual(parse_color_setting('error=green,,blink,,'),
-                          dict(PALETTES[NOCOLOR_PALETTE],
-                            ERROR={'fg': 'green', 'opts': ('blink',)}))
+            dict(PALETTES[NOCOLOR_PALETTE], ERROR={'fg': 'green', 'opts': ('blink',)}))
 
     def test_bad_palette(self):
         self.assertEqual(parse_color_setting('unknown'), None)
@@ -88,67 +77,59 @@ class TermColorTests(unittest.TestCase):
         self.assertEqual(parse_color_setting('unknown='), None)
         self.assertEqual(parse_color_setting('unknown=green'), None)
         self.assertEqual(parse_color_setting('unknown=green;sql_field=blue'),
-                          dict(PALETTES[NOCOLOR_PALETTE],
-                            SQL_FIELD={'fg': 'blue'}))
+            dict(PALETTES[NOCOLOR_PALETTE], SQL_FIELD={'fg': 'blue'}))
 
     def test_bad_color(self):
         self.assertEqual(parse_color_setting('error='), None)
         self.assertEqual(parse_color_setting('error=;sql_field=blue'),
-                          dict(PALETTES[NOCOLOR_PALETTE],
-                            SQL_FIELD={'fg': 'blue'}))
+            dict(PALETTES[NOCOLOR_PALETTE], SQL_FIELD={'fg': 'blue'}))
+
         self.assertEqual(parse_color_setting('error=unknown'), None)
         self.assertEqual(parse_color_setting('error=unknown;sql_field=blue'),
-                          dict(PALETTES[NOCOLOR_PALETTE],
-                            SQL_FIELD={'fg': 'blue'}))
+            dict(PALETTES[NOCOLOR_PALETTE], SQL_FIELD={'fg': 'blue'}))
+
         self.assertEqual(parse_color_setting('error=green/unknown'),
-                          dict(PALETTES[NOCOLOR_PALETTE],
-                            ERROR={'fg': 'green'}))
+            dict(PALETTES[NOCOLOR_PALETTE], ERROR={'fg': 'green'}))
+
         self.assertEqual(parse_color_setting('error=green/blue/something'),
-                          dict(PALETTES[NOCOLOR_PALETTE],
-                            ERROR={'fg': 'green', 'bg': 'blue'}))
+            dict(PALETTES[NOCOLOR_PALETTE], ERROR={'fg': 'green', 'bg': 'blue'}))
+
         self.assertEqual(parse_color_setting('error=green/blue/something,blink'),
-                          dict(PALETTES[NOCOLOR_PALETTE],
-                            ERROR={'fg': 'green', 'bg': 'blue', 'opts': ('blink',)}))
+            dict(PALETTES[NOCOLOR_PALETTE], ERROR={'fg': 'green', 'bg': 'blue', 'opts': ('blink',)}))
 
     def test_bad_option(self):
         self.assertEqual(parse_color_setting('error=green,unknown'),
-                          dict(PALETTES[NOCOLOR_PALETTE],
-                            ERROR={'fg': 'green'}))
+            dict(PALETTES[NOCOLOR_PALETTE], ERROR={'fg': 'green'}))
+
         self.assertEqual(parse_color_setting('error=green,unknown,blink'),
-                          dict(PALETTES[NOCOLOR_PALETTE],
-                            ERROR={'fg': 'green', 'opts': ('blink',)}))
+            dict(PALETTES[NOCOLOR_PALETTE], ERROR={'fg': 'green', 'opts': ('blink',)}))
 
     def test_role_case(self):
         self.assertEqual(parse_color_setting('ERROR=green'),
-                          dict(PALETTES[NOCOLOR_PALETTE],
-                            ERROR={'fg': 'green'}))
+            dict(PALETTES[NOCOLOR_PALETTE], ERROR={'fg': 'green'}))
+
         self.assertEqual(parse_color_setting('eRrOr=green'),
-                          dict(PALETTES[NOCOLOR_PALETTE],
-                            ERROR={'fg': 'green'}))
+            dict(PALETTES[NOCOLOR_PALETTE], ERROR={'fg': 'green'}))
 
     def test_color_case(self):
         self.assertEqual(parse_color_setting('error=GREEN'),
-                          dict(PALETTES[NOCOLOR_PALETTE],
-                            ERROR={'fg': 'green'}))
+            dict(PALETTES[NOCOLOR_PALETTE], ERROR={'fg': 'green'}))
+
         self.assertEqual(parse_color_setting('error=GREEN/BLUE'),
-                          dict(PALETTES[NOCOLOR_PALETTE],
-                            ERROR={'fg': 'green', 'bg': 'blue'}))
+            dict(PALETTES[NOCOLOR_PALETTE], ERROR={'fg': 'green', 'bg': 'blue'}))
 
         self.assertEqual(parse_color_setting('error=gReEn'),
-                          dict(PALETTES[NOCOLOR_PALETTE],
-                            ERROR={'fg': 'green'}))
+            dict(PALETTES[NOCOLOR_PALETTE], ERROR={'fg': 'green'}))
+
         self.assertEqual(parse_color_setting('error=gReEn/bLuE'),
-                          dict(PALETTES[NOCOLOR_PALETTE],
-                            ERROR={'fg': 'green', 'bg': 'blue'}))
+            dict(PALETTES[NOCOLOR_PALETTE], ERROR={'fg': 'green', 'bg': 'blue'}))
 
     def test_opts_case(self):
         self.assertEqual(parse_color_setting('error=green,BLINK'),
-                          dict(PALETTES[NOCOLOR_PALETTE],
-                            ERROR={'fg': 'green', 'opts': ('blink',)}))
+            dict(PALETTES[NOCOLOR_PALETTE], ERROR={'fg': 'green', 'opts': ('blink',)}))
 
         self.assertEqual(parse_color_setting('error=green,bLiNk'),
-                          dict(PALETTES[NOCOLOR_PALETTE],
-                            ERROR={'fg': 'green', 'opts': ('blink',)}))
+            dict(PALETTES[NOCOLOR_PALETTE], ERROR={'fg': 'green', 'opts': ('blink',)}))
 
     def test_colorize_empty_text(self):
         self.assertEqual(colorize(text=None), '\x1b[m\x1b[0m')

+ 2 - 4
tests/view_tests/tests/test_static.py

@@ -75,8 +75,7 @@ class StaticTests(SimpleTestCase):
         response_content = b''.join(response)
         with open(path.join(media_dir, file_name), 'rb') as fp:
             self.assertEqual(fp.read(), response_content)
-        self.assertEqual(len(response_content),
-                          int(response['Content-Length']))
+        self.assertEqual(len(response_content), int(response['Content-Length']))
 
     def test_invalid_if_modified_since2(self):
         """Handle even more bogus If-Modified-Since values gracefully
@@ -91,8 +90,7 @@ class StaticTests(SimpleTestCase):
         response_content = b''.join(response)
         with open(path.join(media_dir, file_name), 'rb') as fp:
             self.assertEqual(fp.read(), response_content)
-        self.assertEqual(len(response_content),
-                          int(response['Content-Length']))
+        self.assertEqual(len(response_content), int(response['Content-Length']))
 
     def test_404(self):
         response = self.client.get('/views/%s/non_existing_resource' % self.prefix)