diff options
| author | Federico Caselli <cfederico87@gmail.com> | 2022-11-27 18:11:34 +0100 |
|---|---|---|
| committer | Mike Bayer <mike_mp@zzzcomputing.com> | 2022-11-29 17:49:27 -0500 |
| commit | 9c9fd31bcea3beaed6d14fde639e65f6b43bea09 (patch) | |
| tree | 2eef4b31c1f89f364c9bf15fdf153a4aad0f98c6 /lib/sqlalchemy/testing | |
| parent | 78833af4e650d37e6257cfbb541e4db56e2a285f (diff) | |
| download | sqlalchemy-9c9fd31bcea3beaed6d14fde639e65f6b43bea09.tar.gz | |
Improve support for enum in mapped classes
Add a new system by which TypeEngine objects have some
say in how the declarative type registry interprets them.
The Enum datatype is the primary target for this but it is
hoped the system may be useful for other types as well.
Fixes: #8859
Change-Id: I15ac3daee770408b5795746f47c1bbd931b7d26d
Diffstat (limited to 'lib/sqlalchemy/testing')
| -rw-r--r-- | lib/sqlalchemy/testing/config.py | 16 |
1 files changed, 13 insertions, 3 deletions
diff --git a/lib/sqlalchemy/testing/config.py b/lib/sqlalchemy/testing/config.py index 749d04248..a75c36776 100644 --- a/lib/sqlalchemy/testing/config.py +++ b/lib/sqlalchemy/testing/config.py @@ -180,9 +180,15 @@ def variation(argname, cases): """ + cases_plus_limitations = [ + entry + if (isinstance(entry, tuple) and len(entry) == 2) + else (entry, None) + for entry in cases + ] case_names = [ argname if c is True else "not_" + argname if c is False else c - for c in cases + for c, l in cases_plus_limitations ] typ = type( @@ -195,8 +201,12 @@ def variation(argname, cases): return combinations( *[ - (casename, typ(casename, argname, case_names)) - for casename in case_names + (casename, typ(casename, argname, case_names), limitation) + if limitation is not None + else (casename, typ(casename, argname, case_names)) + for casename, (case, limitation) in zip( + case_names, cases_plus_limitations + ) ], id_="ia", argnames=argname, |
