]> git.ipfire.org Git - thirdparty/sqlalchemy/sqlalchemy.git/commitdiff
Add page_size flag test
authorYuval Dinari <>
Wed, 24 Jul 2019 08:54:06 +0000 (11:54 +0300)
committerYuval Dinari <>
Wed, 24 Jul 2019 11:57:51 +0000 (14:57 +0300)
Fixes: #4623
test/dialect/postgresql/test_dialect.py

index 9530b3b14f26cb51d9691cac8701415d71620c60..3cbf32e9d327d52e1490ae890d4588fbed1bb919 100644 (file)
@@ -293,13 +293,13 @@ class ExecuteValuesInsertsTest(fixtures.TablesTest):
                 [(1, "x1", "y5", 5), (2, "x2", "y2", 5), (3, "x3", "y6", 5)],
             )
 
-    def test_correct_arguments(self):
+    def test_execute_values_arguments(self):
         def execute_values(cur, sql, argslist, template=None, page_size=100):
             assert sql == "INSERT INTO data (x, y) VALUES %s"
             assert argslist == ({'x': 'x1', 'y': 'y1'}, {
                                 'x': 'x2', 'y': 'y2'}, {'x': 'x3', 'y': 'y3'})
             assert template == "(%(x)s, %(y)s)"
-            assert page_size == 10000
+            assert page_size == 10000  # Flag's default value
 
         with patch("psycopg2.extras.execute_values", execute_values):
             with self.engine.connect() as conn:
@@ -312,6 +312,29 @@ class ExecuteValuesInsertsTest(fixtures.TablesTest):
                     ],
                 )
 
+    def test_execute_values_arguments_page_size(self):
+        self.engine = engines.testing_engine(
+            options={"execution_mode": "values_batch", "page_size": 5000})
+
+        def execute_values(cur, sql, argslist, template=None, page_size=100):
+            assert sql == "INSERT INTO data (x, y) VALUES %s"
+            assert argslist == ({'x': 'x1', 'y': 'y1'}, {
+                                'x': 'x2', 'y': 'y2'}, {'x': 'x3', 'y': 'y3'})
+            assert template == "(%(x)s, %(y)s)"
+            assert page_size == 5000
+
+        with patch("psycopg2.extras.execute_values", execute_values):
+            with self.engine.connect() as conn:
+                conn.execute(
+                    self.tables.data.insert(),
+                    [
+                        {"x": "x1", "y": "y1"},
+                        {"x": "x2", "y": "y2"},
+                        {"x": "x3", "y": "y3"},
+                    ],
+                )
+
+
 
 class MiscBackendTest(
     fixtures.TestBase, AssertsExecutionResults, AssertsCompiledSQL