hacking: noqa cleanup in horizon

attribute-level imports are not checked by hacking module now.
most noqa is used to disable warnings on attribute-level imports.
This commit drops noqa for this purpose.

After this, there are 8 noqa under horizon/ :)

In addition to this, the following changes are made.

horizon/exceptions.py: The following imports are dropped.
They are not used anywhere.
  from django.http import HttpRequest
  from django.views.debug import CLEANSED_SUBSTITUTE

horizon/forms/__init__.py:
Some entries were missing in __all__. They are added.

Change-Id: I33b504ef6c396f0675e8a340867e2ca59c77c684
This commit is contained in:
Akihiro Motoki 2017-03-17 18:52:05 +00:00
parent 676d5a2bad
commit 61091388e9
48 changed files with 208 additions and 159 deletions

View File

@ -24,10 +24,10 @@ methods like :func:`~horizon.register` and :func:`~horizon.unregister`.
# should that fail. # should that fail.
Horizon = None Horizon = None
try: try:
from horizon.base import Dashboard # noqa from horizon.base import Dashboard
from horizon.base import Horizon # noqa from horizon.base import Horizon
from horizon.base import Panel # noqa from horizon.base import Panel
from horizon.base import PanelGroup # noqa from horizon.base import PanelGroup
except ImportError: except ImportError:
import warnings import warnings

View File

@ -30,20 +30,20 @@ import django
from django.conf import settings from django.conf import settings
from django.conf.urls import include from django.conf.urls import include
from django.conf.urls import url from django.conf.urls import url
from django.core.exceptions import ImproperlyConfigured # noqa from django.core.exceptions import ImproperlyConfigured
from django.core.urlresolvers import reverse from django.core.urlresolvers import reverse
from django.utils.encoding import python_2_unicode_compatible from django.utils.encoding import python_2_unicode_compatible
from django.utils.functional import empty from django.utils.functional import empty
from django.utils.functional import SimpleLazyObject # noqa from django.utils.functional import SimpleLazyObject
from django.utils.module_loading import module_has_submodule # noqa from django.utils.module_loading import module_has_submodule
from django.utils.translation import ugettext_lazy as _ from django.utils.translation import ugettext_lazy as _
from importlib import import_module from importlib import import_module
import six import six
from horizon import conf from horizon import conf
from horizon.decorators import _current_component # noqa from horizon.decorators import _current_component
from horizon.decorators import require_auth # noqa from horizon.decorators import require_auth
from horizon.decorators import require_perms # noqa from horizon.decorators import require_perms
from horizon import loaders from horizon import loaders
from horizon.utils import settings as utils_settings from horizon.utils import settings as utils_settings

View File

@ -13,5 +13,11 @@
# under the License. # under the License.
# Importing non-modules that are not used explicitly # Importing non-modules that are not used explicitly
from horizon.browsers.base import ResourceBrowser # noqa from horizon.browsers.base import ResourceBrowser
from horizon.browsers.views import ResourceBrowserView # noqa from horizon.browsers.views import ResourceBrowserView
__all__ = [
'ResourceBrowser',
'ResourceBrowserView',
]

View File

@ -15,8 +15,8 @@
from django import template from django import template
from django.utils.translation import ugettext_lazy as _ from django.utils.translation import ugettext_lazy as _
from horizon.browsers.breadcrumb import Breadcrumb # noqa from horizon.browsers.breadcrumb import Breadcrumb
from horizon.tables import DataTable # noqa from horizon.tables import DataTable
from horizon.utils import html from horizon.utils import html

View File

@ -15,7 +15,7 @@
from django.utils.translation import ugettext_lazy as _ from django.utils.translation import ugettext_lazy as _
from django.views import generic from django.views import generic
from horizon.tables import MultiTableView # noqa from horizon.tables import MultiTableView
from horizon.utils import memoized from horizon.utils import memoized

View File

@ -12,15 +12,15 @@
import copy import copy
from django.utils.functional import empty # noqa from django.utils.functional import empty
from django.utils.functional import LazyObject # noqa from django.utils.functional import LazyObject
from django.utils.functional import SimpleLazyObject # noqa from django.utils.functional import SimpleLazyObject
class LazySettings(LazyObject): class LazySettings(LazyObject):
def _setup(self, name=None): def _setup(self, name=None):
from django.conf import settings from django.conf import settings
from horizon.conf.default import HORIZON_CONFIG as DEFAULT_CONFIG # noqa from horizon.conf.default import HORIZON_CONFIG as DEFAULT_CONFIG
HORIZON_CONFIG = copy.copy(DEFAULT_CONFIG) HORIZON_CONFIG = copy.copy(DEFAULT_CONFIG)
HORIZON_CONFIG.update(settings.HORIZON_CONFIG) HORIZON_CONFIG.update(settings.HORIZON_CONFIG)

