| 3583 | class NullEvaluatingTest(fixtures.MappedTest, testing.AssertsExecutionResults): |
| 3584 | @classmethod |
| 3585 | def define_tables(cls, metadata): |
| 3586 | from sqlalchemy import TypeDecorator |
| 3587 | |
| 3588 | class EvalsNull(TypeDecorator): |
| 3589 | impl = String(50) |
| 3590 | cache_ok = True |
| 3591 | cache_ok = True |
| 3592 | |
| 3593 | should_evaluate_none = True |
| 3594 | |
| 3595 | def process_bind_param(self, value, dialect): |
| 3596 | if value is None: |
| 3597 | value = "nothing" |
| 3598 | return value |
| 3599 | |
| 3600 | Table( |
| 3601 | "test", |
| 3602 | metadata, |
| 3603 | Column( |
| 3604 | "id", Integer, primary_key=True, test_needs_autoincrement=True |
| 3605 | ), |
| 3606 | Column("evals_null_no_default", EvalsNull()), |
| 3607 | Column("evals_null_default", EvalsNull(), default="default_val"), |
| 3608 | Column("no_eval_null_no_default", String(50)), |
| 3609 | Column("no_eval_null_default", String(50), default="default_val"), |
| 3610 | Column( |
| 3611 | "builtin_evals_null_no_default", String(50).evaluates_none() |
| 3612 | ), |
| 3613 | Column( |
| 3614 | "builtin_evals_null_default", |
| 3615 | String(50).evaluates_none(), |
| 3616 | default="default_val", |
| 3617 | ), |
| 3618 | ) |
| 3619 | |
| 3620 | Table( |
| 3621 | "test_w_renames", |
| 3622 | metadata, |
| 3623 | Column( |
| 3624 | "id", Integer, primary_key=True, test_needs_autoincrement=True |
| 3625 | ), |
| 3626 | Column("evals_null_no_default", EvalsNull()), |
| 3627 | Column("evals_null_default", EvalsNull(), default="default_val"), |
| 3628 | Column("no_eval_null_no_default", String(50)), |
| 3629 | Column("no_eval_null_default", String(50), default="default_val"), |
| 3630 | Column( |
| 3631 | "builtin_evals_null_no_default", String(50).evaluates_none() |
| 3632 | ), |
| 3633 | Column( |
| 3634 | "builtin_evals_null_default", |
| 3635 | String(50).evaluates_none(), |
| 3636 | default="default_val", |
| 3637 | ), |
| 3638 | ) |
| 3639 | |
| 3640 | if testing.requires.json_type.enabled: |
| 3641 | Table( |
| 3642 | "test_has_json", |