From: Federico Caselli Date: Tue, 15 Jul 2025 20:50:32 +0000 (+0200) Subject: add recursive test to values cte X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=320c3b5b043931187d266f5c92b3fe366f650e5a;p=thirdparty%2Fsqlalchemy%2Fsqlalchemy.git add recursive test to values cte Change-Id: I544aab7f9f5d2640fc6c3d970d835a6e3f80d746 --- diff --git a/test/sql/test_values.py b/test/sql/test_values.py index 9ac3fa71b2..8129fc4d8b 100644 --- a/test/sql/test_values.py +++ b/test/sql/test_values.py @@ -269,7 +269,10 @@ class ValuesTest(fixtures.TablesTest, AssertsCompiledSQL): @testing.variation("values_named", [True, False]) @testing.variation("cte_named", [True, False]) @testing.variation("literal_binds", [True, False]) - def test_direct_cte(self, values_named, cte_named, literal_binds): + @testing.variation("recursive", [True, False]) + def test_direct_cte( + self, values_named, cte_named, literal_binds, recursive + ): """test #12734""" cte1 = ( @@ -280,7 +283,7 @@ class ValuesTest(fixtures.TablesTest, AssertsCompiledSQL): name="some name" if values_named else None, ) .data([("a", 2), ("b", 3)]) - .cte("cte1" if cte_named else None) + .cte("cte1" if cte_named else None, recursive=bool(recursive)) ) stmt = select(cte1.c.col1) @@ -296,9 +299,12 @@ class ValuesTest(fixtures.TablesTest, AssertsCompiledSQL): params = "('a', 2), ('b', 3)" else: params = "(:param_1, :param_2), (:param_3, :param_4)" + + recursive_str = "RECURSIVE " if recursive else "" + self.assert_compile( stmt, - f"WITH {cte_name}(col1, col2) AS " + f"WITH {recursive_str}{cte_name}(col1, col2) AS " f"(VALUES {params}) " f"SELECT {cte_name}.col1 FROM {cte_name}", checkparams=(