Skip to content

Commit 65724f5

Browse files
author
desert
committed
Improve error message for unknown generics.
1 parent 9fc42d7 commit 65724f5

File tree

2 files changed

+16
-0
lines changed

2 files changed

+16
-0
lines changed

src/desert/_make.py

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -102,6 +102,11 @@ def class_schema(clazz: type, meta: Dict[str, Any] = {}) -> Type[marshmallow.Sch
102102
"""
103103

104104
fields: Union[Tuple[dataclasses.Field], Tuple[attr.Attribute]]
105+
if not isinstance(clazz, type):
106+
raise desert.exceptions.UnknownType(
107+
f"Desert failed to infer the field type for {clazz}.\n"
108+
+ "Explicitly pass a Marshmallow field type."
109+
)
105110
if dataclasses.is_dataclass(clazz):
106111
fields = dataclasses.fields(clazz)
107112
elif attr.has(clazz):

tests/test_make.py

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -355,3 +355,14 @@ class A:
355355

356356
with pytest.raises(desert.exceptions.UnknownType):
357357
desert.schema_class(A)
358+
359+
360+
def test_raise_unknown_generic(module):
361+
"""Raise UnknownType for unknown generics."""
362+
363+
@module.dataclass
364+
class A:
365+
x: t.Sequence[int]
366+
367+
with pytest.raises(desert.exceptions.UnknownType):
368+
desert.schema_class(A)

0 commit comments

Comments
 (0)