MCPcopy
hub / github.com/sqlalchemy/sqlalchemy / test_hybrid_w_case_ac

Method test_hybrid_w_case_ac

test/orm/test_cache_key.py:787–831  ·  view source on GitHub ↗

test #9728

(self, decl_base, exprtype)

Source from the content-addressed store, hash-verified

785 "exprtype", ["plain_column", "self_standing_case", "case_w_columns"]
786 )
787 def test_hybrid_w_case_ac(self, decl_base, exprtype):
788 """test #9728"""
789
790 class Employees(decl_base):
791 __tablename__ = "employees"
792 id = Column(String(128), primary_key=True)
793 first_name = Column(String(length=64))
794
795 @hybrid_property
796 def name(self):
797 return self.first_name
798
799 @name.expression
800 def name(
801 cls,
802 ):
803 if exprtype.plain_column:
804 return cls.first_name
805 elif exprtype.self_standing_case:
806 return case(
807 (column("x") == 1, column("q")),
808 else_=column("q"),
809 )
810 elif exprtype.case_w_columns:
811 return case(
812 (column("x") == 1, column("q")),
813 else_=cls.first_name,
814 )
815 else:
816 exprtype.fail()
817
818 def go1():
819 employees_2 = aliased(Employees, name="employees_2")
820 stmt = select(employees_2.name)
821 return stmt
822
823 def go2():
824 employees_2 = aliased(Employees, name="employees_2")
825 stmt = select(employees_2)
826 return stmt
827
828 self._run_cache_key_fixture(
829 lambda: stmt_20(go1(), go2()),
830 compare_values=True,
831 )
832
833
834class RoundTripTest(QueryTest, AssertsCompiledSQL):

Callers

nothing calls this directly

Calls 2

stmt_20Function · 0.85

Tested by

no test coverage detected