View File

@ -21,7 +21,7 @@ General-purpose decorators for use with Horizon.
""" """
import functools import functools
from django.utils.decorators import available_attrs # noqa from django.utils.decorators import available_attrs
from django.utils.translation import ugettext_lazy as _ from django.utils.translation import ugettext_lazy as _
@ -44,7 +44,7 @@ def require_auth(view_func):
:exc:`~horizon.exceptions.NotAuthenticated` exception if the user is not :exc:`~horizon.exceptions.NotAuthenticated` exception if the user is not
signed-in. signed-in.
""" """
from horizon.exceptions import NotAuthenticated # noqa from horizon.exceptions import NotAuthenticated
@functools.wraps(view_func, assigned=available_attrs(view_func)) @functools.wraps(view_func, assigned=available_attrs(view_func))
def dec(request, *args, **kwargs): def dec(request, *args, **kwargs):
@ -72,7 +72,7 @@ def require_perms(view_func, required):
Raises a :exc:`~horizon.exceptions.NotAuthorized` exception if the Raises a :exc:`~horizon.exceptions.NotAuthorized` exception if the
requirements are not met. requirements are not met.
""" """
from horizon.exceptions import NotAuthorized # noqa from horizon.exceptions import NotAuthorized
# We only need to check each permission once for a view, so we'll use a set # We only need to check each permission once for a view, so we'll use a set
current_perms = getattr(view_func, '_required_perms', set([])) current_perms = getattr(view_func, '_required_perms', set([]))
view_func._required_perms = current_perms | set(required) view_func._required_perms = current_perms | set(required)

View File

