branch: elpa/emacsql commit 4b58a6717e976d44550738474176dcc153dc1748 Author: Christopher Wellons <well...@nullprogram.com> Commit: Christopher Wellons <well...@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."