]> git.ipfire.org Git - thirdparty/sqlalchemy/sqlalchemy.git/commitdiff
Turn on backend for new tests added for #4803
authorMike Bayer <mike_mp@zzzcomputing.com>
Wed, 14 Aug 2019 14:34:38 +0000 (10:34 -0400)
committerMike Bayer <mike_mp@zzzcomputing.com>
Wed, 14 Aug 2019 14:49:30 +0000 (10:49 -0400)
New tests added are failing on SQL Server which doesn't support
expressions in LIMIT, need better gerrit coverage

Fixes: #4803
Change-Id: I56bc44474d448a1faa1dfccff0b55763329e712d
(cherry picked from commit a34664040a8727394dc62d7db4843baad2dce631)

test/orm/test_query.py
test/requirements.py

index 9502b16b73624d5419f00cd52c1a8e600653c5f2..04153c8b874c1d08a75ca169e615b4f883c14efd 100644 (file)
@@ -2395,6 +2395,7 @@ class ComparatorTest(QueryTest):
 # more slice tests are available in test/orm/generative.py
 class SliceTest(QueryTest):
     __dialect__ = "default"
+    __backend__ = True
 
     def test_first(self):
         User = self.classes.User
@@ -2498,11 +2499,16 @@ class SliceTest(QueryTest):
             ],
         )
 
+    @testing.requires.sql_expression_limit_offset
     def test_first_against_expression_offset(self):
         User = self.classes.User
 
         sess = create_session()
-        q = sess.query(User).order_by(User.id).offset(literal_column("2"))
+        q = (
+            sess.query(User)
+            .order_by(User.id)
+            .offset(literal_column("2") + literal_column("3"))
+        )
 
         self.assert_sql(
             testing.db,
@@ -2511,7 +2517,7 @@ class SliceTest(QueryTest):
                 (
                     "SELECT users.id AS users_id, users.name AS users_name "
                     "FROM users ORDER BY users.id "
-                    "LIMIT :param_1 OFFSET 2",
+                    "LIMIT :param_1 OFFSET 2 + 3",
                     [{"param_1": 1}],
                 )
             ],
@@ -2522,7 +2528,11 @@ class SliceTest(QueryTest):
         User = self.classes.User
 
         sess = create_session()
-        q = sess.query(User).order_by(User.id).offset(literal_column("2"))
+        q = (
+            sess.query(User)
+            .order_by(User.id)
+            .offset(literal_column("2") + literal_column("3"))
+        )
 
         self.assert_sql(
             testing.db,
@@ -2531,8 +2541,8 @@ class SliceTest(QueryTest):
                 (
                     "SELECT users.id AS users_id, users.name AS users_name "
                     "FROM users ORDER BY users.id "
-                    "LIMIT :param_1 OFFSET 2 + :2_1",
-                    [{"param_1": 3, "2_1": 2}],
+                    "LIMIT :param_1 OFFSET 2 + 3 + :param_2",
+                    [{"param_1": 3, "param_2": 2}],
                 )
             ],
         )
index 35328e98495424f506c3b2c1893229cb7fcdc995..a7b906add50e3b6bc6fc95f5b25143fc07235de3 100644 (file)
@@ -609,8 +609,9 @@ class DefaultRequirements(SuiteRequirements):
     def sql_expression_limit_offset(self):
         return (
             fails_if(
-                ["mysql"],
-                "MySQL can't accommodate full expressions in OFFSET or LIMIT",
+                ["mysql", "mssql"],
+                "Target backend can't accommodate full expressions in "
+                "OFFSET or LIMIT",
             )
             + self.offset
         )