Skip to content

Commit 8168aaa

Browse files
author
Sean Dougherty
committed
Added description to relationships
1 parent 6a96d37 commit 8168aaa

File tree

4 files changed

+14
-9
lines changed

4 files changed

+14
-9
lines changed

Diff for: graphene_sqlalchemy/converter.py

+4-3
Original file line numberDiff line numberDiff line change
@@ -25,17 +25,18 @@ def is_column_nullable(column):
2525
def convert_sqlalchemy_relationship(relationship, registry):
2626
direction = relationship.direction
2727
model = relationship.mapper.entity
28+
description = getattr(relationship, "doc", None)
2829

2930
def dynamic_type():
3031
_type = registry.get_type_for_model(model)
3132
if not _type:
3233
return None
3334
if direction == interfaces.MANYTOONE or not relationship.uselist:
34-
return Field(_type)
35+
return Field(_type, description=description)
3536
elif direction in (interfaces.ONETOMANY, interfaces.MANYTOMANY):
3637
if _type._meta.connection:
37-
return createConnectionField(_type._meta.connection)
38-
return Field(List(_type))
38+
return createConnectionField(_type._meta.connection, description=description)
39+
return Field(List(_type), description=description)
3940

4041
return Dynamic(dynamic_type)
4142

Diff for: graphene_sqlalchemy/fields.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -97,8 +97,8 @@ def __init__(self, type, *args, **kwargs):
9797
__connectionFactory = UnsortedSQLAlchemyConnectionField
9898

9999

100-
def createConnectionField(_type):
101-
return __connectionFactory(_type)
100+
def createConnectionField(_type, **kwargs):
101+
return __connectionFactory(_type, **kwargs)
102102

103103

104104
def registerConnectionFieldFactory(factoryMethod):

Diff for: graphene_sqlalchemy/tests/models.py

+4-4
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44

55
from sqlalchemy import Column, Date, Enum, ForeignKey, Integer, String, Table
66
from sqlalchemy.ext.declarative import declarative_base
7-
from sqlalchemy.orm import mapper, relationship
7+
from sqlalchemy.orm import backref, mapper, relationship
88

99

1010
class Hairkind(enum.Enum):
@@ -43,9 +43,9 @@ class Reporter(Base):
4343
first_name = Column(String(30))
4444
last_name = Column(String(30))
4545
email = Column(String())
46-
pets = relationship("Pet", secondary=association_table, backref="reporters")
47-
articles = relationship("Article", backref="reporter")
48-
favorite_article = relationship("Article", uselist=False)
46+
pets = relationship("Pet", secondary=association_table, backref="reporters", doc='Pets')
47+
articles = relationship("Article", backref=backref("reporter", doc='Reporter'), doc='Articles')
48+
favorite_article = relationship("Article", uselist=False, doc='Favorite Article')
4949

5050
# total = column_property(
5151
# select([

Diff for: graphene_sqlalchemy/tests/test_converter.py

+4
Original file line numberDiff line numberDiff line change
@@ -199,6 +199,7 @@ class Meta:
199199
assert isinstance(graphene_type, graphene.Field)
200200
assert isinstance(graphene_type.type, graphene.List)
201201
assert graphene_type.type.of_type == A
202+
assert graphene_type.description == "Pets"
202203

203204

204205
def test_should_manytomany_convert_connectionorlist_connection():
@@ -233,6 +234,7 @@ class Meta:
233234
graphene_type = dynamic_field.get_type()
234235
assert isinstance(graphene_type, graphene.Field)
235236
assert graphene_type.type == A
237+
assert graphene_type.description == "Reporter"
236238

237239

238240
def test_should_manytoone_convert_connectionorlist_connection():
@@ -248,6 +250,7 @@ class Meta:
248250
graphene_type = dynamic_field.get_type()
249251
assert isinstance(graphene_type, graphene.Field)
250252
assert graphene_type.type == A
253+
assert graphene_type.description == "Reporter"
251254

252255

253256
def test_should_onetoone_convert_field():
@@ -263,6 +266,7 @@ class Meta:
263266
graphene_type = dynamic_field.get_type()
264267
assert isinstance(graphene_type, graphene.Field)
265268
assert graphene_type.type == A
269+
assert graphene_type.description == "Favorite Article"
266270

267271

268272
def test_should_postgresql_uuid_convert():

0 commit comments

Comments
 (0)