@ -22,14 +22,12 @@ import sys
import six import six
from django.core.management import color_style # noqa from django.core.management import color_style
from django.http import HttpRequest # noqa
from django.utils import encoding from django.utils import encoding
from django.utils.translation import ugettext_lazy as _ from django.utils.translation import ugettext_lazy as _
from django.views.debug import CLEANSED_SUBSTITUTE # noqa from django.views.debug import SafeExceptionReporterFilter
from django.views.debug import SafeExceptionReporterFilter # noqa
from horizon.conf import HORIZON_CONFIG # noqa from horizon.conf import HORIZON_CONFIG
from horizon import messages from horizon import messages
LOG = logging.getLogger(__name__) LOG = logging.getLogger(__name__)
@ -226,7 +224,7 @@ def handle_unauthorized(request, message, redirect, ignore, escalate, handled,
# access settings.CACHES in django.core.caches) while # access settings.CACHES in django.core.caches) while
# openstack_dashboard.settings requires django.contrib.auth to be # openstack_dashboard.settings requires django.contrib.auth to be
# loaded while importing openstack_auth.utils # loaded while importing openstack_auth.utils
from django.contrib.auth import logout # noqa from django.contrib.auth import logout
logout(request) logout(request)
raise NotAuthorized raise NotAuthorized
# Otherwise continue and present our "unauthorized" error message. # Otherwise continue and present our "unauthorized" error message.

View File

@ -15,7 +15,7 @@
# Importing non-modules that are not used explicitly # Importing non-modules that are not used explicitly
# FIXME(gabriel): Legacy imports for API compatibility. # FIXME(gabriel): Legacy imports for API compatibility.
from django.core.exceptions import ValidationError # noqa from django.core.exceptions import ValidationError
from django.forms.fields import * # noqa from django.forms.fields import * # noqa
from django.forms.forms import * # noqa from django.forms.forms import * # noqa
from django.forms import widgets from django.forms import widgets
@ -23,26 +23,26 @@ from django.forms.widgets import * # noqa
# Convenience imports for public API components. # Convenience imports for public API components.
from horizon.forms.base import DateForm # noqa from horizon.forms.base import DateForm
from horizon.forms.base import SelfHandlingForm # noqa from horizon.forms.base import SelfHandlingForm
from horizon.forms.base import SelfHandlingMixin # noqa from horizon.forms.base import SelfHandlingMixin
from horizon.forms.fields import DynamicChoiceField # noqa from horizon.forms.fields import DynamicChoiceField
from horizon.forms.fields import DynamicTypedChoiceField # noqa from horizon.forms.fields import DynamicTypedChoiceField
from horizon.forms.fields import ExternalFileField # noqa from horizon.forms.fields import ExternalFileField
from horizon.forms.fields import ExternalUploadMeta # noqa from horizon.forms.fields import ExternalUploadMeta
from horizon.forms.fields import IPField # noqa from horizon.forms.fields import IPField
from horizon.forms.fields import IPv4 # noqa from horizon.forms.fields import IPv4
from horizon.forms.fields import IPv6 # noqa from horizon.forms.fields import IPv6
from horizon.forms.fields import MultiIPField # noqa from horizon.forms.fields import MultiIPField
from horizon.forms.fields import SelectWidget # noqa from horizon.forms.fields import SelectWidget
from horizon.forms.fields import ThemableCheckboxInput # noqa from horizon.forms.fields import ThemableCheckboxInput
from horizon.forms.fields import ThemableCheckboxSelectMultiple # noqa from horizon.forms.fields import ThemableCheckboxSelectMultiple
from horizon.forms.fields import ThemableChoiceField # noqa from horizon.forms.fields import ThemableChoiceField
from horizon.forms.fields import ThemableDynamicChoiceField # noqa from horizon.forms.fields import ThemableDynamicChoiceField
from horizon.forms.fields import ThemableDynamicTypedChoiceField # noqa from horizon.forms.fields import ThemableDynamicTypedChoiceField
from horizon.forms.fields import ThemableSelectWidget # noqa from horizon.forms.fields import ThemableSelectWidget
from horizon.forms.views import ModalFormMixin # noqa from horizon.forms.views import ModalFormMixin
from horizon.forms.views import ModalFormView # noqa from horizon.forms.views import ModalFormView
__all__ = [ __all__ = [
@ -53,10 +53,13 @@ __all__ = [
"ModalFormMixin", "ModalFormMixin",
"DynamicTypedChoiceField", "DynamicTypedChoiceField",
"DynamicChoiceField", "DynamicChoiceField",
"ExternalFileField",
"ExternalUploadMeta",
"ThemableCheckboxInput", "ThemableCheckboxInput",
"ThemableCheckboxSelectMultiple", "ThemableCheckboxSelectMultiple",
"ThemableChoiceField", "ThemableChoiceField",
"ThemableDynamicChoiceField", "ThemableDynamicChoiceField",
"ThemableDynamicTypedChoiceField",
"ThemableSelectWidget", "ThemableSelectWidget",
"IPField", "IPField",
"IPv4", "IPv4",

View File

@ -17,7 +17,7 @@
# under the License. # under the License.
from django import forms from django import forms
from django.forms.forms import NON_FIELD_ERRORS # noqa from django.forms.forms import NON_FIELD_ERRORS
class SelfHandlingMixin(object): class SelfHandlingMixin(object):

View File

@ -20,16 +20,16 @@ import six
from oslo_utils import uuidutils from oslo_utils import uuidutils
from django.core.exceptions import ValidationError # noqa from django.core.exceptions import ValidationError
from django.core import urlresolvers from django.core import urlresolvers
from django.forms import fields from django.forms import fields
from django.forms import forms from django.forms import forms
from django.forms.utils import flatatt # noqa from django.forms.utils import flatatt
from django.forms import widgets from django.forms import widgets
from django.template import Context # noqa from django.template import Context
from django.template.loader import get_template # noqa from django.template.loader import get_template
from django.utils.encoding import force_text from django.utils.encoding import force_text
from django.utils.functional import Promise # noqa from django.utils.functional import Promise
from django.utils import html from django.utils import html
from django.utils.translation import ugettext_lazy as _ from django.utils.translation import ugettext_lazy as _

View File

@ -21,12 +21,12 @@ import django
from django.conf import settings from django.conf import settings
from django.template.engine import Engine from django.template.engine import Engine
from django.template.loaders.base import Loader as tLoaderCls from django.template.loaders.base import Loader as tLoaderCls
from django.utils._os import safe_join # noqa from django.utils._os import safe_join
if django.VERSION >= (1, 9): if django.VERSION >= (1, 9):
from django.template.exceptions import TemplateDoesNotExist from django.template.exceptions import TemplateDoesNotExist
else: else:
from django.template.base import TemplateDoesNotExist # noqa from django.template.base import TemplateDoesNotExist
# Set up a cache of the panel directories to search. # Set up a cache of the panel directories to search.
panel_template_dirs = {} panel_template_dirs = {}

View File

@ -13,8 +13,8 @@
import glob import glob
import os import os
from django.core.management.base import CommandError # noqa from django.core.management.base import CommandError
from django.core.management.templates import TemplateCommand # noqa from django.core.management.templates import TemplateCommand
from importlib import import_module from importlib import import_module
import horizon import horizon

View File

@ -13,8 +13,8 @@
import glob import glob
import os import os
from django.core.management.base import CommandError # noqa from django.core.management.base import CommandError
from django.core.management.templates import TemplateCommand # noqa from django.core.management.templates import TemplateCommand
from importlib import import_module from importlib import import_module
import horizon import horizon

View File

@ -20,7 +20,7 @@ messaging needs (e.g. AJAX communication, etc.).
from django.contrib import messages as _messages from django.contrib import messages as _messages
from django.contrib.messages import constants from django.contrib.messages import constants
from django.utils.encoding import force_text from django.utils.encoding import force_text
from django.utils.safestring import SafeData # noqa from django.utils.safestring import SafeData
def horizon_message_already_queued(request, message): def horizon_message_already_queued(request, message):

View File

@ -23,12 +23,12 @@ import json
import logging import logging
from django.conf import settings from django.conf import settings
from django.contrib.auth import REDIRECT_FIELD_NAME # noqa from django.contrib.auth import REDIRECT_FIELD_NAME
from django.contrib.auth.views import redirect_to_login # noqa from django.contrib.auth.views import redirect_to_login
from django.contrib import messages as django_messages from django.contrib import messages as django_messages
from django import http from django import http
from django import shortcuts from django import shortcuts
from django.utils.encoding import iri_to_uri # noqa from django.utils.encoding import iri_to_uri
from django.utils import timezone from django.utils import timezone
from django.utils.translation import ugettext_lazy as _ from django.utils.translation import ugettext_lazy as _

View File

@ -19,7 +19,7 @@
from django.conf import settings from django.conf import settings
from django.conf.urls import include from django.conf.urls import include
from django.conf.urls import url from django.conf.urls import url
from django.views.generic import TemplateView # noqa from django.views.generic import TemplateView
from django.views import i18n from django.views import i18n
from horizon.test.jasmine import jasmine from horizon.test.jasmine import jasmine

View File

@ -15,20 +15,41 @@
# Convenience imports for public API components. # Convenience imports for public API components.
# Importing non-modules that are not used explicitly # Importing non-modules that are not used explicitly
from horizon.tables.actions import Action # noqa from horizon.tables.actions import Action
from horizon.tables.actions import BatchAction # noqa from horizon.tables.actions import BatchAction
from horizon.tables.actions import DeleteAction # noqa from horizon.tables.actions import DeleteAction
from horizon.tables.actions import FilterAction # noqa from horizon.tables.actions import FilterAction
from horizon.tables.actions import FixedFilterAction # noqa from horizon.tables.actions import FixedFilterAction
from horizon.tables.actions import LinkAction # noqa from horizon.tables.actions import LinkAction
from horizon.tables.actions import NameFilterAction # noqa from horizon.tables.actions import NameFilterAction
from horizon.tables.actions import UpdateAction # noqa from horizon.tables.actions import UpdateAction
from horizon.tables.base import Column # noqa from horizon.tables.base import Column
from horizon.tables.base import DataTable # noqa from horizon.tables.base import DataTable
from horizon.tables.base import Row # noqa from horizon.tables.base import Row
from horizon.tables.base import WrappingColumn # noqa from horizon.tables.base import WrappingColumn
from horizon.tables.views import DataTableView # noqa from horizon.tables.views import DataTableView
from horizon.tables.views import MixedDataTableView # noqa from horizon.tables.views import MixedDataTableView
from horizon.tables.views import MultiTableMixin # noqa from horizon.tables.views import MultiTableMixin
from horizon.tables.views import MultiTableView # noqa from horizon.tables.views import MultiTableView
from horizon.tables.views import PagedTableMixin # noqa from horizon.tables.views import PagedTableMixin
__all__ = [
'Action',
'BatchAction',
'DeleteAction',
'FilterAction',
'FixedFilterAction',
'LinkAction',
'NameFilterAction',
'UpdateAction',
'Column',
'DataTable',
'Row',
'WrappingColumn',
'DataTableView',
'MixedDataTableView',
'MultiTableMixin',
'MultiTableView',
'PagedTableMixin',
]

View File

@ -22,9 +22,9 @@ import warnings
from django.conf import settings from django.conf import settings
from django.core import urlresolvers from django.core import urlresolvers
from django import shortcuts from django import shortcuts
from django.template.loader import render_to_string # noqa from django.template.loader import render_to_string
from django.utils.functional import Promise # noqa from django.utils.functional import Promise
from django.utils.http import urlencode # noqa from django.utils.http import urlencode
from django.utils.translation import pgettext_lazy from django.utils.translation import pgettext_lazy
from django.utils.translation import ugettext_lazy as _ from django.utils.translation import ugettext_lazy as _
from django.utils.translation import ungettext_lazy from django.utils.translation import ungettext_lazy

View File

@ -23,10 +23,10 @@ from django.conf import settings
from django.core import exceptions as core_exceptions from django.core import exceptions as core_exceptions
from django.core import urlresolvers from django.core import urlresolvers
from django import forms from django import forms
from django.http import HttpResponse # noqa from django.http import HttpResponse
from django import template from django import template
from django.template.defaultfilters import slugify # noqa from django.template.defaultfilters import slugify
from django.template.defaultfilters import truncatechars # noqa from django.template.defaultfilters import truncatechars
from django.template.loader import render_to_string from django.template.loader import render_to_string
from django.utils.html import escape from django.utils.html import escape
from django.utils import http from django.utils import http
@ -40,8 +40,8 @@ from horizon import conf
from horizon import exceptions from horizon import exceptions
from horizon.forms import ThemableCheckboxInput from horizon.forms import ThemableCheckboxInput
from horizon import messages from horizon import messages
from horizon.tables.actions import FilterAction # noqa from horizon.tables.actions import FilterAction
from horizon.tables.actions import LinkAction # noqa from horizon.tables.actions import LinkAction
from horizon.utils import html from horizon.utils import html

View File

@ -18,7 +18,7 @@ from django import shortcuts
from horizon import views from horizon import views
from horizon.templatetags.horizon import has_permissions # noqa from horizon.templatetags.horizon import has_permissions
class MultiTableMixin(object): class MultiTableMixin(object):

View File

@ -14,9 +14,19 @@
# Importing non-modules that are not used explicitly # Importing non-modules that are not used explicitly
from horizon.tabs.base import DetailTabsGroup # noqa from horizon.tabs.base import DetailTabsGroup
from horizon.tabs.base import Tab # noqa from horizon.tabs.base import Tab
from horizon.tabs.base import TabGroup # noqa from horizon.tabs.base import TabGroup
from horizon.tabs.base import TableTab # noqa from horizon.tabs.base import TableTab
from horizon.tabs.views import TabbedTableView # noqa from horizon.tabs.views import TabbedTableView
from horizon.tabs.views import TabView # noqa from horizon.tabs.views import TabView
__all__ = [
'DetailTabsGroup',
'Tab',
'TabGroup',
'TableTab',
'TabbedTableView',
'TabView',
]

View File

@ -18,7 +18,7 @@ import sys
import six import six
from django.template.loader import render_to_string from django.template.loader import render_to_string
from django.template import TemplateSyntaxError # noqa from django.template import TemplateSyntaxError
from horizon import exceptions from horizon import exceptions
from horizon.utils import html from horizon.utils import html

View File

@ -14,7 +14,7 @@ from django import http
from horizon import exceptions from horizon import exceptions
from horizon import tables from horizon import tables
from horizon.tabs.base import TableTab # noqa from horizon.tabs.base import TableTab
from horizon import views from horizon import views

View File

@ -24,7 +24,7 @@ from django.utils.encoding import force_text
from django.utils import translation from django.utils import translation
from django.utils.translation import ugettext_lazy as _ from django.utils.translation import ugettext_lazy as _
from horizon.base import Horizon # noqa from horizon.base import Horizon
from horizon import conf from horizon import conf

View File

@ -20,7 +20,7 @@
Template tags for parsing date strings. Template tags for parsing date strings.
""" """
from datetime import datetime # noqa from datetime import datetime
from django import template from django import template
from django.utils import timezone from django.utils import timezone

View File

@ -22,16 +22,16 @@ import socket
import time import time
import unittest import unittest
from django.contrib.auth.middleware import AuthenticationMiddleware # noqa from django.contrib.auth.middleware import AuthenticationMiddleware
from django.contrib.auth.models import Permission # noqa from django.contrib.auth.models import Permission
from django.contrib.auth.models import User # noqa from django.contrib.auth.models import User
from django.contrib.contenttypes.models import ContentType # noqa from django.contrib.contenttypes.models import ContentType
from django.contrib.messages.storage import default_storage # noqa from django.contrib.messages.storage import default_storage
from django.contrib.sessions.backends.base import SessionBase # noqa from django.contrib.sessions.backends.base import SessionBase
from django.core.handlers import wsgi from django.core.handlers import wsgi
from django import http from django import http
from django import test as django_test from django import test as django_test
from django.test.client import RequestFactory # noqa from django.test.client import RequestFactory
from django.utils.encoding import force_text from django.utils.encoding import force_text
import six import six
@ -50,7 +50,7 @@ try:
from selenium.webdriver.support import ui as selenium_ui from selenium.webdriver.support import ui as selenium_ui
import xvfbwrapper # Only needed when running the Selenium tests headless import xvfbwrapper # Only needed when running the Selenium tests headless
from horizon.test.webdriver import WebDriver # noqa from horizon.test.webdriver import WebDriver
except ImportError as e: except ImportError as e:
LOG.warning("{0}, force WITH_SELENIUM=False".format(str(e))) LOG.warning("{0}, force WITH_SELENIUM=False".format(str(e)))
os.environ['WITH_SELENIUM'] = '' os.environ['WITH_SELENIUM'] = ''

View File

@ -12,7 +12,7 @@
from django.conf.urls import url from django.conf.urls import url
from horizon.test.test_dashboards.cats.kittens.views import IndexView # noqa from horizon.test.test_dashboards.cats.kittens.views import IndexView
urlpatterns = [ urlpatterns = [
url(r'^$', IndexView.as_view(), name='index'), url(r'^$', IndexView.as_view(), name='index'),

View File

@ -12,7 +12,7 @@
from django.conf.urls import url from django.conf.urls import url
from horizon.test.test_dashboards.cats.tigers.views import IndexView # noqa from horizon.test.test_dashboards.cats.tigers.views import IndexView
urlpatterns = [ urlpatterns = [
url(r'^$', IndexView.as_view(), name='index'), url(r'^$', IndexView.as_view(), name='index'),

View File

@ -12,8 +12,8 @@
from django.conf.urls import url from django.conf.urls import url
from horizon.test.test_dashboards.dogs.puppies.views import IndexView # noqa from horizon.test.test_dashboards.dogs.puppies.views import IndexView
from horizon.test.test_dashboards.dogs.puppies.views import TwoTabsView # noqa from horizon.test.test_dashboards.dogs.puppies.views import TwoTabsView
urlpatterns = [ urlpatterns = [
url(r'^$', IndexView.as_view(), name='index'), url(r'^$', IndexView.as_view(), name='index'),

View File

@ -19,8 +19,8 @@
import django import django
from django.conf import settings from django.conf import settings
from django.contrib.auth.models import User # noqa from django.contrib.auth.models import User
from django.core.exceptions import ImproperlyConfigured # noqa from django.core.exceptions import ImproperlyConfigured
from django.core import urlresolvers from django.core import urlresolvers
from importlib import import_module from importlib import import_module
from six import moves from six import moves
@ -31,11 +31,11 @@ import horizon
from horizon import base from horizon import base
from horizon import conf from horizon import conf
from horizon.test import helpers as test from horizon.test import helpers as test
from horizon.test.test_dashboards.cats.dashboard import Cats # noqa from horizon.test.test_dashboards.cats.dashboard import Cats
from horizon.test.test_dashboards.cats.kittens.panel import Kittens # noqa from horizon.test.test_dashboards.cats.kittens.panel import Kittens
from horizon.test.test_dashboards.cats.tigers.panel import Tigers # noqa from horizon.test.test_dashboards.cats.tigers.panel import Tigers
from horizon.test.test_dashboards.dogs.dashboard import Dogs # noqa from horizon.test.test_dashboards.dogs.dashboard import Dogs
from horizon.test.test_dashboards.dogs.puppies.panel import Puppies # noqa from horizon.test.test_dashboards.dogs.puppies.panel import Puppies
class MyDash(horizon.Dashboard): class MyDash(horizon.Dashboard):

View File

@ -17,7 +17,7 @@ from mock import patch
import django import django
from django.conf import settings from django.conf import settings
from django.core.exceptions import MiddlewareNotUsed from django.core.exceptions import MiddlewareNotUsed
from django.http import HttpResponseRedirect # noqa from django.http import HttpResponseRedirect
from django.test.utils import override_settings from django.test.utils import override_settings
from django.utils import timezone from django.utils import timezone

View File

@ -23,7 +23,7 @@ from django.template import defaultfilters
from django.test.utils import override_settings from django.test.utils import override_settings
from django.utils.translation import ungettext_lazy from django.utils.translation import ungettext_lazy
from mox3.mox import IsA # noqa from mox3.mox import IsA
import six import six
from horizon import tables from horizon import tables

View File

@ -26,8 +26,8 @@ from horizon import middleware
from horizon import tabs as horizon_tabs from horizon import tabs as horizon_tabs
from horizon.test import helpers as test from horizon.test import helpers as test
from horizon.test.tests.tables import MyTable # noqa from horizon.test.tests.tables import MyTable
from horizon.test.tests.tables import TEST_DATA # noqa from horizon.test.tests.tables import TEST_DATA
class BaseTestTab(horizon_tabs.Tab): class BaseTestTab(horizon_tabs.Tab):

View File

@ -19,11 +19,12 @@
import re import re
from django.conf import settings from django.conf import settings
from django.template import Context # noqa from django.template import Context
from django.template import Template # noqa from django.template import Template
from django.utils.text import normalize_newlines # noqa from django.utils.text import normalize_newlines
from horizon.test import helpers as test from horizon.test import helpers as test
# The following imports are required to register the dashboards.
from horizon.test.test_dashboards.cats.dashboard import Cats # noqa from horizon.test.test_dashboards.cats.dashboard import Cats # noqa
from horizon.test.test_dashboards.cats.kittens.panel import Kittens # noqa from horizon.test.test_dashboards.cats.kittens.panel import Kittens # noqa
from horizon.test.test_dashboards.dogs.dashboard import Dogs # noqa from horizon.test.test_dashboards.dogs.dashboard import Dogs # noqa

View File

@ -15,7 +15,7 @@
import datetime import datetime
import os import os
from django.core.exceptions import ValidationError # noqa from django.core.exceptions import ValidationError
import django.template import django.template
from django.template import defaultfilters from django.template import defaultfilters

View File

@ -23,8 +23,8 @@ URL patterns for testing Horizon views.
from django.conf.urls import include from django.conf.urls import include
from django.conf.urls import url from django.conf.urls import url
from django.contrib.auth import views from django.contrib.auth import views
from django.contrib.staticfiles.urls import staticfiles_urlpatterns # noqa from django.contrib.staticfiles.urls import staticfiles_urlpatterns
from django.views.generic import TemplateView # noqa from django.views.generic import TemplateView
import horizon import horizon
from horizon.test.jasmine import jasmine from horizon.test.jasmine import jasmine

View File

@ -26,12 +26,12 @@ from django.conf import settings
from django.core.exceptions import SuspiciousFileOperation from django.core.exceptions import SuspiciousFileOperation
from django.template.engine import Engine from django.template.engine import Engine
from django.template.loaders.base import Loader as tLoaderCls from django.template.loaders.base import Loader as tLoaderCls
from django.utils._os import safe_join # noqa from django.utils._os import safe_join
if django.VERSION >= (1, 9): if django.VERSION >= (1, 9):
from django.template.exceptions import TemplateDoesNotExist from django.template.exceptions import TemplateDoesNotExist
else: else:
from django.template.base import TemplateDoesNotExist # noqa from django.template.base import TemplateDoesNotExist
# Local thread storage to retrieve the currently set theme # Local thread storage to retrieve the currently set theme

View File

@ -12,12 +12,12 @@
from __future__ import division from __future__ import division
from csv import DictWriter # noqa from csv import DictWriter
from csv import writer # noqa from csv import writer
from django.http import HttpResponse # noqa from django.http import HttpResponse
from django.http import StreamingHttpResponse # noqa from django.http import StreamingHttpResponse
from django import template as django_template from django import template as django_template
import six import six

View File

@ -16,8 +16,8 @@ import datetime
import iso8601 import iso8601
from django.template.defaultfilters import register # noqa from django.template.defaultfilters import register
from django.template.defaultfilters import timesince # noqa from django.template.defaultfilters import timesince
from django.utils.safestring import mark_safe from django.utils.safestring import mark_safe
from django.utils import timezone from django.utils import timezone
from django.utils.translation import ugettext_lazy as _ from django.utils.translation import ugettext_lazy as _

View File

@ -19,10 +19,10 @@ from oslo_utils import units
import six import six
from django.conf import settings from django.conf import settings
from django.contrib.auth import logout # noqa from django.contrib.auth import logout
from django import http from django import http
from django.utils.encoding import force_text from django.utils.encoding import force_text
from django.utils.functional import lazy # noqa from django.utils.functional import lazy
from django.utils import translation from django.utils import translation

View File

@ -12,7 +12,7 @@
import copy import copy
from django.forms.utils import flatatt # noqa from django.forms.utils import flatatt
class HTMLElement(object): class HTMLElement(object):

View File

@ -16,8 +16,8 @@ import re
from oslo_utils import netutils from oslo_utils import netutils
from django.core.exceptions import ValidationError # noqa from django.core.exceptions import ValidationError
from django.core import validators # noqa from django.core import validators
from django.utils.translation import ugettext_lazy as _ from django.utils.translation import ugettext_lazy as _
from horizon import conf from horizon import conf

View File

@ -12,9 +12,19 @@
# Importing non-modules that are not used explicitly # Importing non-modules that are not used explicitly
from horizon.workflows.base import Action # noqa from horizon.workflows.base import Action
from horizon.workflows.base import MembershipAction # noqa from horizon.workflows.base import MembershipAction
from horizon.workflows.base import Step # noqa from horizon.workflows.base import Step
from horizon.workflows.base import UpdateMembersStep # noqa from horizon.workflows.base import UpdateMembersStep
from horizon.workflows.base import Workflow # noqa from horizon.workflows.base import Workflow
from horizon.workflows.views import WorkflowView # noqa from horizon.workflows.views import WorkflowView
__all__ = [
'Action',
'MembershipAction',
'Step',
'UpdateMembersStep',
'Workflow',
'WorkflowView',
]

View File

@ -13,17 +13,17 @@
# under the License. # under the License.
import copy import copy
from importlib import import_module # noqa from importlib import import_module
import inspect import inspect
import logging import logging
from django.core import urlresolvers from django.core import urlresolvers
from django import forms from django import forms
from django.forms.forms import NON_FIELD_ERRORS # noqa from django.forms.forms import NON_FIELD_ERRORS
from django import template from django import template
from django.template.defaultfilters import linebreaks # noqa from django.template.defaultfilters import linebreaks
from django.template.defaultfilters import safe # noqa from django.template.defaultfilters import safe
from django.template.defaultfilters import slugify # noqa from django.template.defaultfilters import slugify
from django.utils.encoding import force_text from django.utils.encoding import force_text
from django.utils.translation import ugettext_lazy as _ from django.utils.translation import ugettext_lazy as _
from openstack_auth import policy from openstack_auth import policy
@ -31,7 +31,7 @@ import six
from horizon import base from horizon import base
from horizon import exceptions from horizon import exceptions
from horizon.templatetags.horizon import has_permissions # noqa from horizon.templatetags.horizon import has_permissions
from horizon.utils import html from horizon.utils import html

View File

@ -24,7 +24,7 @@ import six
from horizon import exceptions from horizon import exceptions
from horizon.forms import views as hz_views from horizon.forms import views as hz_views
from horizon.forms.views import ADD_TO_FIELD_HEADER # noqa from horizon.forms.views import ADD_TO_FIELD_HEADER
from horizon import messages from horizon import messages

View File

@ -15,7 +15,7 @@
import os import os
import sys import sys
from django.core.management import execute_from_command_line # noqa from django.core.management import execute_from_command_line
if __name__ == "__main__": if __name__ == "__main__":
os.environ.setdefault("DJANGO_SETTINGS_MODULE", os.environ.setdefault("DJANGO_SETTINGS_MODULE",

View File

@ -20,7 +20,7 @@
import os import os
import sys import sys
import install_venv_common as install_venv # noqa import install_venv_common as install_venv
def print_help(venv, root): def print_help(venv, root):