diff --git a/newsbox/admin.py b/newsbox/admin.py
index 197122ee9925f516b798fee1997c209945746465..76d42f7f15ee708531fb7a23edf8037f1e59712d 100644
--- a/newsbox/admin.py
+++ b/newsbox/admin.py
@@ -14,6 +14,7 @@ from django.shortcuts import get_object_or_404
 from django.utils.translation import ugettext_lazy as _,  ungettext_lazy
 from django.utils import six, formats
 
+
 def get_fieldset_by_field(name, fieldsets):
     """
     Return fieldset containing a field given by name
@@ -118,10 +119,9 @@ class NewsboxBaseAdmin(admin.ModelAdmin):
     save_as = True
 
     def get_prepopulated_fields(self, request, object=None):
-        prepopulated_fields = super(NewsboxBaseAdmin, self).get_prepopulated_fields(request, object)
-        prepopulated_fields = prepopulated_fields or {}
-        prepopulated_fields.update({"newsbox_slug": ("newsbox_title",)})
-        return prepopulated_fields
+        pfields = super(NewsboxBaseAdmin, self).get_prepopulated_fields(request, object) or {}
+        pfields.update({'newsbox_slug': ('newsbox_title',)})
+        return pfields
 
     def changestatus_link(self, obj):
         if obj.newsbox_published:
@@ -138,7 +138,6 @@ class NewsboxBaseAdmin(admin.ModelAdmin):
             reverse('admin:%s' % url_name, args=[obj.pk, ]),
             title, icon_url, obj.newsbox_published)
 
-
     changestatus_link.allow_tags = True
     changestatus_link.admin_order_field = 'newsbox_published'
     changestatus_link.short_description = _('published')
@@ -284,11 +283,13 @@ class NewsboxBaseAdmin(admin.ModelAdmin):
         'Unpublish selected %(verbose_name_plural)s')
 
     def ensure_slug_uniq_queryset(self, request, obj, slug):
-        queryset = type(obj).objects.all()
-        queryset = queryset.filter(newsbox_publication_start_date__year=obj.newsbox_publication_start_date.year)
-        queryset = queryset.filter(newsbox_publication_start_date__month=obj.newsbox_publication_start_date.month)
-        queryset = queryset.filter(newsbox_publication_start_date__day=obj.newsbox_publication_start_date.day)
-        queryset = queryset.filter(newsbox_slug=slug)
+        y, m, d = (obj.newsbox_publication_start_date.year,
+                   obj.newsbox_publication_start_date.month,
+                   obj.newsbox_publication_start_date.day)
+        queryset = type(obj).objects.filter(newsbox_publication_start_date__year=y,
+                                            newsbox_publication_start_date__month=m,
+                                            newsbox_publication_start_date__day=d,
+                                            newsbox_slug=slug)
         if obj.pk:
             queryset = queryset.exclude(pk=obj.pk)
         return queryset
@@ -325,23 +326,23 @@ class NewsboxExpiredAdmin(NewsboxBaseAdmin):
         if not obj.newsbox_publication_start_date:
             title.append(_('always'))
         else:
-            title.append(
-                formats.date_format(obj.newsbox_publication_start_date, 'DATETIME_FORMAT'))
-            output.append('<span class="from">%s</span>' % \
-                formats.date_format(obj.newsbox_publication_start_date, 'SHORT_DATE_FORMAT')
-            )
+            title.append(formats.date_format(obj.newsbox_publication_start_date,
+                                             'DATETIME_FORMAT'))
+            output.append('<span class="from">%s</span>' %
+                          formats.date_format(obj.newsbox_publication_start_date,
+                                              'SHORT_DATE_FORMAT'))
             css_class.append('from')
         if not obj.newsbox_publication_end_date:
             title.append(_('never'))
         else:
             title.append(
                 formats.date_format(obj.newsbox_publication_end_date, 'DATETIME_FORMAT'))
-            output.append('<span class="to">%s</span>' % \
-                formats.date_format(obj.newsbox_publication_end_date, 'SHORT_DATE_FORMAT')
-            )
+            output.append('<span class="to">%s</span>' %
+                          formats.date_format(obj.newsbox_publication_end_date,
+                                              'SHORT_DATE_FORMAT'))
             css_class.append('to')
         css_class = '_'.join(css_class)
-        title = _('from %(from)s to %(to)s') % {'from':title[0], 'to':title[1]}
+        title = _('from %(from)s to %(to)s') % {'from': title[0], 'to': title[1]}
         output = ('<span> %s </span>' % _('to')).join(output)
         return '<abbr class="newsbox_pub_dates %s" title="%s">%s</abbr>' % (
             css_class, title, output)
@@ -371,6 +372,7 @@ class NewsboxExpiredAdmin(NewsboxBaseAdmin):
             list_display.append('newsbox_publication_dates_short')
         return list_display
 
+
 class NewsboxSEOAdmin(NewsboxBaseAdmin):
 
     def get_fieldsets(self, request, obj=None):
diff --git a/newsbox/models.py b/newsbox/models.py
index 2ddb8a48d01da1ba4137426c44f8685667cffc81..d6bda6fdf47bdae1e388b648f4d78b37a65452dd 100644
--- a/newsbox/models.py
+++ b/newsbox/models.py
@@ -1,5 +1,7 @@
 # -*- coding: utf-8 -*-
+
 from __future__ import unicode_literals
+
 import sys
 from datetime import datetime
 
@@ -12,6 +14,7 @@ from django.utils import six
 
 newsbox_models = []
 
+
 def newsbox_mcls_processor(mcls, class_name, class_bases, class_attrs, base, newsbox_opts):
     if 'newsbox_title' not in class_attrs:
         class_attrs['newsbox_title'] = models.CharField(
@@ -33,6 +36,7 @@ def newsbox_mcls_processor(mcls, class_name, class_bases, class_attrs, base, new
             null=False, blank=True)
         newsbox_opts['trans_fieldnames'].append('newsbox_body')
 
+
 def newsboxseo_mcls_processor(mcls, class_name, class_bases, class_attrs, base, newsbox_opts):
     class_attrs['newsbox_meta_description'] = models.TextField(
         verbose_name=_('meta description'),
@@ -41,9 +45,10 @@ def newsboxseo_mcls_processor(mcls, class_name, class_bases, class_attrs, base,
         verbose_name=_('meta keywords'),
         max_length=255, blank=True, null=True)
 
-    newsbox_opts['trans_fieldnames']+=[
+    newsbox_opts['trans_fieldnames'] += [
         'newsbox_meta_description', 'newsbox_meta_keywords']
 
+
 class NewsboxManager(models.Manager):
     """
     Filter published news
@@ -74,12 +79,13 @@ class NewsboxModelBase(models.base.ModelBase):
 
         # Also ensure initialization is only performed for subclasses of Model
         # (excluding Model class itself).
-        parents = [b for b in class_bases if isinstance(b, NewsboxModelBase) and
-                not (b.__name__ == 'NewBase' and b.__mro__ == (b, object))]
+        # parents = [b for b in class_bases
+        #            if isinstance(b, NewsboxModelBase) and
+        #            not (b.__name__ == 'NewBase' and b.__mro__ == (b, object))]
 
-        #retrieve newsbox options in Meta class and delete these from the
-        #Meta class to avoid django complain about unsupported keys.
-        #We register our meta options in `_newsbox_meta`
+        # retrieve newsbox options in Meta class and delete these from the
+        # Meta class to avoid django complain about unsupported keys.
+        # We register our meta options in `_newsbox_meta`
         attr_meta = class_attrs.get('Meta', None)
         if attr_meta and not getattr(attr_meta, 'ordering', None):
             class_attrs['Meta'].ordering = ('-newsbox_publication_start_date',)
@@ -102,8 +108,8 @@ class NewsboxModelBase(models.base.ModelBase):
         # register newsbox_objects manager
         class_attrs['newsbox_objects'] = NewsboxManager()
 
-        #Call specific metaclass processor of all bases
-        if not abstract :
+        # Call specific metaclass processor of all bases
+        if not abstract:
             for base in class_bases:
                 try:
                     processor = base._newsbox_meta['metaclass_base_processor']
@@ -120,22 +126,20 @@ class NewsboxModelBase(models.base.ModelBase):
                 processor = getattr(sys.modules[base.__module__], processor)
                 processor(mcls, class_name, class_bases, class_attrs, base, newsbox_opts)
 
-        if not 'default_manager' in class_attrs:
+        if 'default_manager' not in class_attrs:
             class_attrs['default_manager'] = class_attrs['newsbox_objects']
-        if not 'objects' in class_attrs:
+        if 'objects' not in class_attrs:
             class_attrs['objects'] = class_attrs['newsbox_objects']
         # contructs class
         cls = super_new(mcls, class_name, class_bases, class_attrs)
 
-        #Add the detail_url_name to _newsbox_meta. if not defined, we build the
-        #default one with this format : <app_label>_<model_name>_detail
-        #Names ar lowered.
+        # Add the detail_url_name to _newsbox_meta. if not defined, we build the
+        # default one with this format : <app_label>_<model_name>_detail
+        # Names ar lowered.
         if not abstract:
