]> 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:19 +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

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

index b9098bac13f59454a217852e8d907700e8e9772f..f5283ff443ae24b15b78f48837c90ab10b99113f 100644 (file)
@@ -2418,6 +2418,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
@@ -2521,11 +2522,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,
@@ -2534,7 +2540,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}],
                 )
             ],
@@ -2545,7 +2551,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,
@@ -2554,8 +2564,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 49d29a949bbb38a48ac37ebfa06b20325e032e84..a0d984ef4b1682258476b51563b4624c7a0370ca 100644 (file)
@@ -621,8 +621,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
         )