|
1 | 1 | from datetime import datetime
|
| 2 | +from textwrap import dedent |
2 | 3 |
|
3 | 4 | import pytest
|
| 5 | +from django.db.models import TextField, Value |
| 6 | +from django.db.models.functions import Concat |
4 | 7 |
|
5 |
| -from graphene import Field, ObjectType, Schema, Argument, Float, Boolean, String |
| 8 | +from graphene import Argument, Boolean, Field, Float, ObjectType, Schema, String |
6 | 9 | from graphene.relay import Node
|
7 | 10 | from graphene_django import DjangoObjectType
|
8 | 11 | from graphene_django.forms import GlobalIDFormField, GlobalIDMultipleChoiceField
|
9 | 12 | from graphene_django.tests.models import Article, Pet, Reporter
|
10 | 13 | from graphene_django.utils import DJANGO_FILTER_INSTALLED
|
11 | 14 |
|
12 |
| -# for annotation test |
13 |
| -from django.db.models import TextField, Value |
14 |
| -from django.db.models.functions import Concat |
15 |
| - |
16 | 15 | pytestmark = []
|
17 | 16 |
|
18 | 17 | if DJANGO_FILTER_INSTALLED:
|
@@ -183,7 +182,7 @@ class context(object):
|
183 | 182 | }
|
184 | 183 | """
|
185 | 184 | schema = Schema(query=Query)
|
186 |
| - result = schema.execute(query, context_value=context()) |
| 185 | + result = schema.execute(query, context=context()) |
187 | 186 | assert not result.errors
|
188 | 187 |
|
189 | 188 | assert len(result.data["contextArticles"]["edges"]) == 1
|
@@ -462,15 +461,15 @@ class Meta:
|
462 | 461 | class Query(ObjectType):
|
463 | 462 | all_reporters = DjangoFilterConnectionField(ReporterFilterNode)
|
464 | 463 |
|
465 |
| - r1 = Reporter.objects.create( |
| 464 | + Reporter.objects.create( |
466 | 465 | first_name="A test user", last_name="Last Name", email="test1@test.com"
|
467 | 466 | )
|
468 |
| - r2 = Reporter.objects.create( |
| 467 | + Reporter.objects.create( |
469 | 468 | first_name="Other test user",
|
470 | 469 | last_name="Other Last Name",
|
471 | 470 | email="test2@test.com",
|
472 | 471 | )
|
473 |
| - r3 = Reporter.objects.create( |
| 472 | + Reporter.objects.create( |
474 | 473 | first_name="Random", last_name="RandomLast", email="random@test.com"
|
475 | 474 | )
|
476 | 475 |
|
@@ -638,7 +637,7 @@ def resolve_all_reporters(self, info, **args):
|
638 | 637 | Reporter.objects.create(
|
639 | 638 | first_name="Bob", last_name="Doe", email="bobdoe@example.com", a_choice=2
|
640 | 639 | )
|
641 |
| - r = Reporter.objects.create( |
| 640 | + Reporter.objects.create( |
642 | 641 | first_name="John", last_name="Doe", email="johndoe@example.com", a_choice=1
|
643 | 642 | )
|
644 | 643 |
|
@@ -684,7 +683,7 @@ def resolve_all_reporters(self, info, reverse_order=False, **args):
|
684 | 683 | return reporters
|
685 | 684 |
|
686 | 685 | Reporter.objects.create(first_name="b")
|
687 |
| - r = Reporter.objects.create(first_name="a") |
| 686 | + Reporter.objects.create(first_name="a") |
688 | 687 |
|
689 | 688 | schema = Schema(query=Query)
|
690 | 689 | query = """
|
@@ -767,3 +766,55 @@ def resolve_all_reporters(self, info, **args):
|
767 | 766 |
|
768 | 767 | assert not result.errors
|
769 | 768 | assert result.data == expected
|
| 769 | + |
| 770 | + |
| 771 | +def test_integer_field_filter_type(): |
| 772 | + class PetType(DjangoObjectType): |
| 773 | + class Meta: |
| 774 | + model = Pet |
| 775 | + interfaces = (Node,) |
| 776 | + filter_fields = {"age": ["exact"]} |
| 777 | + only_fields = ["age"] |
| 778 | + |
| 779 | + class Query(ObjectType): |
| 780 | + pets = DjangoFilterConnectionField(PetType) |
| 781 | + |
| 782 | + schema = Schema(query=Query) |
| 783 | + |
| 784 | + assert str(schema) == dedent( |
| 785 | + """\ |
| 786 | + schema { |
| 787 | + query: Query |
| 788 | + } |
| 789 | +
|
| 790 | + interface Node { |
| 791 | + id: ID! |
| 792 | + } |
| 793 | +
|
| 794 | + type PageInfo { |
| 795 | + hasNextPage: Boolean! |
| 796 | + hasPreviousPage: Boolean! |
| 797 | + startCursor: String |
| 798 | + endCursor: String |
| 799 | + } |
| 800 | +
|
| 801 | + type PetType implements Node { |
| 802 | + age: Int! |
| 803 | + id: ID! |
| 804 | + } |
| 805 | +
|
| 806 | + type PetTypeConnection { |
| 807 | + pageInfo: PageInfo! |
| 808 | + edges: [PetTypeEdge]! |
| 809 | + } |
| 810 | +
|
| 811 | + type PetTypeEdge { |
| 812 | + node: PetType |
| 813 | + cursor: String! |
| 814 | + } |
| 815 | +
|
| 816 | + type Query { |
| 817 | + pets(before: String, after: String, first: Int, last: Int, age: Int): PetTypeConnection |
| 818 | + } |
| 819 | + """ |
| 820 | + ) |
0 commit comments