Skip to content

Commit bdd5d83

Browse files
author
Maxim Romanyuk
committed
add tests
1 parent b492a37 commit bdd5d83

File tree

2 files changed

+28
-2
lines changed

2 files changed

+28
-2
lines changed

graphene_sqlalchemy/converter.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
from enum import EnumMeta
2+
13
from singledispatch import singledispatch
24
from sqlalchemy import types
35
from sqlalchemy.dialects import postgresql
@@ -7,7 +9,6 @@
79
String)
810
from graphene.types.json import JSONString
911

10-
from enum import EnumMeta
1112
from .enums import enum_for_sa_enum
1213
from .registry import get_global_registry
1314

@@ -160,7 +161,6 @@ def convert_enum_to_enum(type, column, registry=None):
160161
return lambda: enum_for_sa_enum(type, registry or get_global_registry())
161162

162163

163-
# TODO Make ChoiceType conversion consistent with other enums
164164
@convert_sqlalchemy_type.register(ChoiceType)
165165
def convert_choice_to_enum(type, column, registry=None):
166166
name = "{}_{}".format(column.table.name, column.name).upper()

graphene_sqlalchemy/tests/test_converter.py

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -145,6 +145,32 @@ def test_should_choice_convert_enum():
145145
assert graphene_type._meta.enum.__members__["en"].value == "English"
146146

147147

148+
def test_should_enum_choice_convert_enum():
149+
class TestEnum(enum.Enum):
150+
es = u"Spanish"
151+
en = u"English"
152+
153+
field = get_field(ChoiceType(TestEnum, impl=types.String()))
154+
graphene_type = field.type
155+
assert issubclass(graphene_type, graphene.Enum)
156+
assert graphene_type._meta.name == "MODEL_COLUMN"
157+
assert graphene_type._meta.enum.__members__["es"].value == "Spanish"
158+
assert graphene_type._meta.enum.__members__["en"].value == "English"
159+
160+
161+
def test_should_intenum_choice_convert_enum():
162+
class TestEnum(enum.IntEnum):
163+
one = 1
164+
two = 2
165+
166+
field = get_field(ChoiceType(TestEnum, impl=types.String()))
167+
graphene_type = field.type
168+
assert issubclass(graphene_type, graphene.Enum)
169+
assert graphene_type._meta.name == "MODEL_COLUMN"
170+
assert graphene_type._meta.enum.__members__["one"].value == 1
171+
assert graphene_type._meta.enum.__members__["two"].value == 2
172+
173+
148174
def test_should_columproperty_convert():
149175
field = get_field_from_column(column_property(
150176
select([func.sum(func.cast(id, types.Integer))]).where(id == 1)

0 commit comments

Comments
 (0)