Skip to content

Commit 930f717

Browse files
committed
Adding tests for SimpleQuerySetConnectionResolver
1 parent e270792 commit 930f717

File tree

1 file changed

+53
-0
lines changed

1 file changed

+53
-0
lines changed
Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
from django.db.models import Manager
2+
from django.db.models.query import QuerySet
3+
4+
from graphene.contrib.django import DjangoNode
5+
from graphene.contrib.django.resolvers import SimpleQuerySetConnectionResolver
6+
from graphene.contrib.django.tests.models import Reporter
7+
8+
9+
class ReporterNode(DjangoNode):
10+
class Meta:
11+
model = Reporter
12+
13+
14+
def test_simple_resolve():
15+
reporter = Reporter(id=1, first_name='Cookie Monster')
16+
resolver = SimpleQuerySetConnectionResolver(ReporterNode, on='articles')
17+
resolved = resolver(inst=reporter, args={}, info=None)
18+
assert isinstance(resolved, QuerySet), 'Did not resolve to a queryset'
19+
20+
21+
def test_simple_get_manager_related():
22+
reporter = Reporter(id=1, first_name='Cookie Monster')
23+
resolver = SimpleQuerySetConnectionResolver(ReporterNode, on='articles')
24+
resolver(inst=reporter, args={}, info=None)
25+
assert resolver.get_manager().instance == reporter, 'Resolver did not return a RelatedManager'
26+
27+
28+
def test_simple_get_manager_all():
29+
reporter = Reporter(id=1, first_name='Cookie Monster')
30+
resolver = SimpleQuerySetConnectionResolver(ReporterNode)
31+
resolver(inst=reporter, args={}, info=None)
32+
assert type(resolver.get_manager()) == Manager, 'Resolver did not return a Manager'
33+
34+
35+
def test_simple_filter():
36+
reporter = Reporter(id=1, first_name='Cookie Monster')
37+
resolver = SimpleQuerySetConnectionResolver(ReporterNode)
38+
resolved = resolver(inst=reporter, args={
39+
'first_name': 'Elmo'
40+
}, info=None)
41+
assert '"first_name" = Elmo' in str(resolved.query)
42+
assert 'ORDER BY' not in str(resolved.query)
43+
44+
45+
def test_simple_order():
46+
reporter = Reporter(id=1, first_name='Cookie Monster')
47+
resolver = SimpleQuerySetConnectionResolver(ReporterNode)
48+
resolved = resolver(inst=reporter, args={
49+
'order': 'last_name'
50+
}, info=None)
51+
assert 'WHERE' not in str(resolved.query)
52+
assert 'ORDER BY' in str(resolved.query)
53+
assert '"last_name" ASC' in str(resolved.query)

0 commit comments

Comments
 (0)