emacs-elpa-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[nongnu] elpa/emacsql 4b58a6717e 250/427: Don't use temporary tables in


From: ELPA Syncer
Subject: [nongnu] elpa/emacsql 4b58a6717e 250/427: Don't use temporary tables in foreign key test.
Date: Tue, 13 Dec 2022 02:59:49 -0500 (EST)

branch: elpa/emacsql
commit 4b58a6717e976d44550738474176dcc153dc1748
Author: Christopher Wellons <wellons@nullprogram.com>
Commit: Christopher Wellons <wellons@nullprogram.com>

    Don't use temporary tables in foreign key test.
    
    MySQL can't use foreign keys in temporary tables.
---
 tests/emacsql-external-tests.el | 39 ++++++++++++++++++++++-----------------
 1 file changed, 22 insertions(+), 17 deletions(-)

diff --git a/tests/emacsql-external-tests.el b/tests/emacsql-external-tests.el
index d642ad4f2e..1438a219bc 100644
--- a/tests/emacsql-external-tests.el
+++ b/tests/emacsql-external-tests.el
@@ -41,23 +41,28 @@
   (let ((emacsql-global-timeout emacsql-tests-timeout))
     (dolist (factory emacsql-tests-connection-factories)
       (emacsql-with-connection (db (funcall (cdr factory)))
-        (emacsql-thread db
-          [:create-temporary-table person ([(id integer :primary-key) name])]
-          [:create-temporary-table likes
-           ([(personid integer) color]
-            (:foreign-key [personid] :references person [id]
-                          :on-delete :cascade))]
-          [:insert :into person :values ([0 "Chris"] [1 "Brian"])])
-        (should (equal (emacsql db [:select * :from person :order-by id])
-                       '((0 "Chris") (1 "Brian"))))
-        (emacsql db [:insert :into likes
-                             :values ([0 red] [0 yellow] [1 yellow])])
-        (should (equal (emacsql db [:select * :from likes
-                                            :order-by [personid color]])
-                       '((0 red) (0 yellow) (1 yellow))))
-        (emacsql db [:delete :from person :where (= id 0)])
-        (should (equal (emacsql db [:select * :from likes])
-                       '((1 yellow))))))))
+        (unwind-protect
+            (progn
+              (emacsql-thread db
+                [:create-table person ([(id integer :primary-key) name])]
+                [:create-table likes
+                 ([(personid integer) color]
+                  (:foreign-key [personid] :references person [id]
+                                :on-delete :cascade))]
+                [:insert :into person :values ([0 "Chris"] [1 "Brian"])])
+              (should (equal (emacsql db [:select * :from person :order-by id])
+                             '((0 "Chris") (1 "Brian"))))
+              (emacsql db [:insert :into likes
+                           :values ([0 red] [0 yellow] [1 yellow])])
+              (should (equal (emacsql db [:select * :from likes
+                                          :order-by [personid color]])
+                             '((0 red) (0 yellow) (1 yellow))))
+              (emacsql db [:delete :from person :where (= id 0)])
+              (should (equal (emacsql db [:select * :from likes])
+                             '((1 yellow)))))
+          (emacsql-thread db
+            [:drop-table likes]
+            [:drop-table person]))))))
 
 (ert-deftest emacsql-error ()
   "Check that we're getting expected conditions."



reply via email to

[Prev in Thread] Current Thread [Next in Thread]