|
7 | 7 | from pydantic import BaseModel |
8 | 8 | import pytest |
9 | 9 |
|
10 | | -from data_designer.config.utils.errors import InvalidEnumValueError |
| 10 | +from data_designer.config.utils.errors import ( |
| 11 | + InvalidDiscriminatorFieldError, |
| 12 | + InvalidEnumValueError, |
| 13 | + InvalidTypeUnionError, |
| 14 | +) |
11 | 15 | from data_designer.config.utils.type_helpers import ( |
12 | 16 | SAMPLER_PARAMS, |
13 | 17 | create_str_enum_from_discriminated_type_union, |
@@ -94,16 +98,19 @@ class StubModelD(BaseModel): |
94 | 98 | def test_create_str_enum_from_type_union_not_pydantic_model() -> None: |
95 | 99 | type_union = Union[StubModelA, NotAModel] |
96 | 100 |
|
97 | | - with pytest.raises(ValueError, match="is not a Pydantic model"): |
| 101 | + with pytest.raises(InvalidTypeUnionError, match="must be a subclass of pydantic.BaseModel"): |
98 | 102 | create_str_enum_from_discriminated_type_union("TestEnum", type_union, "column_type") |
99 | 103 |
|
100 | 104 |
|
101 | | -def test_create_str_enum_from_type_union_missing_discriminator_field() -> None: |
| 105 | +def test_create_str_enum_from_type_union_invalid_discriminator_field() -> None: |
102 | 106 | type_union = Union[StubModelA, StubModelWithoutDiscriminator] |
103 | 107 |
|
104 | | - with pytest.raises(ValueError, match="column_type is not a field of"): |
| 108 | + with pytest.raises(InvalidDiscriminatorFieldError, match="'column_type' is not a field of"): |
105 | 109 | create_str_enum_from_discriminated_type_union("TestEnum", type_union, "column_type") |
106 | 110 |
|
| 111 | + with pytest.raises(InvalidDiscriminatorFieldError, match="'name' must be a Literal type"): |
| 112 | + create_str_enum_from_discriminated_type_union("TestEnum", type_union, "name") |
| 113 | + |
107 | 114 |
|
108 | 115 | def test_create_str_enum_from_type_union_custom_discriminator_name() -> None: |
109 | 116 | class StubModelE(BaseModel): |
|
0 commit comments