-            detail_url_name = newsbox_opts.get(
-                'detail_url_name',
-                "%s_%s_detail" % (cls._meta.app_label.lower(),
-                    cls._meta.model_name.lower(),)
-            )
+            detail_url_name = newsbox_opts.get('detail_url_name',
+                                               '%s_%s_detail' % (cls._meta.app_label.lower(),
+                                                                 cls._meta.model_name.lower(), ))
 
             newsbox_opts.update(
                 detail_url_name=detail_url_name,
@@ -236,6 +240,7 @@ class NewsboxBase(six.with_metaclass(NewsboxModelBase, models.Model)):
         ordering = ('-newsbox_publication_start_date', )
         newsbox_metaclass_base_processor = 'newsbox_mcls_processor'
 
+
 class NewsboxExpiredBase(six.with_metaclass(NewsboxModelBase, models.Model)):
     """
     Define News which expires in time and will not be displayed in front
@@ -261,6 +266,7 @@ class NewsboxExpiredBase(six.with_metaclass(NewsboxModelBase, models.Model)):
     class Meta:
         abstract = True
 
+
 class NewsboxSEOBase(six.with_metaclass(NewsboxModelBase, models.Model)):
     """
     Define News which have SEO fields
diff --git a/newsbox/templatetags/get_placeholder_content.py b/newsbox/templatetags/get_placeholder_content.py
index 188dd546e15f90f1b961f884e93d47fcb1754870..dfe51705db365ea0243aeedd44e675101e656d71 100644
--- a/newsbox/templatetags/get_placeholder_content.py
+++ b/newsbox/templatetags/get_placeholder_content.py
@@ -41,7 +41,7 @@ class GetPlaceholderContent(RenderPlaceholder):
     def get_value(self, context, nodelist, **kwargs):
         placeholder_output = None
         varname = kwargs.get('varname', None)
-        if kwargs.get('placeholder',None):
+        if kwargs.get('placeholder', None):
             placeholder_output = super(GetPlaceholderContent, self).get_value(
                 context, **kwargs)
 
diff --git a/newsbox/urls.py b/newsbox/urls.py
index b0164b0782d04a997421c299a72bf190996faaa8..a715a3d541cb59952241745cb8435c9e9373d293 100644
--- a/newsbox/urls.py
+++ b/newsbox/urls.py
@@ -1,58 +1,57 @@
 # -*- coding: utf-8 -*-
 from __future__ import unicode_literals
 
-from django.utils.text import slugify
-from django.conf.urls import patterns, url, include
-from django.conf.urls.i18n import i18n_patterns
+from django.conf.urls import patterns, url
 
 from .models import newsbox_models
 from .views import NewsboxArchiveView, NewsboxYearArchiveView, \
     NewsboxMonthArchiveView, NewsboxDayArchiveView, NewsboxDetailView
 
+
 def get_urls(
-    archive_view=NewsboxArchiveView, 
-    year_archive_view=NewsboxYearArchiveView, 
-    month_archive_view=NewsboxMonthArchiveView, 
-    day_archive_view=NewsboxDayArchiveView, 
-    detail_view=NewsboxDetailView):
-    
-    urls = ['',]
-    for model in newsbox_models :
+    archive_view=NewsboxArchiveView,
+    year_archive_view=NewsboxYearArchiveView,
+    month_archive_view=NewsboxMonthArchiveView,
+    day_archive_view=NewsboxDayArchiveView,
+    detail_view=NewsboxDetailView
+):
+
+    urls = ['', ]
+    for model in newsbox_models:
         app_name = model._meta.app_label.lower()
         model_name = model.__name__.lower()
-        
-        viewurl = 'newsbox/%s/%s/'\
-                    % (app_name, model_name,)
+
+        viewurl = 'newsbox/%s/%s/' % (app_name, model_name, )
         urls.append(
             url(
-                r'^%s$' % viewurl, 
+                r'^%s$' % viewurl,
                 archive_view.as_view(
                     model=model,),
                 name='%s_%s_list' % (app_name, model_name),
             ),
         )
-        viewurl=viewurl+'(?P<year>\d{4})/' 
+        viewurl = viewurl + '(?P<year>\d{4})/'
         urls.append(
             url(
-                r'^%s$' % viewurl, 
+                r'^%s$' % viewurl,
                 year_archive_view.as_view(
                     model=model,),
                 name='%s_%s_list_y' % (app_name, model_name),
             ),
         )
-        viewurl=viewurl+'(?P<month>\d{2})/' 
+        viewurl = viewurl + '(?P<month>\d{2})/'
         urls.append(
             url(
-                r'^%s$' % viewurl, 
+                r'^%s$' % viewurl,
                 month_archive_view.as_view(
                     model=model,),
                 name='%s_%s_list_ym' % (app_name, model_name),
             ),
         )
-        viewurl=viewurl+'(?P<day>\d{2})/'
+        viewurl = viewurl + '(?P<day>\d{2})/'
         urls.append(
             url(
-                r'^%s$' % viewurl, 
+                r'^%s$' % viewurl,
                 day_archive_view.as_view(
                     model=model,),
                 name='%s_%s_list_ymd' % (app_name, model_name),
@@ -60,7 +59,7 @@ def get_urls(
         )
         urls.append(
             url(
-                r'^%s(?P<slug>[0-9a-zA-Z_-]+)/$' % viewurl, 
+                r'^%s(?P<slug>[0-9a-zA-Z_-]+)/$' % viewurl,
                 detail_view.as_view(
                     model=model,),
                 name='%s_%s_detail' % (app_name, model_name),
diff --git a/newsbox/utils.py b/newsbox/utils.py
deleted file mode 100644
index c53eac001478a2e4176cf35ade0b204ebd7ed5ca..0000000000000000000000000000000000000000
--- a/newsbox/utils.py
+++ /dev/null
@@ -1,5 +0,0 @@
-# -*- coding: utf-8 -*-
-
-def get_newsmodels_list():
-    from django.db.models import get_app, get_models
-    pass
diff --git a/newsbox/views.py b/newsbox/views.py
index 871dc7bbb9d2f049802052ff46279fbc4f7cb136..27c0bc87ce4127bf4ab4f82b8f6f08603fc5e592 100644
--- a/newsbox/views.py
+++ b/newsbox/views.py
@@ -30,17 +30,17 @@ class NewsboxBaseArchiveView(object):
         context['newsset'].next_page_number = context['page_obj'].next_page_number
         context['newsset'].previous_page_number = context['page_obj'].previous_page_number
         context['newsset'].paginator = context['paginator']
-        if self.title == None:
+        if self.title is None:
             title = self.model._meta.verbose_name_plural.capitalize()
         else:
-            title=self.title
+            title = self.title
         context.update({
             'instance': None,
             'title': title,
             'title_url': '',
-            'newsbox_opts':self.model._newsbox_meta,
+            'newsbox_opts': self.model._newsbox_meta,
             'with_pager': with_pager,
-            'date_list_period':self.date_list_period,
+            'date_list_period': self.date_list_period,
         })
 
         return context
@@ -90,11 +90,11 @@ class NewsboxDetailView(DateDetailView):
         return context
 
     def get_object(self, queryset=None):
-        # We check user permission
+        # We check user permission
         obj = super(NewsboxDetailView, self).get_object(queryset)
         if(
-            not obj.is_published()
-            and not obj.has_change_permission(self.request)
+            not obj.is_published() and
+            not obj.has_change_permission(self.request)
         ):
             raise Http404
         return obj
diff --git a/newsbox_cms/admin.py b/newsbox_cms/admin.py
index 8aab300127756aae955bafa1c47ad8d81dc669f1..0db34e763b19309a3e3e5af0dfc338c8ea72182b 100644
--- a/newsbox_cms/admin.py
+++ b/newsbox_cms/admin.py
@@ -73,19 +73,20 @@ def CustomModelCMSAdminFactory(
             output = '<a class="edit" href="{edit_url}" title="{edit_label}"></a>'
 
             if show_url:
-                output += '<a class="title" href="{show_url}" target="_parent" title="{show_label}">{title}</a>'
+                output += ('<a class="title" href="{show_url}" target="_parent" '
+                           'title="{show_label}">{title}</a>')
             else:
                 output += '<span class="title">{title}</span>'
 
             return output.format(
                 edit_url=edit_url, show_url=show_url, show_label=_("show object's page"),
-                title=self.edit_link_title(obj, object_title), edit_label=_("edit object's parameters"))
+                title=self.edit_link_title(obj, object_title),
+                edit_label=_("edit object's parameters"))
 
         edit_link.allow_tags = True
         edit_link.short_description = edit_link_short_description
         edit_link.admin_order_field = edit_link_admin_order_field
 
-
         def get_list_display(self, request):
             list_display = super(CustomModelCMSAdmin, self).get_list_display(request)
             list_display = list(list_display)
@@ -109,7 +110,7 @@ def newsbox_admin_title(obj):
 
 
 class NewsboxCMSAdmin(
-    #XXX: hvad TranslatableAdmin doesn't support admin_order_field on translated field
+    # XXX: hvad TranslatableAdmin doesn't support admin_order_field on translated field
     # CustomModelCMSAdminFactory(edit_link_admin_order_field='newsbox_title'),
     CustomModelCMSAdminFactory(object_title=newsbox_admin_title,
                                edit_link_admin_order_field='newsbox_publication_start_date'),
diff --git a/newsbox_cms/cms_plugins.py b/newsbox_cms/cms_plugins.py
index 22e003f28eb8d67a0415b188f9c04c89e140a24d..dddc048ed7db40db9d0dee909b2744f1934bd159 100644
--- a/newsbox_cms/cms_plugins.py
+++ b/newsbox_cms/cms_plugins.py
@@ -5,10 +5,11 @@ from django.utils.translation import ugettext as _
 from cms.plugin_base import CMSPluginBase
 from newsbox.models import NewsboxBase
 
+
 class NewsboxPluginBase(CMSPluginBase):
-    name = _("News list") # Name of the plugin
-    render_template = "newsbox_cms/list-cms.html" # template to render the plugin
-    raw_id_fields = ('page_link',)
+    name = _("News list")
+    render_template = 'newsbox_cms/list-cms.html'
+    raw_id_fields = ('page_link', )
 
     def get_instance_queryset(self, instance, request):
         NewsboxModel = instance.newsbox_model
@@ -25,10 +26,10 @@ class NewsboxPluginBase(CMSPluginBase):
             instance=instance,
             request=context['request'])
 
-        if instance.numitems > 0 :
+        if instance.numitems > 0:
             with_pager = instance.with_pager
 
-            if with_pager :
+            if with_pager:
                 from django.core.paginator import Paginator, \
                     EmptyPage, PageNotAnInteger
 
@@ -42,21 +43,21 @@ class NewsboxPluginBase(CMSPluginBase):
                 except EmptyPage:
                     # If page is out of range (e.g. 9999), deliver last page of results.
                     newsset = paginator.page(paginator.num_pages)
-            else :
+            else:
                 newsset = newsset[:instance.numitems]
-        else :
+        else:
             with_pager = False
         context.update({
             'instance': instance,
             'title': instance.title,
-            'newsset':newsset,
-            'newsbox_opts':NewsboxModel._newsbox_meta,
-            'with_pager':with_pager,
+            'newsset': newsset,
+            'newsbox_opts': NewsboxModel._newsbox_meta,
+            'with_pager': with_pager,
         })
 
         if instance.page_link:
             context.update({
-                'title_url' : instance.page_link.get_absolute_url(),
+                'title_url': instance.page_link.get_absolute_url(),
                 'all_news_url': instance.page_link.get_absolute_url(),
             })
         return context
diff --git a/newsbox_cms/models.py b/newsbox_cms/models.py
index ce379ef2bd8104678effc36b3f7dc5220c6266fe..7b0b4393b329d907ac5762154f069df38265d97a 100644
--- a/newsbox_cms/models.py
+++ b/newsbox_cms/models.py
@@ -34,12 +34,13 @@ class NewsboxPluginBase(CMSPlugin):
         verbose_name=_('Number of news'),
         default=2,
         help_text=_('Number of news to display. '
-            '"0" allow you to display ALL news'))
+                    '"0" allow you to display ALL news'))
     with_pager = models.BooleanField(
         verbose_name=_('Display a pager'),
         default=False)
 
-    page_link = PageField(verbose_name=_('All news page'),
+    page_link = PageField(
+        verbose_name=_('All news page'),
         null=True, blank=True,
         help_text=_('Page displaying all news'))
 
@@ -49,7 +50,7 @@ class NewsboxPluginBase(CMSPlugin):
                 'Display of a news',
                 'Display of %(nb)d news',
                 self.numitems
-            ) % {'nb':self.numitems})
+            ) % {'nb': self.numitems})
         return six.text_type(_('Display of all news'))
 
     class Meta:
