diff --git a/.ruff.toml b/.ruff.toml index b58fa1e..1e6ba88 100644 --- a/.ruff.toml +++ b/.ruff.toml @@ -2,6 +2,7 @@ select = [ "E", # pycodestyle "W", # pycodestyle "F", # pyflake + "I", # isort "UP", # pyupgrade ] @@ -19,3 +20,9 @@ target-version = "py38" # Ignore unused imports (F401) in these files "__init__.py" = ["F401"] "graphene_django/compat.py" = ["F401"] + +[isort] +known-first-party = ["graphene", "graphene-django"] +known-local-folder = ["cookbook"] +force-wrap-aliases = true +combine-as-imports = true diff --git a/examples/cookbook-plain/cookbook/schema.py b/examples/cookbook-plain/cookbook/schema.py index bde9372..8c4e5e4 100644 --- a/examples/cookbook-plain/cookbook/schema.py +++ b/examples/cookbook-plain/cookbook/schema.py @@ -1,8 +1,8 @@ +import graphene +from graphene_django.debug import DjangoDebug + import cookbook.ingredients.schema import cookbook.recipes.schema -import graphene - -from graphene_django.debug import DjangoDebug class Query( diff --git a/examples/cookbook-plain/cookbook/urls.py b/examples/cookbook-plain/cookbook/urls.py index a64a875..a5ec5de 100644 --- a/examples/cookbook-plain/cookbook/urls.py +++ b/examples/cookbook-plain/cookbook/urls.py @@ -1,9 +1,8 @@ -from django.urls import path from django.contrib import admin +from django.urls import path from graphene_django.views import GraphQLView - urlpatterns = [ path("admin/", admin.site.urls), path("graphql/", GraphQLView.as_view(graphiql=True)), diff --git a/examples/cookbook/cookbook/ingredients/schema.py b/examples/cookbook/cookbook/ingredients/schema.py index 4ed9eff..941f379 100644 --- a/examples/cookbook/cookbook/ingredients/schema.py +++ b/examples/cookbook/cookbook/ingredients/schema.py @@ -1,8 +1,9 @@ -from cookbook.ingredients.models import Category, Ingredient from graphene import Node from graphene_django.filter import DjangoFilterConnectionField from graphene_django.types import DjangoObjectType +from cookbook.ingredients.models import Category, Ingredient + # Graphene will automatically map the Category model's fields onto the CategoryNode. # This is configured in the CategoryNode's Meta class (as you can see below) diff --git a/examples/cookbook/cookbook/recipes/schema.py b/examples/cookbook/cookbook/recipes/schema.py index ea5ed38..c0cb13a 100644 --- a/examples/cookbook/cookbook/recipes/schema.py +++ b/examples/cookbook/cookbook/recipes/schema.py @@ -1,8 +1,9 @@ -from cookbook.recipes.models import Recipe, RecipeIngredient from graphene import Node from graphene_django.filter import DjangoFilterConnectionField from graphene_django.types import DjangoObjectType +from cookbook.recipes.models import Recipe, RecipeIngredient + class RecipeNode(DjangoObjectType): class Meta: diff --git a/examples/cookbook/cookbook/schema.py b/examples/cookbook/cookbook/schema.py index bde9372..8c4e5e4 100644 --- a/examples/cookbook/cookbook/schema.py +++ b/examples/cookbook/cookbook/schema.py @@ -1,8 +1,8 @@ +import graphene +from graphene_django.debug import DjangoDebug + import cookbook.ingredients.schema import cookbook.recipes.schema -import graphene - -from graphene_django.debug import DjangoDebug class Query( diff --git a/examples/cookbook/cookbook/urls.py b/examples/cookbook/cookbook/urls.py index 6f8a302..e72b383 100644 --- a/examples/cookbook/cookbook/urls.py +++ b/examples/cookbook/cookbook/urls.py @@ -3,7 +3,6 @@ from django.contrib import admin from graphene_django.views import GraphQLView - urlpatterns = [ url(r"^admin/", admin.site.urls), url(r"^graphql$", GraphQLView.as_view(graphiql=True)), diff --git a/examples/django_test_settings.py b/examples/django_test_settings.py index 7b98861..dcb1f6c 100644 --- a/examples/django_test_settings.py +++ b/examples/django_test_settings.py @@ -1,5 +1,5 @@ -import sys import os +import sys ROOT_PATH = os.path.dirname(os.path.abspath(__file__)) sys.path.insert(0, ROOT_PATH + "/examples/") diff --git a/examples/starwars/schema.py b/examples/starwars/schema.py index 4bc26e9..07bf9d2 100644 --- a/examples/starwars/schema.py +++ b/examples/starwars/schema.py @@ -3,9 +3,11 @@ from graphene import Schema, relay, resolve_only_args from graphene_django import DjangoConnectionField, DjangoObjectType from .data import create_ship, get_empire, get_faction, get_rebels, get_ship, get_ships -from .models import Character as CharacterModel -from .models import Faction as FactionModel -from .models import Ship as ShipModel +from .models import ( + Character as CharacterModel, + Faction as FactionModel, + Ship as ShipModel, +) class Ship(DjangoObjectType): diff --git a/graphene_django/compat.py b/graphene_django/compat.py index 4b48f03..fde632a 100644 --- a/graphene_django/compat.py +++ b/graphene_django/compat.py @@ -13,9 +13,9 @@ try: # Postgres fields are only available in Django with psycopg2 installed # and we cannot have psycopg2 on PyPy from django.contrib.postgres.fields import ( - IntegerRangeField, ArrayField, HStoreField, + IntegerRangeField, RangeField, ) except ImportError: diff --git a/graphene_django/converter.py b/graphene_django/converter.py index eda3a02..2a46dff 100644 --- a/graphene_django/converter.py +++ b/graphene_django/converter.py @@ -6,6 +6,7 @@ from django.db import models from django.utils.encoding import force_str from django.utils.functional import Promise from django.utils.module_loading import import_string +from graphql import GraphQLError from graphene import ( ID, @@ -13,6 +14,7 @@ from graphene import ( Boolean, Date, DateTime, + Decimal, Dynamic, Enum, Field, @@ -22,13 +24,11 @@ from graphene import ( NonNull, String, Time, - Decimal, ) from graphene.types.json import JSONString -from graphene.types.scalars import BigInt from graphene.types.resolver import get_default_resolver +from graphene.types.scalars import BigInt from graphene.utils.str_converters import to_camel_case -from graphql import GraphQLError try: from graphql import assert_name @@ -38,7 +38,7 @@ except ImportError: from graphql.pyutils import register_description from .compat import ArrayField, HStoreField, RangeField -from .fields import DjangoListField, DjangoConnectionField +from .fields import DjangoConnectionField, DjangoListField from .settings import graphene_settings from .utils.str_converters import to_const @@ -259,6 +259,7 @@ def convert_time_to_string(field, registry=None): @convert_django_field.register(models.OneToOneRel) def convert_onetoone_field_to_djangomodel(field, registry=None): from graphene.utils.str_converters import to_snake_case + from .types import DjangoObjectType model = field.related_model @@ -362,6 +363,7 @@ def convert_field_to_list_or_connection(field, registry=None): @convert_django_field.register(models.ForeignKey) def convert_field_to_djangomodel(field, registry=None): from graphene.utils.str_converters import to_snake_case + from .types import DjangoObjectType model = field.related_model diff --git a/graphene_django/debug/middleware.py b/graphene_django/debug/middleware.py index 8c7df6c..de0d72d 100644 --- a/graphene_django/debug/middleware.py +++ b/graphene_django/debug/middleware.py @@ -1,8 +1,7 @@ from django.db import connections - -from .sql.tracking import unwrap_cursor, wrap_cursor from .exception.formating import wrap_exception +from .sql.tracking import unwrap_cursor, wrap_cursor from .types import DjangoDebug diff --git a/graphene_django/debug/tests/test_query.py b/graphene_django/debug/tests/test_query.py index 1ea86b1..1f5e584 100644 --- a/graphene_django/debug/tests/test_query.py +++ b/graphene_django/debug/tests/test_query.py @@ -1,5 +1,6 @@ -import graphene import pytest + +import graphene from graphene.relay import Node from graphene_django import DjangoConnectionField, DjangoObjectType diff --git a/graphene_django/debug/types.py b/graphene_django/debug/types.py index a523b4f..4b0f9d1 100644 --- a/graphene_django/debug/types.py +++ b/graphene_django/debug/types.py @@ -1,7 +1,7 @@ from graphene import List, ObjectType -from .sql.types import DjangoDebugSQL from .exception.types import DjangoDebugException +from .sql.types import DjangoDebugSQL class DjangoDebug(ObjectType): diff --git a/graphene_django/fields.py b/graphene_django/fields.py index 0fe123d..3537da3 100644 --- a/graphene_django/fields.py +++ b/graphene_django/fields.py @@ -1,14 +1,12 @@ from functools import partial from django.db.models.query import QuerySet - from graphql_relay import ( connection_from_array_slice, cursor_to_offset, get_offset_with_default, offset_to_cursor, ) - from promise import Promise from graphene import Int, NonNull diff --git a/graphene_django/filter/__init__.py b/graphene_django/filter/__init__.py index f02fc6b..e4dbc06 100644 --- a/graphene_django/filter/__init__.py +++ b/graphene_django/filter/__init__.py @@ -1,4 +1,5 @@ import warnings + from ..utils import DJANGO_FILTER_INSTALLED if not DJANGO_FILTER_INSTALLED: diff --git a/graphene_django/filter/fields.py b/graphene_django/filter/fields.py index cdb8f85..ccf45dd 100644 --- a/graphene_django/filter/fields.py +++ b/graphene_django/filter/fields.py @@ -3,8 +3,8 @@ from functools import partial from django.core.exceptions import ValidationError -from graphene.types.enum import EnumType from graphene.types.argument import to_arguments +from graphene.types.enum import EnumType from graphene.utils.str_converters import to_snake_case from ..fields import DjangoConnectionField diff --git a/graphene_django/filter/filters/__init__.py b/graphene_django/filter/filters/__init__.py index fcf75af..a81a96c 100644 --- a/graphene_django/filter/filters/__init__.py +++ b/graphene_django/filter/filters/__init__.py @@ -1,4 +1,5 @@ import warnings + from ...utils import DJANGO_FILTER_INSTALLED if not DJANGO_FILTER_INSTALLED: diff --git a/graphene_django/filter/filters/global_id_filter.py b/graphene_django/filter/filters/global_id_filter.py index 37877d5..e0de1e3 100644 --- a/graphene_django/filter/filters/global_id_filter.py +++ b/graphene_django/filter/filters/global_id_filter.py @@ -1,5 +1,4 @@ from django_filters import Filter, MultipleChoiceFilter - from graphql_relay.node.node import from_global_id from ...forms import GlobalIDFormField, GlobalIDMultipleChoiceField diff --git a/graphene_django/filter/filterset.py b/graphene_django/filter/filterset.py index fa91477..7e0d0c5 100644 --- a/graphene_django/filter/filterset.py +++ b/graphene_django/filter/filterset.py @@ -1,12 +1,14 @@ import itertools from django.db import models -from django_filters.filterset import BaseFilterSet, FilterSet -from django_filters.filterset import FILTER_FOR_DBFIELD_DEFAULTS +from django_filters.filterset import ( + FILTER_FOR_DBFIELD_DEFAULTS, + BaseFilterSet, + FilterSet, +) from .filters import GlobalIDFilter, GlobalIDMultipleChoiceFilter - GRAPHENE_FILTER_SET_OVERRIDES = { models.AutoField: {"filter_class": GlobalIDFilter}, models.OneToOneField: {"filter_class": GlobalIDFilter}, diff --git a/graphene_django/filter/tests/conftest.py b/graphene_django/filter/tests/conftest.py index 2669c3d..1556f54 100644 --- a/graphene_django/filter/tests/conftest.py +++ b/graphene_django/filter/tests/conftest.py @@ -1,14 +1,15 @@ from unittest.mock import MagicMock -import pytest +import pytest from django.db import models from django.db.models.query import QuerySet from django_filters import FilterSet + import graphene from graphene.relay import Node from graphene_django import DjangoObjectType -from graphene_django.utils import DJANGO_FILTER_INSTALLED from graphene_django.filter import ArrayFilter +from graphene_django.utils import DJANGO_FILTER_INSTALLED from ...compat import ArrayField diff --git a/graphene_django/filter/tests/test_enum_filtering.py b/graphene_django/filter/tests/test_enum_filtering.py index a284d08..32238e5 100644 --- a/graphene_django/filter/tests/test_enum_filtering.py +++ b/graphene_django/filter/tests/test_enum_filtering.py @@ -2,8 +2,7 @@ import pytest import graphene from graphene.relay import Node - -from graphene_django import DjangoObjectType, DjangoConnectionField +from graphene_django import DjangoConnectionField, DjangoObjectType from graphene_django.tests.models import Article, Reporter from graphene_django.utils import DJANGO_FILTER_INSTALLED diff --git a/graphene_django/filter/tests/test_fields.py b/graphene_django/filter/tests/test_fields.py index 7c0fd3b..df3b97a 100644 --- a/graphene_django/filter/tests/test_fields.py +++ b/graphene_django/filter/tests/test_fields.py @@ -19,8 +19,8 @@ if DJANGO_FILTER_INSTALLED: from django_filters import FilterSet, NumberFilter, OrderingFilter from graphene_django.filter import ( - GlobalIDFilter, DjangoFilterConnectionField, + GlobalIDFilter, GlobalIDMultipleChoiceFilter, ) from graphene_django.filter.tests.filters import ( diff --git a/graphene_django/filter/tests/test_in_filter.py b/graphene_django/filter/tests/test_in_filter.py index a64f736..b91475d 100644 --- a/graphene_django/filter/tests/test_in_filter.py +++ b/graphene_django/filter/tests/test_in_filter.py @@ -1,14 +1,16 @@ from datetime import datetime import pytest +from django_filters import ( + FilterSet, + rest_framework as filters, +) -from django_filters import FilterSet -from django_filters import rest_framework as filters from graphene import ObjectType, Schema from graphene.relay import Node from graphene_django import DjangoObjectType -from graphene_django.tests.models import Pet, Person, Reporter, Article, Film from graphene_django.filter.tests.filters import ArticleFilter +from graphene_django.tests.models import Article, Film, Person, Pet, Reporter from graphene_django.utils import DJANGO_FILTER_INSTALLED pytestmark = [] diff --git a/graphene_django/filter/tests/test_range_filter.py b/graphene_django/filter/tests/test_range_filter.py index 6c770f1..e08660c 100644 --- a/graphene_django/filter/tests/test_range_filter.py +++ b/graphene_django/filter/tests/test_range_filter.py @@ -1,4 +1,5 @@ import json + import pytest from graphene import ObjectType, Schema diff --git a/graphene_django/filter/tests/test_typed_filter.py b/graphene_django/filter/tests/test_typed_filter.py index f22138f..084affa 100644 --- a/graphene_django/filter/tests/test_typed_filter.py +++ b/graphene_django/filter/tests/test_typed_filter.py @@ -1,10 +1,8 @@ import pytest - from django_filters import FilterSet import graphene from graphene.relay import Node - from graphene_django import DjangoObjectType from graphene_django.tests.models import Article, Reporter from graphene_django.utils import DJANGO_FILTER_INSTALLED @@ -14,8 +12,8 @@ pytestmark = [] if DJANGO_FILTER_INSTALLED: from graphene_django.filter import ( DjangoFilterConnectionField, - TypedFilter, ListFilter, + TypedFilter, ) else: pytestmark.append( diff --git a/graphene_django/filter/utils.py b/graphene_django/filter/utils.py index b48d317..079e822 100644 --- a/graphene_django/filter/utils.py +++ b/graphene_django/filter/utils.py @@ -1,9 +1,11 @@ -import graphene from django import forms from django_filters.utils import get_model_field + +import graphene + +from ..forms import GlobalIDFormField, GlobalIDMultipleChoiceField from .filters import ListFilter, RangeFilter, TypedFilter from .filterset import custom_filterset_factory, setup_filterset -from ..forms import GlobalIDFormField, GlobalIDMultipleChoiceField def get_field_type(registry, model, field_name): diff --git a/graphene_django/forms/converter.py b/graphene_django/forms/converter.py index 449ab2e..3691e9a 100644 --- a/graphene_django/forms/converter.py +++ b/graphene_django/forms/converter.py @@ -5,15 +5,15 @@ from django.core.exceptions import ImproperlyConfigured from graphene import ( ID, + UUID, Boolean, + Date, + DateTime, Decimal, Float, Int, List, String, - UUID, - Date, - DateTime, Time, ) diff --git a/graphene_django/forms/forms.py b/graphene_django/forms/forms.py index 4b81859..f6ed031 100644 --- a/graphene_django/forms/forms.py +++ b/graphene_django/forms/forms.py @@ -3,7 +3,6 @@ import binascii from django.core.exceptions import ValidationError from django.forms import CharField, Field, MultipleChoiceField from django.utils.translation import gettext_lazy as _ - from graphql_relay import from_global_id diff --git a/graphene_django/forms/tests/test_converter.py b/graphene_django/forms/tests/test_converter.py index f094f85..7e2a6d3 100644 --- a/graphene_django/forms/tests/test_converter.py +++ b/graphene_django/forms/tests/test_converter.py @@ -2,17 +2,17 @@ from django import forms from pytest import raises from graphene import ( - String, - Int, - Boolean, - Decimal, - Float, ID, UUID, + Boolean, + Date, + DateTime, + Decimal, + Float, + Int, List, NonNull, - DateTime, - Date, + String, Time, ) diff --git a/graphene_django/forms/tests/test_djangoinputobject.py b/graphene_django/forms/tests/test_djangoinputobject.py index c54bbf6..20b816e 100644 --- a/graphene_django/forms/tests/test_djangoinputobject.py +++ b/graphene_django/forms/tests/test_djangoinputobject.py @@ -1,11 +1,11 @@ -import graphene - from django import forms from pytest import raises +import graphene from graphene_django import DjangoObjectType + +from ...tests.models import CHOICES, Film, Reporter from ..types import DjangoFormInputObjectType -from ...tests.models import Reporter, Film, CHOICES # Reporter a_choice CHOICES = ((1, "this"), (2, _("that"))) THIS = CHOICES[0][0] diff --git a/graphene_django/forms/types.py b/graphene_django/forms/types.py index 132095b..b370afd 100644 --- a/graphene_django/forms/types.py +++ b/graphene_django/forms/types.py @@ -1,12 +1,11 @@ import graphene - from graphene import ID from graphene.types.inputobjecttype import InputObjectType from graphene.utils.str_converters import to_camel_case -from .mutation import fields_for_form -from ..types import ErrorType # noqa Import ErrorType for backwards compatability from ..converter import BlankValueField +from ..types import ErrorType # noqa Import ErrorType for backwards compatability +from .mutation import fields_for_form class DjangoFormInputObjectType(InputObjectType): diff --git a/graphene_django/management/commands/graphql_schema.py b/graphene_django/management/commands/graphql_schema.py index 42c41c1..16b49d2 100644 --- a/graphene_django/management/commands/graphql_schema.py +++ b/graphene_django/management/commands/graphql_schema.py @@ -1,12 +1,12 @@ -import os +import functools import importlib import json -import functools +import os from django.core.management.base import BaseCommand, CommandError from django.utils import autoreload - from graphql import print_schema + from graphene_django.settings import graphene_settings diff --git a/graphene_django/rest_framework/mutation.py b/graphene_django/rest_framework/mutation.py index 837db1e..9423d4f 100644 --- a/graphene_django/rest_framework/mutation.py +++ b/graphene_django/rest_framework/mutation.py @@ -1,6 +1,5 @@ -from enum import Enum - from collections import OrderedDict +from enum import Enum from django.shortcuts import get_object_or_404 from rest_framework import serializers diff --git a/graphene_django/rest_framework/serializer_converter.py b/graphene_django/rest_framework/serializer_converter.py index a680de4..f99dc44 100644 --- a/graphene_django/rest_framework/serializer_converter.py +++ b/graphene_django/rest_framework/serializer_converter.py @@ -5,8 +5,8 @@ from rest_framework import serializers import graphene -from ..registry import get_global_registry from ..converter import convert_choices_to_named_enum_with_descriptions +from ..registry import get_global_registry from .types import DictType diff --git a/graphene_django/rest_framework/tests/test_field_converter.py b/graphene_django/rest_framework/tests/test_field_converter.py index 92ddb9e..b0d7a6d 100644 --- a/graphene_django/rest_framework/tests/test_field_converter.py +++ b/graphene_django/rest_framework/tests/test_field_converter.py @@ -1,10 +1,11 @@ import copy -import graphene from django.db import models from pytest import raises from rest_framework import serializers +import graphene + from ..serializer_converter import convert_serializer_field from ..types import DictType diff --git a/graphene_django/rest_framework/tests/test_mutation.py b/graphene_django/rest_framework/tests/test_mutation.py index fc44e19..bfe53cc 100644 --- a/graphene_django/rest_framework/tests/test_mutation.py +++ b/graphene_django/rest_framework/tests/test_mutation.py @@ -9,9 +9,9 @@ from graphene.types.inputobjecttype import InputObjectType from ...types import DjangoObjectType from ..models import ( MyFakeModel, + MyFakeModelWithChoiceField, MyFakeModelWithDate, MyFakeModelWithPassword, - MyFakeModelWithChoiceField, ) from ..mutation import SerializerMutation diff --git a/graphene_django/settings.py b/graphene_django/settings.py index 9c7dc38..d0ef16c 100644 --- a/graphene_django/settings.py +++ b/graphene_django/settings.py @@ -12,11 +12,10 @@ Graphene settings, checking for user settings first, then falling back to the defaults. """ -from django.conf import settings -from django.test.signals import setting_changed - import importlib # Available in Python 3.1+ +from django.conf import settings +from django.test.signals import setting_changed # Copied shamelessly from Django REST Framework diff --git a/graphene_django/tests/issues/test_520.py b/graphene_django/tests/issues/test_520.py index 2aed351..700ae6f 100644 --- a/graphene_django/tests/issues/test_520.py +++ b/graphene_django/tests/issues/test_520.py @@ -2,14 +2,13 @@ from django import forms +from rest_framework import serializers import graphene -from rest_framework import serializers - +from ...forms.mutation import DjangoFormMutation from ...rest_framework.models import MyFakeModel from ...rest_framework.mutation import SerializerMutation -from ...forms.mutation import DjangoFormMutation class MyModelSerializer(serializers.ModelSerializer): diff --git a/graphene_django/tests/mutations.py b/graphene_django/tests/mutations.py index 3aa8bfc..68247a2 100644 --- a/graphene_django/tests/mutations.py +++ b/graphene_django/tests/mutations.py @@ -1,5 +1,4 @@ from graphene import Field - from graphene_django.forms.mutation import DjangoFormMutation, DjangoModelFormMutation from .forms import PetForm diff --git a/graphene_django/tests/test_command.py b/graphene_django/tests/test_command.py index f7325d5..d209e03 100644 --- a/graphene_django/tests/test_command.py +++ b/graphene_django/tests/test_command.py @@ -1,8 +1,8 @@ +from io import StringIO from textwrap import dedent +from unittest.mock import mock_open, patch from django.core import management -from io import StringIO -from unittest.mock import mock_open, patch from graphene import ObjectType, Schema, String diff --git a/graphene_django/tests/test_fields.py b/graphene_django/tests/test_fields.py index 33b565a..d1c119c 100644 --- a/graphene_django/tests/test_fields.py +++ b/graphene_django/tests/test_fields.py @@ -1,8 +1,8 @@ import datetime import re -from django.db.models import Count, Prefetch import pytest +from django.db.models import Count, Prefetch from graphene import List, NonNull, ObjectType, Schema, String diff --git a/graphene_django/tests/test_forms.py b/graphene_django/tests/test_forms.py index a42fcee..3957f01 100644 --- a/graphene_django/tests/test_forms.py +++ b/graphene_django/tests/test_forms.py @@ -3,7 +3,6 @@ from pytest import raises from ..forms import GlobalIDFormField, GlobalIDMultipleChoiceField - # 'TXlUeXBlOmFiYw==' -> 'MyType', 'abc' diff --git a/graphene_django/tests/test_get_queryset.py b/graphene_django/tests/test_get_queryset.py index cd1121f..d5b1d93 100644 --- a/graphene_django/tests/test_get_queryset.py +++ b/graphene_django/tests/test_get_queryset.py @@ -1,13 +1,11 @@ import pytest +from graphql_relay import to_global_id import graphene from graphene.relay import Node -from graphql_relay import to_global_id - from ..types import DjangoObjectType - -from .models import Article, Reporter, FilmDetails, Film +from .models import Article, Film, FilmDetails, Reporter class TestShouldCallGetQuerySetOnForeignKey: diff --git a/graphene_django/tests/test_query.py b/graphene_django/tests/test_query.py index 4a75a88..00a8858 100644 --- a/graphene_django/tests/test_query.py +++ b/graphene_django/tests/test_query.py @@ -1,5 +1,5 @@ -import datetime import base64 +import datetime import pytest from django.db import models @@ -16,6 +16,7 @@ from ..fields import DjangoConnectionField from ..types import DjangoObjectType from ..utils import DJANGO_FILTER_INSTALLED from .models import ( + APNewsReporter, Article, CNNReporter, Film, @@ -23,7 +24,6 @@ from .models import ( Person, Pet, Reporter, - APNewsReporter, ) @@ -126,9 +126,9 @@ def test_should_query_well(): @pytest.mark.skipif(IntegerRangeField is MissingType, reason="RangeField should exist") def test_should_query_postgres_fields(): from django.contrib.postgres.fields import ( - IntegerRangeField, ArrayField, HStoreField, + IntegerRangeField, ) class Event(models.Model): @@ -355,7 +355,7 @@ def test_should_query_connectionfields(): def test_should_keep_annotations(): - from django.db.models import Count, Avg + from django.db.models import Avg, Count class ReporterType(DjangoObjectType): class Meta: diff --git a/graphene_django/tests/test_types.py b/graphene_django/tests/test_types.py index fd85ef1..34828db 100644 --- a/graphene_django/tests/test_types.py +++ b/graphene_django/tests/test_types.py @@ -1,9 +1,9 @@ from collections import OrderedDict, defaultdict from textwrap import dedent +from unittest.mock import patch import pytest from django.db import models -from unittest.mock import patch from graphene import Connection, Field, Interface, ObjectType, Schema, String from graphene.relay import Node @@ -11,8 +11,10 @@ from graphene.relay import Node from .. import registry from ..filter import DjangoFilterConnectionField from ..types import DjangoObjectType, DjangoObjectTypeOptions -from .models import Article as ArticleModel -from .models import Reporter as ReporterModel +from .models import ( + Article as ArticleModel, + Reporter as ReporterModel, +) class Reporter(DjangoObjectType): diff --git a/graphene_django/tests/test_utils.py b/graphene_django/tests/test_utils.py index 4e6861e..3fa8ba4 100644 --- a/graphene_django/tests/test_utils.py +++ b/graphene_django/tests/test_utils.py @@ -1,12 +1,12 @@ import json +from unittest.mock import patch import pytest from django.utils.translation import gettext_lazy -from unittest.mock import patch -from ..utils import camelize, get_model_fields, get_reverse_fields, GraphQLTestCase -from .models import Film, Reporter, CNNReporter, APNewsReporter +from ..utils import GraphQLTestCase, camelize, get_model_fields, get_reverse_fields from ..utils.testing import graphql_query +from .models import APNewsReporter, CNNReporter, Film, Reporter def test_get_model_fields_no_duplication(): diff --git a/graphene_django/tests/test_views.py b/graphene_django/tests/test_views.py index dcbd739..e72f293 100644 --- a/graphene_django/tests/test_views.py +++ b/graphene_django/tests/test_views.py @@ -1,12 +1,9 @@ import json - -import pytest - from unittest.mock import patch +import pytest from django.db import connection - from .models import Pet try: diff --git a/graphene_django/utils/__init__.py b/graphene_django/utils/__init__.py index e4780e6..a64ee36 100644 --- a/graphene_django/utils/__init__.py +++ b/graphene_django/utils/__init__.py @@ -1,12 +1,12 @@ from .testing import GraphQLTestCase from .utils import ( DJANGO_FILTER_INSTALLED, + bypass_get_queryset, camelize, get_model_fields, get_reverse_fields, is_valid_django_model, maybe_queryset, - bypass_get_queryset, ) __all__ = [ diff --git a/graphene_django/utils/str_converters.py b/graphene_django/utils/str_converters.py index 77a0f37..03ad64d 100644 --- a/graphene_django/utils/str_converters.py +++ b/graphene_django/utils/str_converters.py @@ -1,4 +1,5 @@ import re + from text_unidecode import unidecode diff --git a/graphene_django/utils/tests/test_testing.py b/graphene_django/utils/tests/test_testing.py index de56158..fe38530 100644 --- a/graphene_django/utils/tests/test_testing.py +++ b/graphene_django/utils/tests/test_testing.py @@ -1,10 +1,10 @@ import pytest - -from .. import GraphQLTestCase -from ...tests.test_types import with_local_registry -from ...settings import graphene_settings from django.test import Client +from ...settings import graphene_settings +from ...tests.test_types import with_local_registry +from .. import GraphQLTestCase + @with_local_registry def test_graphql_test_case_deprecated_client_getter(): diff --git a/graphene_django/views.py b/graphene_django/views.py index 3fb87d4..96c0b0d 100644 --- a/graphene_django/views.py +++ b/graphene_django/views.py @@ -12,10 +12,9 @@ from django.views.generic import View from graphql import OperationType, get_operation_ast, parse from graphql.error import GraphQLError from graphql.execution import ExecutionResult - -from graphene import Schema from graphql.execution.middleware import MiddlewareManager +from graphene import Schema from graphene_django.constants import MUTATION_ERRORS_FLAG from graphene_django.utils.utils import set_rollback