diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index a574c2a..0bce0f8 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -2,7 +2,7 @@ repos: - repo: https://github.com/miki725/importanize - rev: '0.7' + rev: '0.8.0-alpha1' hooks: - id: importanize language_version: python3 @@ -20,12 +20,12 @@ repos: args: [--py3-plus] - repo: https://github.com/myint/docformatter - rev: v1.4 + rev: v1.5.0-rc1 hooks: - id: docformatter - repo: https://github.com/PyCQA/flake8 - rev: 5.0.2 + rev: 5.0.4 hooks: - id: flake8 exclude: deployment/roles diff --git a/django_sorcery/__init__.py b/django_sorcery/__init__.py index 52bf790..747793d 100644 --- a/django_sorcery/__init__.py +++ b/django_sorcery/__init__.py @@ -1,9 +1,4 @@ -from .__version__ import ( - __author__, - __author_email__, - __description__, - __version__, -) +from .__version__ import __author__, __author_email__, __description__, __version__ __all__ = [ diff --git a/django_sorcery/db/fields.py b/django_sorcery/db/fields.py index 2845c32..b54bb8d 100644 --- a/django_sorcery/db/fields.py +++ b/django_sorcery/db/fields.py @@ -2,6 +2,7 @@ from contextlib import suppress import sqlalchemy as sa + from django import forms as djangoforms from django.core import validators as django_validators from django.db.backends.base import operations diff --git a/django_sorcery/db/meta/column.py b/django_sorcery/db/meta/column.py index 6147493..8a95007 100644 --- a/django_sorcery/db/meta/column.py +++ b/django_sorcery/db/meta/column.py @@ -4,8 +4,10 @@ import enum from contextlib import suppress -import sqlalchemy as sa from dateutil.parser import parse + +import sqlalchemy as sa + from django import forms as djangoforms from django.conf import settings from django.core import validators as djangovalidators diff --git a/django_sorcery/db/meta/composite.py b/django_sorcery/db/meta/composite.py index 9dcd264..9a04bae 100644 --- a/django_sorcery/db/meta/composite.py +++ b/django_sorcery/db/meta/composite.py @@ -2,6 +2,7 @@ from collections import OrderedDict import sqlalchemy as sa + from django.core.exceptions import ValidationError from ...exceptions import NestedValidationError diff --git a/django_sorcery/db/meta/model.py b/django_sorcery/db/meta/model.py index cbcc1a0..35b2253 100644 --- a/django_sorcery/db/meta/model.py +++ b/django_sorcery/db/meta/model.py @@ -4,7 +4,9 @@ from itertools import chain import inflect + import sqlalchemy as sa + from django.apps import apps from django.core.exceptions import FieldDoesNotExist, ValidationError diff --git a/django_sorcery/db/meta/relations.py b/django_sorcery/db/meta/relations.py index dae1b94..413fa1f 100644 --- a/django_sorcery/db/meta/relations.py +++ b/django_sorcery/db/meta/relations.py @@ -2,6 +2,7 @@ from itertools import chain import sqlalchemy as sa + from django.core.exceptions import ImproperlyConfigured diff --git a/django_sorcery/db/models.py b/django_sorcery/db/models.py index 0f72e57..5cae043 100644 --- a/django_sorcery/db/models.py +++ b/django_sorcery/db/models.py @@ -4,9 +4,10 @@ import sqlalchemy as sa import sqlalchemy.ext.declarative # noqa import sqlalchemy.orm # noqa +from sqlalchemy.orm.base import MANYTOONE, NO_VALUE + from django.core.exceptions import ValidationError from django.utils.text import camel_case_to_spaces -from sqlalchemy.orm.base import MANYTOONE, NO_VALUE from . import meta, signals from .mixins import CleanMixin diff --git a/django_sorcery/db/profiler.py b/django_sorcery/db/profiler.py index 44c1feb..7b66a9c 100644 --- a/django_sorcery/db/profiler.py +++ b/django_sorcery/db/profiler.py @@ -6,6 +6,7 @@ from threading import local import sqlalchemy as sa + from django.conf import settings diff --git a/django_sorcery/db/query.py b/django_sorcery/db/query.py index 53a51c9..6b9192c 100644 --- a/django_sorcery/db/query.py +++ b/django_sorcery/db/query.py @@ -4,6 +4,7 @@ import sqlalchemy as sa import sqlalchemy.orm # noqa + from django.db.models.constants import LOOKUP_SEP from ..utils import lower diff --git a/django_sorcery/db/url.py b/django_sorcery/db/url.py index a500420..6a8b276 100644 --- a/django_sorcery/db/url.py +++ b/django_sorcery/db/url.py @@ -3,6 +3,7 @@ from importlib import import_module import sqlalchemy as sa + from django.conf import settings from django.utils.encoding import force_str from django.utils.module_loading import import_string diff --git a/django_sorcery/db/utils.py b/django_sorcery/db/utils.py index 8afb5d2..0c3a9a3 100644 --- a/django_sorcery/db/utils.py +++ b/django_sorcery/db/utils.py @@ -1,6 +1,7 @@ from contextlib import suppress import sqlalchemy as sa + from django.db import DEFAULT_DB_ALIAS from django.utils.module_loading import import_string diff --git a/django_sorcery/forms.py b/django_sorcery/forms.py index e73f43b..5bde8b7 100644 --- a/django_sorcery/forms.py +++ b/django_sorcery/forms.py @@ -3,20 +3,10 @@ from contextlib import suppress from itertools import chain -from django.core.exceptions import ( - NON_FIELD_ERRORS, - ImproperlyConfigured, - ValidationError, -) +from django.core.exceptions import NON_FIELD_ERRORS, ImproperlyConfigured, ValidationError from django.forms import ALL_FIELDS -from django.forms.forms import ( - BaseForm as DjangoBaseForm, - DeclarativeFieldsMetaclass, -) -from django.forms.models import ( - BaseModelForm as DjangoBaseModelForm, - ModelFormOptions, -) +from django.forms.forms import BaseForm as DjangoBaseForm, DeclarativeFieldsMetaclass +from django.forms.models import BaseModelForm as DjangoBaseModelForm, ModelFormOptions from django.forms.utils import ErrorList from .db import meta diff --git a/django_sorcery/management/alembic.py b/django_sorcery/management/alembic.py index d32ae91..9c787e3 100644 --- a/django_sorcery/management/alembic.py +++ b/django_sorcery/management/alembic.py @@ -4,9 +4,11 @@ import alembic import alembic.config + +from sqlalchemy.orm import configure_mappers + from django.core.management.base import BaseCommand, CommandError from django.utils.functional import cached_property -from sqlalchemy.orm import configure_mappers from ..db import alembic as sorcery_alembic, databases, meta, signals from ..db.alembic import include_object, process_revision_directives diff --git a/django_sorcery/management/base.py b/django_sorcery/management/base.py index 63c6a35..2a5bb68 100644 --- a/django_sorcery/management/base.py +++ b/django_sorcery/management/base.py @@ -3,6 +3,7 @@ import os import sqlalchemy as sa + from django.core.management.base import BaseCommand, CommandParser diff --git a/django_sorcery/management/commands/sorcery_createall.py b/django_sorcery/management/commands/sorcery_createall.py index 079a30a..b6d4580 100644 --- a/django_sorcery/management/commands/sorcery_createall.py +++ b/django_sorcery/management/commands/sorcery_createall.py @@ -1,8 +1,9 @@ """CreateAll command.""" -from django.core.management.base import BaseCommand from sqlalchemy.orm import configure_mappers +from django.core.management.base import BaseCommand + from ...db import databases diff --git a/django_sorcery/management/commands/sorcery_downgrade.py b/django_sorcery/management/commands/sorcery_downgrade.py index ce30ff5..ff8129f 100644 --- a/django_sorcery/management/commands/sorcery_downgrade.py +++ b/django_sorcery/management/commands/sorcery_downgrade.py @@ -2,6 +2,7 @@ from functools import partial import alembic + from django.core.management import CommandError from ..alembic import AlembicCommand diff --git a/django_sorcery/management/commands/sorcery_dropall.py b/django_sorcery/management/commands/sorcery_dropall.py index 9d84264..1490dd1 100644 --- a/django_sorcery/management/commands/sorcery_dropall.py +++ b/django_sorcery/management/commands/sorcery_dropall.py @@ -1,8 +1,9 @@ """DropAll command.""" -from django.core.management.base import BaseCommand from sqlalchemy.orm import configure_mappers +from django.core.management.base import BaseCommand + from ...db import databases diff --git a/django_sorcery/management/commands/sorcery_stamp.py b/django_sorcery/management/commands/sorcery_stamp.py index aead96e..f3647b8 100644 --- a/django_sorcery/management/commands/sorcery_stamp.py +++ b/django_sorcery/management/commands/sorcery_stamp.py @@ -2,6 +2,7 @@ from functools import partial import alembic + from django.core.management import CommandError from ..alembic import AlembicCommand diff --git a/django_sorcery/management/commands/sorcery_upgrade.py b/django_sorcery/management/commands/sorcery_upgrade.py index 93c8f27..6fcb27c 100644 --- a/django_sorcery/management/commands/sorcery_upgrade.py +++ b/django_sorcery/management/commands/sorcery_upgrade.py @@ -2,6 +2,7 @@ from functools import partial import alembic + from django.core.management import CommandError from ..alembic import AlembicCommand diff --git a/django_sorcery/shortcuts.py b/django_sorcery/shortcuts.py index 65c1495..fe93cea 100644 --- a/django_sorcery/shortcuts.py +++ b/django_sorcery/shortcuts.py @@ -1,13 +1,13 @@ """Some Django like shortcuts that support sqlalchemy models.""" from contextlib import suppress +from sqlalchemy.exc import InvalidRequestError + from django.core.exceptions import ImproperlyConfigured from django.http import Http404 -from sqlalchemy.exc import InvalidRequestError def _get_query(klass): - query = getattr(klass, "query", None) or getattr(klass, "objects", None) if query: diff --git a/django_sorcery/validators/base.py b/django_sorcery/validators/base.py index 9e5a0d4..11d9bad 100644 --- a/django_sorcery/validators/base.py +++ b/django_sorcery/validators/base.py @@ -1,9 +1,10 @@ """Validators.""" import sqlalchemy as sa +from sqlalchemy import inspect + from django.core.exceptions import ValidationError from django.utils.translation import gettext_lazy as _ -from sqlalchemy import inspect class ValidateTogetherModelFields: diff --git a/django_sorcery/views/base.py b/django_sorcery/views/base.py index 87b1246..1c75caa 100644 --- a/django_sorcery/views/base.py +++ b/django_sorcery/views/base.py @@ -1,14 +1,15 @@ """Base model view things with sqlalchemy.""" from contextlib import suppress +from sqlalchemy import literal +from sqlalchemy.exc import InvalidRequestError + from django.apps import apps from django.core.exceptions import ImproperlyConfigured from django.core.paginator import InvalidPage, Paginator from django.http import Http404 from django.utils.translation import gettext from django.views.generic.base import ContextMixin -from sqlalchemy import literal -from sqlalchemy.exc import InvalidRequestError from ..db import meta diff --git a/django_sorcery/views/edit.py b/django_sorcery/views/edit.py index 2ec69c5..8dae45c 100644 --- a/django_sorcery/views/edit.py +++ b/django_sorcery/views/edit.py @@ -6,11 +6,7 @@ from django.views.generic.edit import FormMixin from .. import forms -from .detail import ( - BaseDetailView, - SingleObjectMixin, - SingleObjectTemplateResponseMixin, -) +from .detail import BaseDetailView, SingleObjectMixin, SingleObjectTemplateResponseMixin class ModelFormMixin(FormMixin, SingleObjectMixin): diff --git a/docs/conf.py b/docs/conf.py index c202121..8a9da59 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -20,9 +20,10 @@ import os import sys +import sphinx_rtd_theme + import django import django.test.utils -import sphinx_rtd_theme from django.conf import settings diff --git a/test_site/polls/apps.py b/test_site/polls/apps.py index 02c4930..af26ec3 100644 --- a/test_site/polls/apps.py +++ b/test_site/polls/apps.py @@ -1,6 +1,7 @@ -from django.apps import AppConfig from sqlalchemy.orm import configure_mappers +from django.apps import AppConfig + class PollsConfig(AppConfig): name = "polls" diff --git a/test_site/polls/urls.py b/test_site/polls/urls.py index 7f1bc40..78f19c7 100644 --- a/test_site/polls/urls.py +++ b/test_site/polls/urls.py @@ -1,4 +1,5 @@ from django.urls import include, path + from django_sorcery.routers import SimpleRouter from . import views diff --git a/test_site/polls/views.py b/test_site/polls/views.py index 573bb56..573237f 100644 --- a/test_site/polls/views.py +++ b/test_site/polls/views.py @@ -1,5 +1,6 @@ from django.http import HttpResponseRedirect from django.urls import reverse, reverse_lazy + from django_sorcery.formsets import inlineformset_factory from django_sorcery.routers import action from django_sorcery.viewsets import ModelViewSet diff --git a/tests/__init__.py b/tests/__init__.py index 3d9e322..1709d99 100644 --- a/tests/__init__.py +++ b/tests/__init__.py @@ -1,8 +1,9 @@ import os -import django from psycopg2cffi import compat +import django + compat.register() diff --git a/tests/base.py b/tests/base.py index f8d1035..4f486cb 100644 --- a/tests/base.py +++ b/tests/base.py @@ -1,5 +1,7 @@ from bs4 import BeautifulSoup + from django import test + from django_sorcery.db import databases diff --git a/tests/db/alembic/test_base.py b/tests/db/alembic/test_base.py index 6059799..c282e47 100644 --- a/tests/db/alembic/test_base.py +++ b/tests/db/alembic/test_base.py @@ -1,5 +1,7 @@ import alembic.config + from django.test import TestCase + from django_sorcery.db.alembic.base import setup_config diff --git a/tests/db/alembic/test_signals.py b/tests/db/alembic/test_signals.py index feb3183..c1fdd72 100644 --- a/tests/db/alembic/test_signals.py +++ b/tests/db/alembic/test_signals.py @@ -1,9 +1,7 @@ from django.test import TestCase + from django_sorcery.db import signals -from django_sorcery.db.alembic.signals import ( - include_object, - process_revision_directives, -) +from django_sorcery.db.alembic.signals import include_object, process_revision_directives class TestIncludeObject(TestCase): diff --git a/tests/db/meta/test_column.py b/tests/db/meta/test_column.py index 7b04a82..766e332 100644 --- a/tests/db/meta/test_column.py +++ b/tests/db/meta/test_column.py @@ -3,22 +3,19 @@ from decimal import Decimal import pytz + import sqlalchemy as sa + from django import forms as djangoforms from django.core import validators as django_validators from django.core.exceptions import ValidationError from django.forms import fields as djangofields, widgets + from django_sorcery import fields as sorceryfields from django_sorcery.db import fields as dbfields, meta from ...base import TestCase, mock -from ...testapp.models import ( - COLORS, - AllKindsOfFields, - Business, - Vehicle, - VehicleType, -) +from ...testapp.models import COLORS, AllKindsOfFields, Business, Vehicle, VehicleType class TestColumnMeta(TestCase): diff --git a/tests/db/meta/test_composite.py b/tests/db/meta/test_composite.py index 050d41c..38bd289 100644 --- a/tests/db/meta/test_composite.py +++ b/tests/db/meta/test_composite.py @@ -1,4 +1,5 @@ from django.core.exceptions import ValidationError + from django_sorcery.db import meta # noqa from ...base import TestCase diff --git a/tests/db/meta/test_model.py b/tests/db/meta/test_model.py index e527274..dc58319 100644 --- a/tests/db/meta/test_model.py +++ b/tests/db/meta/test_model.py @@ -1,6 +1,8 @@ import sqlalchemy as sa + from django.apps import apps from django.core.exceptions import FieldDoesNotExist + from django_sorcery.db import meta # noqa from ...base import TestCase diff --git a/tests/db/meta/test_relations.py b/tests/db/meta/test_relations.py index 942edfa..ef319c1 100644 --- a/tests/db/meta/test_relations.py +++ b/tests/db/meta/test_relations.py @@ -1,5 +1,7 @@ import sqlalchemy as sa + from django.core.exceptions import ImproperlyConfigured + from django_sorcery import fields from django_sorcery.db import meta diff --git a/tests/db/test_fields.py b/tests/db/test_fields.py index b45064c..9e7fe98 100644 --- a/tests/db/test_fields.py +++ b/tests/db/test_fields.py @@ -1,9 +1,11 @@ import enum import sqlalchemy as sa + from django import forms as djangoforms from django.core import validators as django_validators from django.forms import fields as djangofields + from django_sorcery import fields as formfields from django_sorcery.db import fields, meta diff --git a/tests/db/test_middleware.py b/tests/db/test_middleware.py index 59da4bb..91bb2bd 100644 --- a/tests/db/test_middleware.py +++ b/tests/db/test_middleware.py @@ -1,6 +1,7 @@ import unittest import attr + from django_sorcery.db import SQLAlchemy, databases, middleware from ..base import mock diff --git a/tests/db/test_mixins.py b/tests/db/test_mixins.py index 83cf39b..d318643 100644 --- a/tests/db/test_mixins.py +++ b/tests/db/test_mixins.py @@ -1,15 +1,7 @@ from django.core.exceptions import ValidationError from ..base import TestCase -from ..testapp.models import ( - Address, - Business, - Owner, - Part, - Vehicle, - VehicleType, - db, -) +from ..testapp.models import Address, Business, Owner, Part, Vehicle, VehicleType, db class TestCleanMixin(TestCase): diff --git a/tests/db/test_models.py b/tests/db/test_models.py index 03e855b..2d1006d 100644 --- a/tests/db/test_models.py +++ b/tests/db/test_models.py @@ -2,6 +2,7 @@ from decimal import Decimal from django.core.exceptions import ValidationError + from django_sorcery.db import meta, models from django_sorcery.utils import make_args diff --git a/tests/db/test_profiler.py b/tests/db/test_profiler.py index d1a0652..2a6376c 100644 --- a/tests/db/test_profiler.py +++ b/tests/db/test_profiler.py @@ -1,9 +1,7 @@ from django.http import HttpResponse from django.test import RequestFactory, override_settings -from django_sorcery.db.profiler import ( - SQLAlchemyProfiler, - SQLAlchemyProfilingMiddleware, -) + +from django_sorcery.db.profiler import SQLAlchemyProfiler, SQLAlchemyProfilingMiddleware from ..base import TestCase from ..testapp.models import Business, Owner, db diff --git a/tests/db/test_query.py b/tests/db/test_query.py index 5a21c13..364f196 100644 --- a/tests/db/test_query.py +++ b/tests/db/test_query.py @@ -1,16 +1,9 @@ from django.conf import settings + from django_sorcery.db.query import QueryProperty from ..base import TestCase -from ..testapp.models import ( - CompositePkModel, - Owner, - Point, - Vehicle, - VehicleType, - Vertex, - db, -) +from ..testapp.models import CompositePkModel, Owner, Point, Vehicle, VehicleType, Vertex, db class TestQuery(TestCase): diff --git a/tests/db/test_sqlalchemy.py b/tests/db/test_sqlalchemy.py index df3414a..f0d9323 100644 --- a/tests/db/test_sqlalchemy.py +++ b/tests/db/test_sqlalchemy.py @@ -1,7 +1,9 @@ from contextlib import suppress import sqlalchemy as sa + from django.conf import settings + from django_sorcery.db.query import Operation from ..base import TestCase diff --git a/tests/db/test_transaction.py b/tests/db/test_transaction.py index 9ac0eeb..ba201c1 100644 --- a/tests/db/test_transaction.py +++ b/tests/db/test_transaction.py @@ -1,4 +1,5 @@ from django.core.exceptions import ValidationError + from django_sorcery.db.transaction import TransactionContext from ..base import TestCase diff --git a/tests/db/test_url.py b/tests/db/test_url.py index 30209f5..8c2d69c 100644 --- a/tests/db/test_url.py +++ b/tests/db/test_url.py @@ -1,6 +1,7 @@ import os from django.test import TestCase, override_settings + from django_sorcery.db.url import ( boolean, importable, diff --git a/tests/db/test_utils.py b/tests/db/test_utils.py index 7478021..96baa3b 100644 --- a/tests/db/test_utils.py +++ b/tests/db/test_utils.py @@ -1,7 +1,9 @@ import unittest import sqlalchemy as sa + from django.conf import settings + from django_sorcery.db import databases from django_sorcery.db.sqlalchemy import SQLAlchemy from django_sorcery.db.utils import dbdict, index_foreign_keys diff --git a/tests/formsets/test_base.py b/tests/formsets/test_base.py index 3208798..498d046 100644 --- a/tests/formsets/test_base.py +++ b/tests/formsets/test_base.py @@ -1,4 +1,5 @@ from django.core.exceptions import ImproperlyConfigured + from django_sorcery.forms import ALL_FIELDS from django_sorcery.formsets import modelformset_factory diff --git a/tests/management/commands/test_sorcery.py b/tests/management/commands/test_sorcery.py index 89bf627..4f8ce2d 100644 --- a/tests/management/commands/test_sorcery.py +++ b/tests/management/commands/test_sorcery.py @@ -1,4 +1,5 @@ from django.test import TestCase + from django_sorcery.management.commands.sorcery import Command from ...models_multidb import default_db, other_db diff --git a/tests/management/commands/test_sorcery_current.py b/tests/management/commands/test_sorcery_current.py index cc5b6f1..c1bb4a9 100644 --- a/tests/management/commands/test_sorcery_current.py +++ b/tests/management/commands/test_sorcery_current.py @@ -2,6 +2,7 @@ from django.conf import settings from django.test import TestCase + from django_sorcery.db import databases from django_sorcery.management.commands.sorcery_current import Command from django_sorcery.management.commands.sorcery_downgrade import Downgrade diff --git a/tests/management/commands/test_sorcery_downgrade.py b/tests/management/commands/test_sorcery_downgrade.py index 270dfd1..2699ddb 100644 --- a/tests/management/commands/test_sorcery_downgrade.py +++ b/tests/management/commands/test_sorcery_downgrade.py @@ -1,6 +1,7 @@ import six from django.test import TestCase + from django_sorcery.db import databases from django_sorcery.management.commands.sorcery_downgrade import Downgrade from django_sorcery.management.commands.sorcery_upgrade import Upgrade diff --git a/tests/management/commands/test_sorcery_heads.py b/tests/management/commands/test_sorcery_heads.py index 2ce4b5b..ca50a15 100644 --- a/tests/management/commands/test_sorcery_heads.py +++ b/tests/management/commands/test_sorcery_heads.py @@ -1,6 +1,7 @@ import six from django.test import TestCase + from django_sorcery.management.commands.sorcery_heads import Command from .base import MIGRATION_DIR, MigrationMixin diff --git a/tests/management/commands/test_sorcery_history.py b/tests/management/commands/test_sorcery_history.py index c8c8138..95a5864 100644 --- a/tests/management/commands/test_sorcery_history.py +++ b/tests/management/commands/test_sorcery_history.py @@ -1,6 +1,7 @@ import six from django.test import TestCase + from django_sorcery.management.commands.sorcery_history import Command from .base import MigrationMixin diff --git a/tests/management/commands/test_sorcery_revision.py b/tests/management/commands/test_sorcery_revision.py index 75fbfe1..5dd3042 100644 --- a/tests/management/commands/test_sorcery_revision.py +++ b/tests/management/commands/test_sorcery_revision.py @@ -3,6 +3,7 @@ import six from django.test import TestCase + from django_sorcery.db import databases from django_sorcery.management.commands.sorcery_downgrade import Downgrade from django_sorcery.management.commands.sorcery_revision import Command diff --git a/tests/management/commands/test_sorcery_stamp.py b/tests/management/commands/test_sorcery_stamp.py index d1c9033..8941580 100644 --- a/tests/management/commands/test_sorcery_stamp.py +++ b/tests/management/commands/test_sorcery_stamp.py @@ -1,6 +1,7 @@ import six from django.test import TestCase + from django_sorcery.db import databases from django_sorcery.management.commands.sorcery_downgrade import Downgrade from django_sorcery.management.commands.sorcery_stamp import Command diff --git a/tests/management/commands/test_sorcery_upgrade.py b/tests/management/commands/test_sorcery_upgrade.py index 8bc2af5..5d9cc7c 100644 --- a/tests/management/commands/test_sorcery_upgrade.py +++ b/tests/management/commands/test_sorcery_upgrade.py @@ -1,6 +1,7 @@ import six from django.test import TestCase + from django_sorcery.db import databases from django_sorcery.management.commands.sorcery_downgrade import Downgrade from django_sorcery.management.commands.sorcery_upgrade import Command diff --git a/tests/management/test_base.py b/tests/management/test_base.py index 730875f..315b1c8 100644 --- a/tests/management/test_base.py +++ b/tests/management/test_base.py @@ -1,6 +1,7 @@ from io import StringIO from django.core.management.base import BaseCommand + from django_sorcery.management import NamespacedCommand from ..base import TestCase diff --git a/tests/test_exceptions.py b/tests/test_exceptions.py index f89326e..08e6ad9 100644 --- a/tests/test_exceptions.py +++ b/tests/test_exceptions.py @@ -1,5 +1,6 @@ from django.core.exceptions import ValidationError from django.test import TestCase + from django_sorcery.exceptions import NestedValidationError diff --git a/tests/test_fields.py b/tests/test_fields.py index 6fc0e06..f4a66c5 100644 --- a/tests/test_fields.py +++ b/tests/test_fields.py @@ -1,11 +1,9 @@ import json from django.core.exceptions import ValidationError + from django_sorcery import fields -from django_sorcery.forms import ( - apply_limit_choices_to_form_field, - modelform_factory, -) +from django_sorcery.forms import apply_limit_choices_to_form_field, modelform_factory from .base import TestCase from .testapp.models import CompositePkModel, Owner, Vehicle, VehicleType, db diff --git a/tests/test_forms.py b/tests/test_forms.py index 9fc5eb8..022c805 100644 --- a/tests/test_forms.py +++ b/tests/test_forms.py @@ -1,6 +1,7 @@ from django import forms as djangoforms from django.core.exceptions import ImproperlyConfigured, ValidationError from django.forms import fields as djangofields + from django_sorcery import fields as sorceryfields, forms from .base import TestCase diff --git a/tests/test_pytest_plugin.py b/tests/test_pytest_plugin.py index 93fcdcc..99fed78 100644 --- a/tests/test_pytest_plugin.py +++ b/tests/test_pytest_plugin.py @@ -1,5 +1,6 @@ import pytest -from django_sorcery.pytest_plugin import sqlalchemy_profiler, transact # noqa + +from django_sorcery.pytest_plugin import transact # noqa from django_sorcery.testing import CommitException from .testapp.models import Business, Owner, db diff --git a/tests/test_routers.py b/tests/test_routers.py index 230d00f..57c2635 100644 --- a/tests/test_routers.py +++ b/tests/test_routers.py @@ -1,4 +1,5 @@ from django.core.exceptions import ImproperlyConfigured + from django_sorcery import viewsets from django_sorcery.routers import BaseRouter, Route, SimpleRouter, action diff --git a/tests/test_shortcuts.py b/tests/test_shortcuts.py index 18d3a8f..7ae38d3 100644 --- a/tests/test_shortcuts.py +++ b/tests/test_shortcuts.py @@ -1,5 +1,6 @@ from django.core.exceptions import ImproperlyConfigured from django.http import Http404 + from django_sorcery import shortcuts from .base import TestCase diff --git a/tests/test_utils.py b/tests/test_utils.py index 91f24a7..3c3f86c 100644 --- a/tests/test_utils.py +++ b/tests/test_utils.py @@ -1,4 +1,5 @@ from django.test import TestCase + from django_sorcery import utils diff --git a/tests/test_validators.py b/tests/test_validators.py index 80c04ff..4a6a54f 100644 --- a/tests/test_validators.py +++ b/tests/test_validators.py @@ -1,6 +1,7 @@ from collections import namedtuple from django.core.exceptions import ValidationError + from django_sorcery.exceptions import NestedValidationError from django_sorcery.validators import ( ValidateCantRemove, diff --git a/tests/testapp/models.py b/tests/testapp/models.py index 12b5c8e..7245492 100644 --- a/tests/testapp/models.py +++ b/tests/testapp/models.py @@ -2,13 +2,11 @@ from django.core.exceptions import ValidationError from django.core.validators import RegexValidator + from django_sorcery.db import databases from django_sorcery.db.models import autocoerce, autocoerce_properties from django_sorcery.db.query import Query -from django_sorcery.validators import ( - ValidateTogetherModelFields, - ValidateUnique, -) +from django_sorcery.validators import ValidateTogetherModelFields, ValidateUnique db = databases.get("test") diff --git a/tests/testapp/views.py b/tests/testapp/views.py index 4b11079..e55d59d 100644 --- a/tests/testapp/views.py +++ b/tests/testapp/views.py @@ -1,4 +1,5 @@ from django.urls import reverse_lazy + from django_sorcery import forms, views, viewsets from django_sorcery.routers import action diff --git a/tests/views/test_base.py b/tests/views/test_base.py index e5f52bf..0c84e39 100644 --- a/tests/views/test_base.py +++ b/tests/views/test_base.py @@ -1,6 +1,8 @@ import sqlalchemy as sa + from django.core.exceptions import ImproperlyConfigured from django.test import TestCase + from django_sorcery.views.base import SQLAlchemyMixin from ..testapp.models import ClassicModel, Owner, db diff --git a/tests/views/test_detail.py b/tests/views/test_detail.py index 94ee5d9..3e2603e 100644 --- a/tests/views/test_detail.py +++ b/tests/views/test_detail.py @@ -1,10 +1,8 @@ from django.core.exceptions import ImproperlyConfigured from django.urls import reverse from django.utils.html import escape -from django_sorcery.views.detail import ( - SingleObjectMixin, - SingleObjectTemplateResponseMixin, -) + +from django_sorcery.views.detail import SingleObjectMixin, SingleObjectTemplateResponseMixin from ..base import TestCase from ..testapp.models import Owner, db diff --git a/tests/views/test_edit.py b/tests/views/test_edit.py index 6b0bb98..9a20637 100644 --- a/tests/views/test_edit.py +++ b/tests/views/test_edit.py @@ -1,5 +1,6 @@ from django.core.exceptions import ImproperlyConfigured from django.urls import reverse + from django_sorcery import forms from django_sorcery.views import edit diff --git a/tests/views/test_list.py b/tests/views/test_list.py index d4ce0fd..c60a8c7 100644 --- a/tests/views/test_list.py +++ b/tests/views/test_list.py @@ -1,11 +1,10 @@ import sqlalchemy as sa + from django.core.exceptions import ImproperlyConfigured from django.urls import reverse from django.utils.html import escape -from django_sorcery.views.list import ( - MultipleObjectMixin, - MultipleObjectTemplateResponseMixin, -) + +from django_sorcery.views.list import MultipleObjectMixin, MultipleObjectTemplateResponseMixin from ..base import TestCase from ..testapp.models import Owner, db diff --git a/tests/viewsets/test_mixins.py b/tests/viewsets/test_mixins.py index b069727..213f6d2 100644 --- a/tests/viewsets/test_mixins.py +++ b/tests/viewsets/test_mixins.py @@ -1,6 +1,7 @@ from django.core.exceptions import ImproperlyConfigured from django.http import Http404 from django.urls import reverse + from django_sorcery import forms, viewsets from ..base import TestCase