diff --git a/newsbox_i18n/admin.py b/newsbox_i18n/admin.py
index c3746389bf4d686a58d2827bdd70d7f0030f5ec7..7c93689e5979a5d73987d1fb3412b3e15c565346 100644
--- a/newsbox_i18n/admin.py
+++ b/newsbox_i18n/admin.py
@@ -36,11 +36,13 @@ class NewsboxI18NBaseAdmin(TranslatableAdmin):
 
     def ensure_slug_uniq_queryset(self, request, obj, slug):
         language = self.get_form_language(request, obj)
-        queryset = type(obj).objects.all()
-        queryset = queryset.filter(newsbox_publication_start_date__year=obj.newsbox_publication_start_date.year)
-        queryset = queryset.filter(newsbox_publication_start_date__month=obj.newsbox_publication_start_date.month)
-        queryset = queryset.filter(newsbox_publication_start_date__day=obj.newsbox_publication_start_date.day)
-        queryset = queryset.translated(language, newsbox_slug=slug)
+        y, m, d = (obj.newsbox_publication_start_date.year,
+                   obj.newsbox_publication_start_date.month,
+                   obj.newsbox_publication_start_date.day)
+        queryset = type(obj).objects.filter(newsbox_publication_start_date__year=y,
+                                            newsbox_publication_start_date__month=m,
+                                            newsbox_publication_start_date__day=d)\
+                                    .translated(language, newsbox_slug=slug)
         if obj.pk:
             queryset = queryset.exclude(pk=obj.pk)
         return queryset
diff --git a/newsbox_i18n/views.py b/newsbox_i18n/views.py
index 26a8c2b5f9d122ffda55d3dbc0378f86f58621f4..52e14e0b7a6ce6639d6412b5fa80fcbf4526b18e 100644
--- a/newsbox_i18n/views.py
+++ b/newsbox_i18n/views.py
@@ -1,6 +1,7 @@
 # -*- coding: utf-8 -*-
 from __future__ import unicode_literals
 
+from django.http.response import Http404
 from newsbox.views import NewsboxDetailView
 from django.utils.translation import get_language
 
@@ -26,9 +27,6 @@ class NewsboxI18NDetailView(NewsboxDetailView):
             queryset = self.get_queryset()
         language = get_language()
         obj = queryset.translated(language, newsbox_slug=self.kwargs[self.slug_url_kwarg]).get()
-        if(
-            not obj.is_published()
-            and not obj.has_change_permission(self.request)
-        ):
+        if not obj.is_published() and not obj.has_change_permission(self.request):
             raise Http404
         return obj
