mirror of
https://github.com/graphql-python/graphene.git
synced 2025-02-09 08:00:39 +03:00
Merge pull request #264 from sjhewitt/next-sqla-scalar-list
next: Convert sqlalchemy-utils ScalarListType
This commit is contained in:
commit
e24fb01e3c
|
@ -9,11 +9,14 @@ from graphene.types.json import JSONString
|
||||||
from .fields import SQLAlchemyConnectionField
|
from .fields import SQLAlchemyConnectionField
|
||||||
|
|
||||||
try:
|
try:
|
||||||
from sqlalchemy_utils.types.choice import ChoiceType
|
from sqlalchemy_utils import ChoiceType, ScalarListType
|
||||||
except ImportError:
|
except ImportError:
|
||||||
class ChoiceType(object):
|
class ChoiceType(object):
|
||||||
pass
|
pass
|
||||||
|
|
||||||
|
class ScalarListType(object):
|
||||||
|
pass
|
||||||
|
|
||||||
|
|
||||||
def convert_sqlalchemy_relationship(relationship, registry):
|
def convert_sqlalchemy_relationship(relationship, registry):
|
||||||
direction = relationship.direction
|
direction = relationship.direction
|
||||||
|
@ -85,6 +88,11 @@ def convert_column_to_enum(type, column, registry=None):
|
||||||
return Enum(name, type.choices, description=column.doc)
|
return Enum(name, type.choices, description=column.doc)
|
||||||
|
|
||||||
|
|
||||||
|
@convert_sqlalchemy_type.register(ScalarListType)
|
||||||
|
def convert_scalar_list_to_list(type, column, registry=None):
|
||||||
|
return List(String, description=column.doc)
|
||||||
|
|
||||||
|
|
||||||
@convert_sqlalchemy_type.register(postgresql.ARRAY)
|
@convert_sqlalchemy_type.register(postgresql.ARRAY)
|
||||||
def convert_postgres_array_to_list(type, column, registry=None):
|
def convert_postgres_array_to_list(type, column, registry=None):
|
||||||
graphene_type = convert_sqlalchemy_type(column.type.item_type, column)
|
graphene_type = convert_sqlalchemy_type(column.type.item_type, column)
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
from py.test import raises
|
from py.test import raises
|
||||||
from sqlalchemy import Column, Table, types
|
from sqlalchemy import Column, Table, types
|
||||||
from sqlalchemy.ext.declarative import declarative_base
|
from sqlalchemy.ext.declarative import declarative_base
|
||||||
from sqlalchemy_utils.types.choice import ChoiceType
|
from sqlalchemy_utils import ChoiceType, ScalarListType
|
||||||
from sqlalchemy.dialects import postgresql
|
from sqlalchemy.dialects import postgresql
|
||||||
|
|
||||||
import graphene
|
import graphene
|
||||||
|
@ -108,6 +108,10 @@ def test_should_choice_convert_enum():
|
||||||
assert graphene_type._meta.enum.__members__['en'].value == 'English'
|
assert graphene_type._meta.enum.__members__['en'].value == 'English'
|
||||||
|
|
||||||
|
|
||||||
|
def test_should_scalar_list_convert_list():
|
||||||
|
assert_column_conversion(ScalarListType(), graphene.List)
|
||||||
|
|
||||||
|
|
||||||
def test_should_manytomany_convert_connectionorlist():
|
def test_should_manytomany_convert_connectionorlist():
|
||||||
registry = Registry()
|
registry = Registry()
|
||||||
dynamic_field = convert_sqlalchemy_relationship(Reporter.pets.property, registry)
|
dynamic_field = convert_sqlalchemy_relationship(Reporter.pets.property, registry)
|
||||||
|
|
Loading…
Reference in New Issue
Block a user