Changeset: 6f226e77e14f for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/6f226e77e14f
Modified Files:
        sql/test/BugTracker-2021/Tests/copyinto-copyfrom.Bug-7186.SQL.py
Branch: default
Log Message:

Don't leak created temporary directory on error and escape backslashes on file 
paths


diffs (41 lines):

diff --git a/sql/test/BugTracker-2021/Tests/copyinto-copyfrom.Bug-7186.SQL.py 
b/sql/test/BugTracker-2021/Tests/copyinto-copyfrom.Bug-7186.SQL.py
--- a/sql/test/BugTracker-2021/Tests/copyinto-copyfrom.Bug-7186.SQL.py
+++ b/sql/test/BugTracker-2021/Tests/copyinto-copyfrom.Bug-7186.SQL.py
@@ -2,20 +2,22 @@ import tempfile, os, shutil
 from MonetDBtesting.sqltest import SQLTestCase
 
 nexdir = tempfile.mkdtemp()
-temp_name = os.path.join(nexdir, 'myp.csv')
 
-with SQLTestCase() as cli:
-    cli.connect(username="monetdb", password="monetdb")
+try:
+    temp_name = os.path.join(nexdir, 'myfile.csv').replace("\\", "\\\\")
+    with SQLTestCase() as cli:
+        cli.connect(username="monetdb", password="monetdb")
 
-    cli.execute("START TRANSACTION;").assertSucceeded()
-    cli.execute("""
-    CREATE TABLE "t" ("id" INTEGER,"name" VARCHAR(1024),"schema_id" 
INTEGER,"query" VARCHAR(1048576),"type" SMALLINT,"system" 
BOOLEAN,"commit_action" SMALLINT,"access" SMALLINT,"temporary" TINYINT);
-    """).assertSucceeded()
-    cli.execute("""
-    COPY SELECT 
"id","name","schema_id","query","type","system","commit_action","access","temporary"
 FROM sys.tables LIMIT 100 INTO '%s' DELIMITERS '|';
-    """ % (temp_name)).assertSucceeded()
-    cli.execute("COPY INTO t FROM '%s' DELIMITERS '|';" % 
(temp_name)).assertSucceeded()
-    cli.execute("DROP TABLE t;").assertSucceeded()
-    cli.execute("ROLLBACK;").assertSucceeded()
-
-shutil.rmtree(nexdir)
+        cli.execute("START TRANSACTION;").assertSucceeded()
+        cli.execute("""
+        CREATE TABLE "t" ("id" INTEGER,"name" VARCHAR(1024),"schema_id" 
INTEGER,"query" VARCHAR(1048576),"type" SMALLINT,"system" 
BOOLEAN,"commit_action" SMALLINT,"access" SMALLINT,"temporary" TINYINT);
+        """).assertSucceeded()
+        cli.execute("""
+        COPY SELECT 
"id","name","schema_id","query","type","system","commit_action","access","temporary"
 FROM sys.tables LIMIT 100 INTO '%s' DELIMITERS '|';
+        """ % (temp_name)).assertSucceeded()
+        cli.execute("COPY INTO t FROM '%s' DELIMITERS '|';" % 
(temp_name)).assertSucceeded()
+        cli.execute("DROP TABLE t;").assertSucceeded()
+        cli.execute("ROLLBACK;").assertSucceeded()
+finally:
+    if os.path.exists(nexdir):
+        shutil.rmtree(nexdir)
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to