|
| 1 | +from enum import Enum |
| 2 | + |
1 | 3 | from sqlalchemy.testing.suite import FetchLimitOffsetTest as _FetchLimitOffsetTest
|
2 | 4 | from sqlalchemy.testing.suite import CompoundSelectTest as _CompoundSelectTest
|
3 | 5 | from sqlalchemy.testing.suite import CTETest as _CTETest
|
@@ -187,3 +189,41 @@ def test_expect_bytes(self):
|
187 | 189 | select(self.tables.data),
|
188 | 190 | [(b"test", b"test")],
|
189 | 191 | )
|
| 192 | + |
| 193 | + |
| 194 | +class SomeType(str, Enum): |
| 195 | + FIRST = "first value" |
| 196 | + SECOND = "second value" |
| 197 | + |
| 198 | + |
| 199 | +class IRISEnumTest(fixtures.TablesTest): |
| 200 | + __backend__ = True |
| 201 | + |
| 202 | + @classmethod |
| 203 | + def define_tables(cls, metadata): |
| 204 | + Table( |
| 205 | + "data", |
| 206 | + metadata, |
| 207 | + Column("val", String(50)), |
| 208 | + ) |
| 209 | + |
| 210 | + @classmethod |
| 211 | + def insert_data(cls, connection): |
| 212 | + connection.execute( |
| 213 | + cls.tables.data.insert(), |
| 214 | + [ |
| 215 | + {"val": SomeType.FIRST}, |
| 216 | + {"val": SomeType.SECOND}, |
| 217 | + {"val": None}, |
| 218 | + ], |
| 219 | + ) |
| 220 | + |
| 221 | + def _assert_result(self, select, result): |
| 222 | + with config.db.connect() as conn: |
| 223 | + eq_(conn.execute(select).fetchall(), result) |
| 224 | + |
| 225 | + def test_expect_bytes(self): |
| 226 | + self._assert_result( |
| 227 | + select(self.tables.data), |
| 228 | + [(SomeType.FIRST,), (SomeType.SECOND,), (None,)], |
| 229 | + ) |
0 commit comments