diff --git a/setup.py b/setup.py
index 96064ff74c55bfad5b06782905b931b4e0cd72e3..c410bf5af2068e059b62c6d69c545ead3a739fb1 100755
--- a/setup.py
+++ b/setup.py
@@ -17,9 +17,9 @@ CLASSIFIERS = [
     'Topic :: Internet :: WWW/HTTP :: Dynamic Content',
     'Topic :: Software Development',
     'Topic :: Software Development :: Libraries :: Application Frameworks',
-    "Programming Language :: Python :: 2.6",
-    "Programming Language :: Python :: 2.7",
-    "Programming Language :: Python :: 3.3",
+    'Programming Language :: Python :: 2.6',
+    'Programming Language :: Python :: 2.7',
+    'Programming Language :: Python :: 3.3',
 ]
 
 setup(
@@ -36,7 +36,7 @@ setup(
     install_requires=[
         'Django>=1.6,<1.9',
     ],
-    packages=find_packages(exclude=["project", "project.*"]),
+    packages=find_packages(exclude=['project', 'project.*']),
     include_package_data=True,
     zip_safe=False,
 )
diff --git a/tests/myapp/admin.py b/tests/myapp/admin.py
index 10fbc62d88a4dbf713c5dca5c2a52cc343f4480c..7af6cbf25d78968d49645d277323b89b063c6e25 100644
--- a/tests/myapp/admin.py
+++ b/tests/myapp/admin.py
@@ -5,6 +5,7 @@ from newsbox.admin import NewsboxAdmin, NewsboxSEOAdmin, NewsboxExpiredAdmin
 
 from .models import News, NewsSEO, NewsExpired, NewsComplete, NewsExtended
 
+
 class NewsAdmin(NewsboxAdmin):
     pass
 
diff --git a/tests/myapp/models.py b/tests/myapp/models.py
index 90291d4e6d1141679c6448fc45b4fe52d6d87326..0bba3b94c237d815a9de17ffa2ce2e660f553a56 100644
--- a/tests/myapp/models.py
+++ b/tests/myapp/models.py
@@ -3,31 +3,36 @@ from __future__ import unicode_literals
 from django.db import models
 from newsbox.models import NewsboxBase, NewsboxSEOBase, NewsboxExpiredBase
 
+
 class News(NewsboxBase):
     class Meta:
         verbose_name = 'news - Basic'
         verbose_name_plural = 'news - Basic'
 
+
 class NewsSEO(NewsboxSEOBase, NewsboxBase):
     class Meta:
         verbose_name = 'news - SEO'
         verbose_name_plural = 'news - SEO'
 
+
 class NewsExpired(NewsboxExpiredBase, NewsboxBase):
     class Meta:
         verbose_name = 'news - Expirable'
         verbose_name_plural = 'news - Expirable'
 
+
 class NewsComplete(NewsboxSEOBase, NewsboxExpiredBase, NewsboxBase):
     class Meta:
         verbose_name = 'news - Complete'
         verbose_name_plural = 'news - Complete'
 
+
 class NewsExtended(NewsboxSEOBase, NewsboxExpiredBase, NewsboxBase):
     general_field = models.CharField(max_length=50)
     content_field = models.CharField(max_length=50)
     seo_field = models.CharField(max_length=50)
-    
+
     class Meta:
         verbose_name = 'news - Extended'
         verbose_name_plural = 'news - Extended'
diff --git a/tests/myapp/tests.py b/tests/myapp/tests.py
index 03ddb48d2172fc56af7febacbccda0e7fd4b34c5..738c7a8e41a97b7ec4e43b426c3c7428fa7e7534 100644
--- a/tests/myapp/tests.py
+++ b/tests/myapp/tests.py
@@ -8,22 +8,19 @@ from .models import News, NewsSEO, NewsExpired, NewsComplete, NewsExtended
 
 class NewsboxAbstractModelsTests(TestCase):
 
-    fixtures = ['tests_data.json',]
-    
+    fixtures = ['tests_data.json', ]
+
     def test_01_manager_published(self):
         """
         Test if we only get really published news via the manager
         """
-        newsClasses = [
-            News, NewsSEO, NewsExpired, NewsComplete, NewsExtended,
-        ]
+        newsClasses = [News, NewsSEO, NewsExpired, NewsComplete, NewsExtended, ]
         for cls in newsClasses:
             returned_ids = list(cls.objects.published().values_list(
                 'id', flat=True).order_by('id'))
-            self.assertEqual(
-                (cls.__name__,returned_ids), 
-                (cls.__name__,[1, 4, 6, 7,]))
-    
+            self.assertEqual((cls.__name__, returned_ids),
+                             (cls.__name__, [1, 4, 6, 7, ]))
+
     def test_02_view_archive_200(self):
         """
         Test if generic archive view return right informations.
@@ -40,8 +37,7 @@ class NewsboxAbstractModelsTests(TestCase):
         self.assertTrue(r.context['newsset'].has_next())
         self.assertRaises(EmptyPage, r.context['newsset'].previous_page_number)
         self.assertEqual(r.context['newsset'].next_page_number(), 2)
-        
-    
+
     def test_03_view_year_archive_200(self):
         """
         Test if generic year views return right informations.
@@ -66,7 +62,7 @@ class NewsboxAbstractModelsTests(TestCase):
         c = Client()
         r = c.get('/newsbox/myapp/news/1985/')
         self.assertEqual(r.status_code, 404)
-    
+
     def test_05_view_month_archive_200(self):
         """
         Test if generic month views return right informations.
@@ -85,7 +81,7 @@ class NewsboxAbstractModelsTests(TestCase):
         c = Client()
         r = c.get('/newsbox/myapp/news/1985/07/')
         self.assertEqual(r.status_code, 404)
-    
+
     def test_07_view_day_archive_200(self):
         """
         Test if generic day views return right informations.
@@ -98,7 +94,7 @@ class NewsboxAbstractModelsTests(TestCase):
 
     def test_08_view_month_archive_404(self):
         """
-        Test if generic day views return a 404 with an URL with a date without 
+        Test if generic day views return a 404 with an URL with a date without
         any news.
         """
         c = Client()
@@ -116,7 +112,7 @@ class NewsboxAbstractModelsTests(TestCase):
 
     def test_10_view_detail_404(self):
         """
-        Test if generic day views return a 404 with an URL with a date without 
+        Test if generic day views return a 404 with an URL with a date without
         any news.
         """
         c = Client()
@@ -169,6 +165,5 @@ class NewsboxAbstractModelsTests(TestCase):
         r = c.get('/news/2005/')
         news = self.get_news_in_list_by_summary(r, 'Summary of the news 6')
         self.assertIsNotNone(news)
-  
         found = self.has_readmore_link(news)
         self.assertTrue(found)
diff --git a/tests/myapp/urls.py b/tests/myapp/urls.py
index ddb3e6932166578a67fdba119c96fd9ad30e8a3b..3b5194db82c90f10b183af2476102f6591067757 100644
--- a/tests/myapp/urls.py
+++ b/tests/myapp/urls.py
@@ -3,20 +3,20 @@ from __future__ import unicode_literals
 
 from django.conf.urls import url, include, patterns
 from django.contrib import admin
-from django.conf import settings
 from newsbox.views import NewsboxYearArchiveView, NewsboxArchiveView
 
 from .models import News
 
 admin.autodiscover()
 
-urlpatterns = patterns('',
+urlpatterns = patterns(
+    '',
     url(r'^admin/', include(admin.site.urls)),
     url(r'^', include('newsbox.urls')),
-    url(r'^news/$', 
-        NewsboxArchiveView.as_view(model=News, paginate_by=1), 
+    url(r'^news/$',
+        NewsboxArchiveView.as_view(model=News, paginate_by=1),
         name='news_list',),
-    url(r'^news/(?P<year>\d{4})/$', 
-        NewsboxYearArchiveView.as_view(model=News, paginate_by=1), 
+    url(r'^news/(?P<year>\d{4})/$',
+        NewsboxYearArchiveView.as_view(model=News, paginate_by=1),
         name='news_list_y',),
 )
diff --git a/tests/myapp_all/admin.py b/tests/myapp_all/admin.py
index 1598e28612a4a503d4cdea988dce6df78768c9b2..7d30b6050dc0e3ee5d83781abd00563122a37b8c 100644
--- a/tests/myapp_all/admin.py
+++ b/tests/myapp_all/admin.py
@@ -9,6 +9,7 @@ from newsbox_i18n.admin import NewsboxI18NAdmin
 
 from .models import News, NewsComplete, NewsExtended
 
+
 class NewsAdmin(NewsboxI18NAdmin, NewsboxCMSAdmin):
     pass
 
diff --git a/tests/myapp_all/cms_app.py b/tests/myapp_all/cms_app.py
index d25c3bee48b54eb42e1f5658856af3e60b9e806c..1f0302fe78efe4ccf64a7bc7dae6289d1ad875ff 100644
--- a/tests/myapp_all/cms_app.py
+++ b/tests/myapp_all/cms_app.py
@@ -5,6 +5,7 @@ from __future__ import unicode_literals
 from cms.app_base import CMSApp
 from cms.apphook_pool import apphook_pool
 
+
 class NewsApphook(CMSApp):
     name = 'News'
     urls = ["myapp_all.urls_news"]
diff --git a/tests/myapp_all/cms_plugins.py b/tests/myapp_all/cms_plugins.py
index ae203265d409663e0a02c615dbd2a1c312a9aa2b..67078c6849ddbe6f40de4a3944f4dc3be2d9f981 100644
--- a/tests/myapp_all/cms_plugins.py
+++ b/tests/myapp_all/cms_plugins.py
@@ -9,7 +9,7 @@ from .models import NewsPlugin as NewsPluginModel
 
 
 class NewsPlugin(NewsboxPluginBase):
-    name = "News list ALL" # Name of the plugin
+    name = "News list ALL"  # Name of the plugin
     model = NewsPluginModel
 
-plugin_pool.register_plugin(NewsPlugin) 
+plugin_pool.register_plugin(NewsPlugin)
diff --git a/tests/myapp_all/models.py b/tests/myapp_all/models.py
index dd3fc9b71cda69eddcb5a9fb1afa26aee81cdc09..7c7f5e7618ddf502ee3cd021f9ee4eb143b4a296 100644
--- a/tests/myapp_all/models.py
+++ b/tests/myapp_all/models.py
@@ -6,19 +6,24 @@ from newsbox.models import NewsboxBase, NewsboxSEOBase, NewsboxExpiredBase
 from newsbox_cms.models import NewsboxCMSBase, NewsboxPluginBase
 from newsbox_i18n.models import NewsboxI18NBase
 
+
 class News(NewsboxI18NBase, NewsboxCMSBase, NewsboxBase):
     class Meta:
         verbose_name = 'news - I18NCMS'
         verbose_name_plural = 'news - I18NCMS'
         newsbox_detail_url_name = 'news_detail'
 
-class NewsComplete(NewsboxI18NBase, NewsboxCMSBase, NewsboxSEOBase, NewsboxExpiredBase, NewsboxBase):
+
+class NewsComplete(NewsboxI18NBase, NewsboxCMSBase,
+                   NewsboxSEOBase, NewsboxExpiredBase, NewsboxBase):
     class Meta:
         verbose_name = 'news - CompleteI18NCMS'
         verbose_name_plural = 'news - CompleteI18NCMS'
         newsbox_detail_url_name = 'newscomplete_detail'
 
-class NewsExtended(NewsboxI18NBase, NewsboxCMSBase, NewsboxSEOBase, NewsboxExpiredBase, NewsboxBase):
+
+class NewsExtended(NewsboxI18NBase, NewsboxCMSBase,
+                   NewsboxSEOBase, NewsboxExpiredBase, NewsboxBase):
     general_field = models.CharField(max_length=50)
     content_field = models.CharField(max_length=50)
     seo_field = models.CharField(max_length=50)
@@ -30,7 +35,5 @@ class NewsExtended(NewsboxI18NBase, NewsboxCMSBase, NewsboxSEOBase, NewsboxExpir
         newsbox_detail_url_name = 'newsextended_detail'
 
 
-
 class NewsPlugin(NewsboxPluginBase):
     newsbox_model = News
-
diff --git a/tests/myapp_all/tests.py b/tests/myapp_all/tests.py
index 06a2feb2186509f35532709c69d715ed263c1e8a..b1950eba7a359ac50f90512b4b1dfa461efb3bcc 100644
--- a/tests/myapp_all/tests.py
+++ b/tests/myapp_all/tests.py
@@ -1,24 +1,21 @@
 # -*- coding: utf-8 -*-
 from __future__ import unicode_literals
-from copy import copy
 
 from django.test import TestCase, Client
 from django.contrib.auth.models import User
 from django.core.paginator import EmptyPage
 from django.utils.translation import activate
 from cms.test_utils.testcases import CMSTestCase
-from cms.plugin_rendering import render_plugin
-from cms.api import create_page, add_plugin, publish_page, create_title
+from cms.api import create_page, add_plugin, create_title
 from djangocms_text_ckeditor.fields import HTMLField
 
-from .models import News, NewsComplete, NewsExtended, NewsPlugin as NewsPluginModel
+from .models import News, NewsComplete, NewsExtended
 from .cms_plugins import NewsPlugin
 
 
 class NewsboxAbstractModelsTests(TestCase):
 
-    fixtures = ['tests_data.json',]
-    
+    fixtures = ['tests_data.json', ]
 
     def test_01_manager_published(self):
         """
@@ -30,9 +27,8 @@ class NewsboxAbstractModelsTests(TestCase):
         for cls in newsClasses:
             returned_ids = list(cls.objects.published().values_list(
                 'id', flat=True).order_by('id'))
-            self.assertEqual(
-                (cls.__name__,returned_ids), 
-                (cls.__name__,[1, 4, 6, 7,]))
+            self.assertEqual((cls.__name__, returned_ids),
+                             (cls.__name__, [1, 4, 6, 7, ]))
 
     def test_02_summary_as_html_field(self):
         """
@@ -48,72 +44,59 @@ class NewsboxAbstractModelsTests(TestCase):
                 summary_field = transmodel._meta.get_field('newsbox_summary')
             except:
                 self.fail('%s is not properly configured' % cls)
-            self.assertIsInstance(summary_field,HTMLField)
+            self.assertIsInstance(summary_field, HTMLField)
 
 
 class NewsboxPageIntegrationTests(CMSTestCase):
 
-    fixtures = ['tests_data.json',]
+    fixtures = ['tests_data.json', ]
 
     def setUp(self):
         self.super_user = User(username="test", is_staff=True, is_active=True, is_superuser=True)
         self.super_user.set_password("test")
         self.super_user.save()
-        
-        home = create_page(title='Home', slug='home',
-            template='page.html', 
-            language='en', published=True,
-            reverse_id='home', in_navigation=True)
+
+        home = create_page(title='Home', slug='home', template='page.html',
+                           language='en', published=True, reverse_id='home', in_navigation=True)
 
         create_title('fr', 'Accueil', home, slug='accueil')
         home.publish('en')
         home.publish('fr')
 
-        self.page = create_page(title='News page', slug='news-page',
-            template='page.html', parent=home,
-            language='en', published=True, apphook='NewsApphook',
-            reverse_id='newspage', in_navigation=True)
+        self.page = create_page(title='News page', slug='news-page', template='page.html',
+                                parent=home, language='en', published=True, apphook='NewsApphook',
+                                reverse_id='newspage', in_navigation=True)
         create_title('fr', 'page Actualités', self.page, slug='page-actualites')
         self.placeholder = self.page.placeholders.get(slot='main')
 
-        self.plugin_en = add_plugin(
-            self.placeholder, 'NewsPlugin', 'en', 
-            title = 'News',
-            numitems = 1,
-            with_pager = True,
-            page_link = None,)
+        self.plugin_en = add_plugin(self.placeholder, 'NewsPlugin', 'en', title='News',
+                                    numitems=1, with_pager=True, page_link=None, )
         self.plugin_en.save()
 
-        self.plugin_fr = add_plugin(
-            self.placeholder, 'NewsPlugin', 'fr', 
-            title = 'Actualités',
-            numitems = 1,
-            with_pager = True,
-            page_link = None,)
+        self.plugin_fr = add_plugin(self.placeholder, 'NewsPlugin', 'fr',  title='Actualités',
+                                    numitems=1, with_pager=True, page_link=None, )
         self.plugin_fr.save()
-        
+
         self.page.publish('en')
         self.page.publish('fr')
         self.page.reload()
-        
+
         self.newsPlugin = NewsPlugin()
         self.placeholder = self.page.placeholders.get(slot='main')
 
     def test_01_cmsplugin_context(self):
-        expected_results = {'en':'News 7', 'fr':'Actualité 7',}
+        expected_results = {'en': 'News 7', 'fr': 'Actualité 7', }
         for lang in expected_results:
             activate(lang)
             context = self.get_context(
                 self.page.get_absolute_url(), page=self.page)
-            self.newsPlugin.render(
-                context, 
-                getattr(self, 'plugin_%s' % lang), 
-                self.placeholder)
+            self.newsPlugin.render(context,
+                                   getattr(self, 'plugin_%s' % lang),
+                                   self.placeholder)
             self.assertIn('newsset', context)
             self.assertEqual(context['newsset'][0].pk, 7)
-            self.assertEqual(
-                context['newsset'][0].newsbox_title, 
-                expected_results[lang])
+            self.assertEqual(context['newsset'][0].newsbox_title,
+                             expected_results[lang])
             self.assertEqual(context['newsset'].number, 1)
             self.assertEqual(context['newsset'].paginator.num_pages, 4)
             self.assertFalse(context['newsset'].has_previous())
@@ -132,9 +115,8 @@ class NewsboxPageIntegrationTests(CMSTestCase):
 
     def test_03_get_absolute_url(self):
         news7 = News.objects.get(pk=7)
-        expected_results = {
-            'en':'/en/news-page/2020/01/01/news-7/', 
-            'fr':'/fr/page-actualites/2020/01/01/actualite-7/',}
+        expected_results = {'en': '/en/news-page/2020/01/01/news-7/',
+                            'fr': '/fr/page-actualites/2020/01/01/actualite-7/', }
         for lang in expected_results:
             activate(lang)
             self.assertEqual(news7.get_absolute_url(), expected_results[lang])
diff --git a/tests/myapp_all/urls.py b/tests/myapp_all/urls.py
index 1753ed9add8c09cd5088913304aa86d19782c7e1..fbeaec05f478d681bda8af02e8cac59864fe86bc 100644
--- a/tests/myapp_all/urls.py
+++ b/tests/myapp_all/urls.py
@@ -4,11 +4,11 @@ from __future__ import unicode_literals
 from django.conf.urls import url, include
 from django.conf.urls.i18n import i18n_patterns
 from django.contrib import admin
-from django.conf import settings
 
 admin.autodiscover()
 
-urlpatterns = i18n_patterns('',
+urlpatterns = i18n_patterns(
+    '',
     url(r'^admin/', include(admin.site.urls)),
     url(r'', include('cms.urls')),
 )
diff --git a/tests/myapp_cms/admin.py b/tests/myapp_cms/admin.py
index 05fbf1c16cac538b1597b68d97ddd6d45e4d75e1..1f2a71b7889ffa55fd1628702d163e952de71024 100644
--- a/tests/myapp_cms/admin.py
+++ b/tests/myapp_cms/admin.py
@@ -7,6 +7,7 @@ from newsbox.admin import NewsboxSEOAdmin, NewsboxExpiredAdmin
 
 from .models import News, NewsComplete, NewsExtended
 
+
 class NewsAdmin(NewsboxCMSAdmin):
     pass
 
diff --git a/tests/myapp_cms/cms_app.py b/tests/myapp_cms/cms_app.py
index 3e60259150f57a8d10090282a4c3a02b43c611c7..98cd2afc5af922eff0fd87ca9a27351b76bfd9e1 100644
--- a/tests/myapp_cms/cms_app.py
+++ b/tests/myapp_cms/cms_app.py
@@ -4,6 +4,7 @@ from __future__ import unicode_literals
 from cms.app_base import CMSApp
 from cms.apphook_pool import apphook_pool
 
+
 class NewsApphook(CMSApp):
     name = 'News'
     urls = ["myapp_cms.urls_news"]
diff --git a/tests/myapp_cms/cms_plugins.py b/tests/myapp_cms/cms_plugins.py
index 35817176c442fbd12dbc5e2f4896877370dcdc69..50957e635eb3801fea9abb7c1db560b4d47b576a 100644
--- a/tests/myapp_cms/cms_plugins.py
+++ b/tests/myapp_cms/cms_plugins.py
@@ -10,4 +10,4 @@ from .models import NewsPlugin as NewsPluginModel
 class NewsPlugin(NewsboxPluginBase):
     model = NewsPluginModel
 
-plugin_pool.register_plugin(NewsPlugin) 
+plugin_pool.register_plugin(NewsPlugin)
diff --git a/tests/myapp_cms/models.py b/tests/myapp_cms/models.py
index 4f29db45a8cf1814489c162bb872d5b8617cc508..507e73699663eebc616c672146b1ec0a9a9bcaba 100644
--- a/tests/myapp_cms/models.py
+++ b/tests/myapp_cms/models.py
@@ -5,6 +5,7 @@ from django.db import models
 from newsbox.models import NewsboxBase, NewsboxSEOBase, NewsboxExpiredBase
 from newsbox_cms.models import NewsboxCMSBase, NewsboxPluginBase
 
+
 class News(NewsboxCMSBase, NewsboxBase):
     class Meta:
         verbose_name = 'news - CMS'
@@ -23,7 +24,7 @@ class NewsExtended(NewsboxSEOBase, NewsboxExpiredBase, NewsboxCMSBase, NewsboxBa
     general_field = models.CharField(max_length=50)
     content_field = models.CharField(max_length=50)
     seo_field = models.CharField(max_length=50)
-    
+
     class Meta:
         verbose_name = 'news - ExtendedCMS'
         verbose_name_plural = 'news - ExtendedCMS'
@@ -32,4 +33,3 @@ class NewsExtended(NewsboxSEOBase, NewsboxExpiredBase, NewsboxCMSBase, NewsboxBa
 
 class NewsPlugin(NewsboxPluginBase):
     newsbox_model = News
-
diff --git a/tests/myapp_cms/tests.py b/tests/myapp_cms/tests.py
index f0a52845b2ea6df49e632a0824f25ef8e8070e36..7577357469fdae18d5cfc4fe34d70cf34bfd626a 100644
--- a/tests/myapp_cms/tests.py
+++ b/tests/myapp_cms/tests.py
@@ -10,14 +10,13 @@ from cms.plugin_rendering import render_plugin
 from cms.api import create_page, add_plugin, publish_page
 from djangocms_text_ckeditor.fields import HTMLField
 
-from .models import News, NewsComplete, NewsExtended, NewsPlugin as NewsPluginModel
+from .models import News, NewsComplete, NewsExtended
 from .cms_plugins import NewsPlugin
 
 
 class NewsboxAbstractModelsTests(TestCase):
 
-    fixtures = ['tests_data.json',]
-    
+    fixtures = ['tests_data.json', ]
 
     def test_01_manager_published(self):
         """
@@ -29,9 +28,8 @@ class NewsboxAbstractModelsTests(TestCase):
         for cls in newsClasses:
             returned_ids = list(cls.objects.published().values_list(
                 'id', flat=True).order_by('id'))
-            self.assertEqual(
-                (cls.__name__,returned_ids), 
-                (cls.__name__,[1, 4, 6, 7,]))
+            self.assertEqual((cls.__name__, returned_ids),
+                             (cls.__name__, [1, 4, 6, 7, ]))
 
     def test_02_summary_as_html_field(self):
         """
@@ -51,30 +49,23 @@ class NewsboxAbstractModelsTests(TestCase):
 
 class NewsboxPageIntegrationTests(CMSTestCase):
 
-    fixtures = ['tests_data.json',]
+    fixtures = ['tests_data.json', ]
 
     def setUp(self):
         self.super_user = User(username="test", is_staff=True, is_active=True, is_superuser=True)
         self.super_user.set_password("test")
         self.super_user.save()
-        
-        home = create_page(title='Home',
-            template='page.html', 
-            language='en', published=True,
-            reverse_id='home', in_navigation=True)
 
-        self.page = create_page(title='News page',
-            template='page.html', parent=home,
-            language='en', published=True, apphook='NewsApphook',
-            reverse_id='newspage', in_navigation=True)
+        home = create_page(title='Home', template='page.html',  language='en', published=True,
+                           reverse_id='home', in_navigation=True)
+
+        self.page = create_page(title='News page', template='page.html', parent=home,
+                                language='en', published=True, apphook='NewsApphook',
+                                reverse_id='newspage', in_navigation=True)
 
         self.placeholder = self.page.placeholders.get(slot='main')
-        self.plugin = add_plugin(
-            self.placeholder, 'NewsPlugin', 'en', 
-            title = 'News',
-            numitems = 1,
-            with_pager = True,
-            page_link = None,)
+        self.plugin = add_plugin(self.placeholder, 'NewsPlugin', 'en',
+                                 title='News', numitems=1, with_pager=True, page_link=None,)
         self.plugin.save()
         self.newsPlugin = NewsPlugin()
         self.page = publish_page(self.page, self.super_user, 'en')
@@ -115,9 +106,9 @@ class NewsboxPageIntegrationTests(CMSTestCase):
         context = self.get_context(self.page.get_absolute_url(), page=self.page)
         self.newsPlugin.render(context, self.plugin, self.placeholder)
         html = render_plugin(
-            context, 
-            self.newsPlugin, 
-            self.placeholder, 
+            context,
+            self.newsPlugin,
+            self.placeholder,
             self.newsPlugin.render_template)
         self.assertIn('<a href="/news-page/2020/01/01/news-7/">News 7</a>', html)
         self.assertIn('<a class="next" href="?page=2">Next news</a>', html)
@@ -133,7 +124,7 @@ class NewsboxPageIntegrationTests(CMSTestCase):
 
     def test_06_app_view_detail_404(self):
         """
-        Test if generic day views return a 404 with an URL with a date without 
+        Test if generic day views return a 404 with an URL with a date without
         any news.
         """
         c = Client()
diff --git a/tests/myapp_cms/urls.py b/tests/myapp_cms/urls.py
index 2a7ddb5aa121a3fc2cbe246b7c05f4278931a0f0..0b107b7afd79daa388065e2ae130c71b9d3608a2 100644
--- a/tests/myapp_cms/urls.py
+++ b/tests/myapp_cms/urls.py
@@ -3,11 +3,11 @@ from __future__ import unicode_literals
 
 from django.conf.urls import url, include, patterns
 from django.contrib import admin
-from django.conf import settings
 
 admin.autodiscover()
 
-urlpatterns = patterns('',
+urlpatterns = patterns(
+    '',
     url(r'^admin/', include(admin.site.urls)),
     url(r'', include('cms.urls')),
 )
diff --git a/tests/myapp_cms/urls_news.py b/tests/myapp_cms/urls_news.py
index a9a706d718a2bf8c43e31e2352995c8b550910f3..5c397283b5fd1f2ccff4f0a7418410dbd9fe93d8 100644
--- a/tests/myapp_cms/urls_news.py
+++ b/tests/myapp_cms/urls_news.py
@@ -9,7 +9,7 @@ from .models import News
 urlpatterns = patterns(
     '',
     url(
-        r'^(?P<year>\d{4})/(?P<month>\d{2})/(?P<day>\d{2})/(?P<slug>[0-9a-zA-Z_-]+)/$', 
+        r'^(?P<year>\d{4})/(?P<month>\d{2})/(?P<day>\d{2})/(?P<slug>[0-9a-zA-Z_-]+)/$',
         NewsboxDetailView.as_view(
             model=News,),
         name='news_detail'),
diff --git a/tests/myapp_i18n/models.py b/tests/myapp_i18n/models.py
index 332d9e84afc80ff20b4ea69d9a4a61c286b707df..2b542e9bd58b9234144861f3125b817fbe69247c 100644
--- a/tests/myapp_i18n/models.py
+++ b/tests/myapp_i18n/models.py
@@ -5,16 +5,19 @@ from django.db import models
 from newsbox.models import NewsboxBase, NewsboxSEOBase, NewsboxExpiredBase
 from newsbox_i18n.models import NewsboxI18NBase
 
+
 class News(NewsboxI18NBase, NewsboxBase):
     class Meta:
         verbose_name = 'news - I18N'
         verbose_name_plural = 'news - I18N'
 
+
 class NewsComplete(NewsboxI18NBase, NewsboxBase, NewsboxSEOBase, NewsboxExpiredBase):
     class Meta:
         verbose_name = 'news - CompleteI18N'
         verbose_name_plural = 'news - CompleteI18N'
 
+
 class NewsExtended(NewsboxI18NBase, NewsboxBase, NewsboxSEOBase, NewsboxExpiredBase):
     general_field = models.CharField(max_length=50)
     content_field = models.CharField(max_length=50)
@@ -24,4 +27,3 @@ class NewsExtended(NewsboxI18NBase, NewsboxBase, NewsboxSEOBase, NewsboxExpiredB
         verbose_name = 'news - ExtendedI18N'
         verbose_name_plural = 'news - ExtendedI18N'
         newsbox_trans_fieldnames = ['content_field', 'seo_field']
-
diff --git a/tests/myapp_i18n/tests.py b/tests/myapp_i18n/tests.py
index 12183fcc7f523401e485a27cb0ab7176b17a4caf..ac1d90c91750ef85dbc11d196870c1de17be2252 100644
--- a/tests/myapp_i18n/tests.py
+++ b/tests/myapp_i18n/tests.py
@@ -8,11 +8,9 @@ from django.utils.translation import activate
 from .models import News, NewsComplete, NewsExtended
 
 
-
-
 class NewsboxAbstractModelsTests(TestCase):
 
-    fixtures = ['tests_data.json',]
+    fixtures = ['tests_data.json', ]
 
     def test_01_manager_published(self):
         """
@@ -24,9 +22,8 @@ class NewsboxAbstractModelsTests(TestCase):
         for cls in newsClasses:
             returned_ids = list(cls.objects.published().values_list(
                 'id', flat=True).order_by('id'))
-            self.assertEqual(
-                (cls.__name__,returned_ids),
-                (cls.__name__,[1, 4, 6, 7,]))
+            self.assertEqual((cls.__name__, returned_ids),
+                             (cls.__name__, [1, 4, 6, 7, ]))
 
     def test_02_extra_translated_fields(self):
         news = NewsExtended.objects.get(pk=1)
@@ -60,7 +57,6 @@ class NewsboxAbstractModelsTests(TestCase):
         self.assertRaises(EmptyPage, r.context['newsset'].previous_page_number)
         self.assertEqual(r.context['newsset'].next_page_number(), 2)
 
-
     def test_04_view_detail_200(self):
         """
         Test if generic day views return right informations.
@@ -98,9 +94,8 @@ class NewsboxAbstractModelsTests(TestCase):
 
     def test_08_get_absolute_url(self):
         news6 = News.objects.get(pk=6)
-        expected_results = {
-            'en':'/en/newsbox/myapp_i18n/news/2005/07/15/news-6/',
-            'fr':'/fr/newsbox/myapp_i18n/news/2005/07/15/actualite-6/',}
+        expected_results = {'en': '/en/newsbox/myapp_i18n/news/2005/07/15/news-6/',
+                            'fr': '/fr/newsbox/myapp_i18n/news/2005/07/15/actualite-6/', }
         for lang in expected_results:
             activate(lang)
             self.assertEqual(news6.get_absolute_url(), expected_results[lang])
diff --git a/tests/myapp_i18n/urls.py b/tests/myapp_i18n/urls.py
index 252d85cff6236f3475910ba5be364fbafd18db7d..fbce4f8394d0547144ca765e54105a6f81dc2e50 100644
--- a/tests/myapp_i18n/urls.py
+++ b/tests/myapp_i18n/urls.py
@@ -4,14 +4,14 @@ from __future__ import unicode_literals
 from django.conf.urls import url, include
 from django.conf.urls.i18n import i18n_patterns
 from django.contrib import admin
-from django.conf import settings
 from newsbox.views import NewsboxYearArchiveView, NewsboxArchiveView
 
 from .models import News
 
 admin.autodiscover()
 
-urlpatterns = i18n_patterns('',
+urlpatterns = i18n_patterns(
+    '',
     url(r'^admin/', include(admin.site.urls)),
     url(r'^', include('newsbox_i18n.urls')),
     url(r'^news/$',
diff --git a/tests/settings.py b/tests/settings.py
index e32d25c9bea80a4686b550465d4d089c51bc686e..92e01b4884cd8ee46d892471a1fd9fdc7d6a3633 100644
--- a/tests/settings.py
+++ b/tests/settings.py
@@ -22,7 +22,6 @@ INSTALLED_APPS = (
     'django.contrib.sites',
     'django.contrib.staticfiles',
     'django.contrib.admin',
-    
     'newsbox',
     'myapp',
 )
diff --git a/tests/settings_all30.py b/tests/settings_all30.py
index 230561b7c1fd702bc757413804a7a30a337136fd..689584d76c636c267909c290a51166e709e9e168 100644
--- a/tests/settings_all30.py
+++ b/tests/settings_all30.py
@@ -1,17 +1,17 @@
 # -*- coding: utf-8 -*-
 from __future__ import unicode_literals
-from settings_cms30 import *
+from settings_cms30 import *  # noqa
 
-INSTALLED_APPS = list(INSTALLED_APPS + ('myapp_all',))
+INSTALLED_APPS = list(INSTALLED_APPS + ('myapp_all', ))
 INSTALLED_APPS.remove('myapp_cms')
 INSTALLED_APPS = tuple(INSTALLED_APPS)
 
-LANGUAGES = [('en', 'English',), ('fr', 'French',),]
+LANGUAGES = [('en', 'English', ), ('fr', 'French', ), ]
 PARLER_DEFAULT_LANGUAGE_CODE = 'fr'
 PARLER_LANGUAGES = {
     None: (
-        {'code': 'en',},
-        {'code': 'fr',},
+        {'code': 'en', },
+        {'code': 'fr', },
     ),
     'default': {
         'fallbacks': ['fr'],
@@ -19,7 +19,7 @@ PARLER_LANGUAGES = {
     }
 }
 ROOT_URLCONF = 'myapp_all.urls'
-MIDDLEWARE_CLASSES=MIDDLEWARE_CLASSES+(
+MIDDLEWARE_CLASSES = MIDDLEWARE_CLASSES + (
     'django.middleware.common.CommonMiddleware',
     'django.contrib.sessions.middleware.SessionMiddleware',
     'django.middleware.locale.LocaleMiddleware',
@@ -30,6 +30,6 @@ MIDDLEWARE_CLASSES=MIDDLEWARE_CLASSES+(
 CMS_PLACEHOLDER_CONF = {
     'main': {
         'name': "Main content",
-        'plugins': ['NewsPlugin','TextPlugin'],
+        'plugins': ['NewsPlugin', 'TextPlugin'],
     },
 }
diff --git a/tests/settings_all31.py b/tests/settings_all31.py
index 2e9fe816c0514093e8f06e370db73a71d7dfa0c3..caefcfd15e7f955c29b8d7b232eec104bc4d5f96 100644
--- a/tests/settings_all31.py
+++ b/tests/settings_all31.py
@@ -1,17 +1,17 @@
 # -*- coding: utf-8 -*-
 from __future__ import unicode_literals
-from settings_cms31 import *
+from settings_cms31 import *  # noqa
 
-INSTALLED_APPS = list(INSTALLED_APPS + ('myapp_all',))
+INSTALLED_APPS = list(INSTALLED_APPS + ('myapp_all', ))
 INSTALLED_APPS.remove('myapp_cms')
 INSTALLED_APPS = tuple(INSTALLED_APPS)
 
-LANGUAGES = [('en', 'English',), ('fr', 'French',),]
+LANGUAGES = [('en', 'English', ), ('fr', 'French', ), ]
 PARLER_DEFAULT_LANGUAGE_CODE = 'fr'
 PARLER_LANGUAGES = {
     None: (
-        {'code': 'en',},
-        {'code': 'fr',},
+        {'code': 'en', },
+        {'code': 'fr', },
     ),
     'default': {
         'fallbacks': ['fr'],
@@ -19,7 +19,7 @@ PARLER_LANGUAGES = {
     }
 }
 ROOT_URLCONF = 'myapp_all.urls'
-MIDDLEWARE_CLASSES=MIDDLEWARE_CLASSES+(
+MIDDLEWARE_CLASSES = MIDDLEWARE_CLASSES + (
     'django.middleware.common.CommonMiddleware',
     'django.contrib.sessions.middleware.SessionMiddleware',
     'django.middleware.locale.LocaleMiddleware',
@@ -30,6 +30,6 @@ MIDDLEWARE_CLASSES=MIDDLEWARE_CLASSES+(
 CMS_PLACEHOLDER_CONF = {
     'main': {
         'name': "Main content",
-        'plugins': ['NewsPlugin','TextPlugin'],
+        'plugins': ['NewsPlugin', 'TextPlugin'],
     },
 }
diff --git a/tests/settings_cms30.py b/tests/settings_cms30.py
index aff9a8d54bce6b5db45f7c3764447b460bdd9aca..53ccf897e5bb21f0d09b9acaa6dc4b6701f08db2 100644
--- a/tests/settings_cms30.py
+++ b/tests/settings_cms30.py
@@ -1,17 +1,16 @@
 # -*- coding: utf-8 -*-
 from __future__ import unicode_literals
-from settings import *
+from settings import *  # noqa
 
 SITE_ID = 1
 INSTALLED_APPS = list(INSTALLED_APPS + (
-    #cms requirements
-    'cms',  # django CMS itself
-    'mptt',  # utilities for implementing a modified pre-order traversal tree
-    'menus',  # helper for model independent hierarchical website navigation
-    'south',  # intelligent schema and data migrations
-    'sekizai',  # for javascript and css management
-    'djangocms_admin_style',  # for the admin skin. You **must** add 'djangocms_admin_style' in the list before 'django.contrib.admin'.
-    'django.contrib.messages',  # to enable messages framework (see :ref:`Enable messages <enable-messages>`)
+    'cms',
+    'mptt',
+    'menus',
+    'south',
+    'sekizai',
+    'djangocms_admin_style',
+    'django.contrib.messages',
     'djangocms_text_ckeditor',
     'newsbox_cms',
     'myapp_cms',
@@ -48,6 +47,6 @@ ROOT_URLCONF = 'myapp_cms.urls'
 CMS_PLACEHOLDER_CONF = {
     'main': {
         'name': "Main content",
-        'plugins': ['NewsPlugin',],
+        'plugins': ['NewsPlugin', ],
     },
 }
diff --git a/tests/settings_cms31.py b/tests/settings_cms31.py
index 03df6e3042fa3b06be40953ec72be65a41bb6285..14b41b341d1ac222696a90704a29137ce9fff621 100644
--- a/tests/settings_cms31.py
+++ b/tests/settings_cms31.py
@@ -1,16 +1,15 @@
 # -*- coding: utf-8 -*-
 from __future__ import unicode_literals
-from settings import *
+from settings import *  # noqa
 
 SITE_ID = 1
 INSTALLED_APPS = list(INSTALLED_APPS + (
-    #cms requirements
-    'cms',  # django CMS itself
-    'treebeard',  # utilities for implementing a modified pre-order traversal tree
-    'menus',  # helper for model independent hierarchical website navigation
-    'sekizai',  # for javascript and css management
-    'djangocms_admin_style',  # for the admin skin. You **must** add 'djangocms_admin_style' in the list before 'django.contrib.admin'.
-    'django.contrib.messages',  # to enable messages framework (see :ref:`Enable messages <enable-messages>`)
+    'cms',
+    'treebeard',
+    'menus',
+    'sekizai',
+    'djangocms_admin_style',
+    'django.contrib.messages',
     'djangocms_text_ckeditor',
     'newsbox_cms',
     'myapp_cms',
@@ -61,6 +60,6 @@ ROOT_URLCONF = 'myapp_cms.urls'
 CMS_PLACEHOLDER_CONF = {
     'main': {
         'name': "Main content",
-        'plugins': ['NewsPlugin',],
+        'plugins': ['NewsPlugin', ],
     },
 }
diff --git a/tests/settings_i18n.py b/tests/settings_i18n.py
index b6a6573e987c4adc0bced2f9fce8a6336b3c22a9..016917baa285fd136de672cc5cb842c8d7e648fa 100644
--- a/tests/settings_i18n.py
+++ b/tests/settings_i18n.py
@@ -1,13 +1,13 @@
 # -*- coding: utf-8 -*-
 from __future__ import unicode_literals
-from settings import *
+from settings import *  # noqa
 
-LANGUAGES = [('en', 'English'),('fr', 'French'),]
+LANGUAGES = [('en', 'English'), ('fr', 'French'), ]
 PARLER_DEFAULT_LANGUAGE_CODE = 'fr'
 PARLER_LANGUAGES = {
     None: (
-        {'code': 'en',},
-        {'code': 'fr',},
+        {'code': 'en', },
+        {'code': 'fr', },
     ),
     'default': {
         'fallbacks': ['fr'],
@@ -15,7 +15,7 @@ PARLER_LANGUAGES = {
     }
 }
 ROOT_URLCONF = 'myapp_i18n.urls'
-MIDDLEWARE_CLASSES=(
+MIDDLEWARE_CLASSES = (
     'django.middleware.common.CommonMiddleware',
     'django.contrib.sessions.middleware.SessionMiddleware',
     'django.middleware.locale.LocaleMiddleware',
diff --git a/tests/utils.py b/tests/utils.py
index 3a98796edf5b126074719d4715c1b26f133a675b..26e5cab04ced7313338ac7747fd13f46203bde9e 100644
--- a/tests/utils.py
+++ b/tests/utils.py
@@ -1,21 +1,24 @@
 # -*- coding: utf-8 -*-
+
 from __future__ import unicode_literals
+
 from myapp.models import News, NewsExpired, NewsSEO, NewsComplete, NewsExtended
-from myapp_cms.models import News as cms_News, \
-     NewsComplete as cms_NewsComplete, \
-     NewsExtended as cms_NewsExtended
-from myapp_i18n.models import News as i18n_News, \
-     NewsComplete as i18n_NewsComplete, \
-     NewsExtended as i18n_NewsExtended
-from myapp_all.models import News as all_News, \
-     NewsComplete as all_NewsComplete, \
-     NewsExtended as all_NewsExtended
+from myapp_cms.models import News as cms_News
+from myapp_cms.models import NewsComplete as cms_NewsComplete
+from myapp_cms.models import NewsExtended as cms_NewsExtended
+from myapp_i18n.models import News as i18n_News
+from myapp_i18n.models import NewsComplete as i18n_NewsComplete
+from myapp_i18n.models import NewsExtended as i18n_NewsExtended
+from myapp_all.models import News as all_News
+from myapp_all.models import NewsComplete as all_NewsComplete
+from myapp_all.models import NewsExtended as all_NewsExtended
 from cms.models.placeholdermodel import Placeholder
 from cms.api import add_plugin
 
+
 def get_fields_values(newsTypes, newsType, i, inherited):
-    fields_values={}
-    if newsType in inherited :
+    fields_values = {}
+    if newsType in inherited:
         return fields_values
     inherited.append(newsType)
 
@@ -25,231 +28,229 @@ def get_fields_values(newsTypes, newsType, i, inherited):
         fields_values.update(newsTypes[newsType]['overwrites'][i])
     return fields_values
 
+
 def create_tests_data(app=None):
 
-    #Translations of translatable fields
+    # Translations of translatable fields
     translations = {
-        'en':{
-            #default content is already in english
+        'en': {
+            # default content is already in english
         },
-        'fr':{
-            'newsbox_slug':'actualite-%d',
-            'newsbox_title':'Actualité %d',
-            'newsbox_summary':'Résumé de l\'actualité %d',
-            'newsbox_body':'Corps de l\'actualité %d',
-            'newsbox_meta_description':'Meta description de l\'actualité %d',
-            'newsbox_meta_keywords':'motclef1, motclef2, actualite-%d',
-            'content_field':'Contenu additionnel de l\'actualité %d',
-            'seo_field':'SEO additionnel de l\'actualité %d',
+        'fr': {
+            'newsbox_slug': 'actualite-%d',
+            'newsbox_title': 'Actualité %d',
+            'newsbox_summary': 'Résumé de l\'actualité %d',
+            'newsbox_body': 'Corps de l\'actualité %d',
+            'newsbox_meta_description': 'Meta description de l\'actualité %d',
+            'newsbox_meta_keywords': 'motclef1, motclef2, actualite-%d',
+            'content_field': 'Contenu additionnel de l\'actualité %d',
+            'seo_field': 'SEO additionnel de l\'actualité %d',
         },
     }
     translatable_fields = translations['fr'].keys()
 
-    #array of available NewsTypes
-    #for each NewsType, we define a subarray with the model to use and
-    #default fields values in "overwrites" which is a subarray too :
+    # array of available NewsTypes
+    # for each NewsType, we define a subarray with the model to use and
+    # default fields values in "overwrites" which is a subarray too :
     #   - inherit is a list of other NewsTypes to get default fields.from their conf
     #   - key 0 is the default values for all news
     #   - keys 1 to N is an array with values to overwrite for news 1 to N.
     # Can also contain a "languages" list with language code for translations.
-    #Only used for I18N Models. Translations are in "translations" variable.
+    # Only used for I18N Models. Translations are in "translations" variable.
     newsTypes = {
-        'News' : {
-            'model':News,
-            'overwrites':{
-                'inherit':[],
-                #0 is for base values
-                0:{
-                    'newsbox_slug':'news-%d',
-                    'newsbox_title':'News %d',
-                    'newsbox_date':'2014-02-22T10:00:00+02:00',
-                    'newsbox_publication_start_date':'1985-07-02T10:00:00+02:00',
-                    'newsbox_published':True,
-                    'newsbox_summary':'Summary of the news %d',
-                    'newsbox_body':'Body of the news %d',
+        'News': {
+            'model': News,
+            'overwrites': {
+                'inherit': [],
+                # 0 is for base values
+                0: {
+                    'newsbox_slug': 'news-%d',
+                    'newsbox_title': 'News %d',
+                    'newsbox_date': '2014-02-22T10:00:00+02:00',
+                    'newsbox_publication_start_date': '1985-07-02T10:00:00+02:00',
+                    'newsbox_published': True,
+                    'newsbox_summary': 'Summary of the news %d',
+                    'newsbox_body': 'Body of the news %d',
                 },
-                1:{},
-                2:{'newsbox_published':False},
-                3:{'newsbox_publication_start_date':'2020-01-01T10:00:00+02:00'},
-                4:{'newsbox_body':''},
-                5:{'newsbox_published':False},
-                6:{'newsbox_date':'2005-07-15T10:00:00+02:00'},
-                7:{'newsbox_date':'2020-01-01T10:00:00+02:00'},
+                1: {},
+                2: {'newsbox_published': False},
+                3: {'newsbox_publication_start_date': '2020-01-01T10:00:00+02:00'},
+                4: {'newsbox_body': ''},
+                5: {'newsbox_published': False},
+                6: {'newsbox_date': '2005-07-15T10:00:00+02:00'},
+                7: {'newsbox_date': '2020-01-01T10:00:00+02:00'},
             },
         },
-        'NewsExpired' : {
-            'model':NewsExpired,
-            'overwrites':{
-                'inherit':['News',],
-                5:{
-                    'newsbox_published':True,
-                    'newsbox_publication_end_date':'2000-01-01T10:00:00+02:00',
+        'NewsExpired': {
+            'model': NewsExpired,
+            'overwrites': {
+                'inherit': ['News', ],
+                5: {
+                    'newsbox_published': True,
+                    'newsbox_publication_end_date': '2000-01-01T10:00:00+02:00',
                 },
             },
         },
-        'NewsSEO' : {
-            'model':NewsSEO,
-            'overwrites':{
-                'inherit':['News',],
-                0:{
-                    'newsbox_indexed':True,
-                    'newsbox_meta_description':'Meta description of the news %d',
-                    'newsbox_meta_keywords':'keyword1, keyword2, news-%d',
+        'NewsSEO': {
+            'model': NewsSEO,
+            'overwrites': {
+                'inherit': ['News', ],
+                0: {
+                    'newsbox_indexed': True,
+                    'newsbox_meta_description': 'Meta description of the news %d',
+                    'newsbox_meta_keywords': 'keyword1, keyword2, news-%d',
                 },
-                6:{
-                    'newsbox_indexed':False,
+                6: {
+                    'newsbox_indexed': False,
                 },
             },
         },
-        'NewsComplete' : {
-            'model':NewsComplete,
-            'overwrites':{
-                'inherit':['NewsExpired', 'NewsSEO'],
+        'NewsComplete': {
+            'model': NewsComplete,
+            'overwrites': {
+                'inherit': ['NewsExpired', 'NewsSEO'],
             },
         },
-        'NewsExtended' : {
-            'model':NewsExtended,
-            'overwrites':{
-                'inherit':['NewsComplete'],
-                0:{
-                    'general_field':'Test',
-                    'content_field':'Extra content of the news %d',
-                    'seo_field':'Extra SEO of the news %d',
+        'NewsExtended': {
+            'model': NewsExtended,
+            'overwrites': {
+                'inherit': ['NewsComplete'],
+                0: {
+                    'general_field': 'Test',
+                    'content_field': 'Extra content of the news %d',
+                    'seo_field': 'Extra SEO of the news %d',
                 },
             }
         },
 
-        #CMS Models
-        'cms_News' : {
-            'model':cms_News,
-            'overwrites':{
-                'inherit':['News',],
-                0:{
-                    'newsbox_summary':'<p>Summary of the news %d</p>',
-                    'newsbox_body':'<p>Body of the news %d</p>',
+        # CMS Models
+        'cms_News': {
+            'model': cms_News,
+            'overwrites': {
+                'inherit': ['News', ],
+                0: {
+                    'newsbox_summary': '<p>Summary of the news %d</p>',
+                    'newsbox_body': '<p>Body of the news %d</p>',
                 },
             },
         },
-        'cms_NewsComplete' : {
-            'model':cms_NewsComplete,
-            'overwrites':{
-                'inherit':['NewsComplete', 'cms_News'],
+        'cms_NewsComplete': {
+            'model': cms_NewsComplete,
+            'overwrites': {
+                'inherit': ['NewsComplete', 'cms_News'],
             },
         },
-        'cms_NewsExtended' : {
-            'model':cms_NewsExtended,
-            'overwrites':{
-                'inherit':['cms_NewsComplete'],
+        'cms_NewsExtended': {
+            'model': cms_NewsExtended,
+            'overwrites': {
+                'inherit': ['cms_NewsComplete'],
             },
         },
 
-        #I18N Models
-        'i18n_News' : {
-            'languages':['en', 'fr',],
-            'model':i18n_News,
-            'overwrites':{
-                'inherit':['News',],
+        # I18N Models
+        'i18n_News': {
+            'languages': ['en', 'fr', ],
+            'model': i18n_News,
+            'overwrites': {
+                'inherit': ['News', ],
             },
         },
-        'i18n_NewsComplete' : {
-            'languages':['en', 'fr',],
-            'model':i18n_NewsComplete,
-            'overwrites':{
-                'inherit':['NewsComplete', 'i18n_News'],
+        'i18n_NewsComplete': {
+            'languages': ['en', 'fr', ],
+            'model': i18n_NewsComplete,
+            'overwrites': {
+                'inherit': ['NewsComplete', 'i18n_News'],
             },
         },
-        'i18n_NewsExtended' : {
-            'languages':['en', 'fr',],
-            'model':i18n_NewsExtended,
-            'overwrites':{
-                'inherit':['NewsExtended', 'i18n_NewsComplete'],
+        'i18n_NewsExtended': {
+            'languages': ['en', 'fr', ],
+            'model': i18n_NewsExtended,
+            'overwrites': {
+                'inherit': ['NewsExtended', 'i18n_NewsComplete'],
             },
         },
 
-        #ALL Models
-        'all_News' : {
-            'languages':['en', 'fr',],
-            'model':all_News,
-            'overwrites':{
-                'inherit':['News',],
-                0:{
-                    'newsbox_summary':'<p>Summary of the news %d</p>',
-                    'newsbox_body':'<p>Body of the news %d</p>',
+        # ALL Models
+        'all_News': {
+            'languages': ['en', 'fr', ],
+            'model': all_News,
+            'overwrites': {
+                'inherit': ['News', ],
+                0: {
+                    'newsbox_summary': '<p>Summary of the news %d</p>',
+                    'newsbox_body': '<p>Body of the news %d</p>',
                 },
             },
         },
-        'all_NewsComplete' : {
-            'languages':['en', 'fr',],
-            'model':all_NewsComplete,
-            'overwrites':{
-                'inherit':['NewsComplete', 'all_News'],
+        'all_NewsComplete': {
+            'languages': ['en', 'fr', ],
+            'model': all_NewsComplete,
+            'overwrites': {
+                'inherit': ['NewsComplete', 'all_News'],
             },
         },
-        'all_NewsExtended' : {
-            'languages':['en', 'fr',],
-            'model':all_NewsExtended,
-            'overwrites':{
-                'inherit':['NewsExtended', 'all_NewsComplete'],
+        'all_NewsExtended': {
+            'languages': ['en', 'fr', ],
+            'model': all_NewsExtended,
+            'overwrites': {
+                'inherit': ['NewsExtended', 'all_NewsComplete'],
             },
         },
     }
     nb_news_a_creer = len(newsTypes['News']['overwrites'])-2
     for newsType, infos in newsTypes.items():
-        if app and app +'_' not in newsType:
+        if app and (app + '_') not in newsType:
             continue
         base_kwargs = get_fields_values(newsTypes, newsType, 0, [])
 
-
         print '\n%s\n' % newsType + '-' * len(newsType)
 
         for i in range(1, nb_news_a_creer+1):
-
-            if not 'languages' in infos:
-                infos['languages'] = [None,]
+            if 'languages' not in infos:
+                infos['languages'] = [None, ]
 
             for lang in infos['languages']:
                 kwargs = base_kwargs.copy()
                 kwargs.update(get_fields_values(newsTypes, newsType, i, []))
-                #Retrieve translated values if a lang is specified
+                # Retrieve translated values if a lang is specified
                 if lang and lang in translations and translations[lang]:
                     for k in translations[lang]:
-                        if k in kwargs :
+                        if k in kwargs:
                             if kwargs[k][0:3] == '<p>':
                                 kwargs[k] = '<p>'+translations[lang][k]+'</p>'
                             else:
                                 kwargs[k] = translations[lang][k]
 
-                #Add the "nth" informations for fields which need it
+                # Add the "nth" informations for fields which need it
                 for k in kwargs:
                     if type(kwargs[k]) in (str, unicode) and '%d' in kwargs[k]:
                         kwargs[k] = kwargs[k] % i
 
                 try:
-                    #Transform field into placeholders if needed
+                    # Transform field into placeholders if needed
                     ph_names = getattr(infos['model']._meta, 'placeholder_field_names')
                     for ph_name in ph_names:
-                        if not ph_name in kwargs:
+                        if ph_name not in kwargs:
                             continue
                         ph = Placeholder.objects.create(slot=ph_name)
-                        add_plugin(ph, 'TextPlugin', lang if lang != None else 'en', body=kwargs[ph_name])
+                        add_plugin(ph, 'TextPlugin', lang if lang is not None else 'en',
+                                   body=kwargs[ph_name])
                         kwargs[ph_name] = ph
                 except AttributeError:
                     pass
 
-                translatable_values = {k:v
-                    for k, v in kwargs.items()
-                    if k in translatable_fields}
+                translatable_values = {k: v for k, v in kwargs.items()
+                                       if k in translatable_fields}
                 untranslatable_fields = list(set(kwargs) - set(translatable_fields))
-                untranslatable_values = {k:v
-                    for k, v in kwargs.items()
-                    if k in untranslatable_fields}
+                untranslatable_values = {k: v for k, v in kwargs.items()
+                                         if k in untranslatable_fields}
 
                 langstr = ' (%s)' % lang if lang else ''
                 print ' - %d%s : %s' % (i, langstr, kwargs['newsbox_title'])
                 if lang == infos['languages'][0]:
                     news = infos['model'](**untranslatable_values)
 
-                if lang  :
+                if lang:
                     news.translate(lang)
                 for k in translatable_values:
                     setattr(news, k, translatable_values[k])