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

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

[nongnu] elpa/emacsql f52af86b05 124/427: Break apart and organize compi


From: ELPA Syncer
Subject: [nongnu] elpa/emacsql f52af86b05 124/427: Break apart and organize compilation tests.
Date: Tue, 13 Dec 2022 02:59:34 -0500 (EST)

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

    Break apart and organize compilation tests.
---
 emacsql-tests.el | 69 ++++++++++++++++++++++++++++++++++++--------------------
 1 file changed, 45 insertions(+), 24 deletions(-)

diff --git a/emacsql-tests.el b/emacsql-tests.el
index 867678aef9..eb5fcc880c 100644
--- a/emacsql-tests.el
+++ b/emacsql-tests.el
@@ -54,32 +54,53 @@
   (should (string= (apply #'emacsql-format (emacsql-expand query) args)
                    result)))
 
-(ert-deftest emacsql-expand ()
-  (emacsql-tests-query [:select [$1 name] :from $2] '(id people)
-                       "SELECT id, name FROM people;")
-  (emacsql-tests-query [:select * :from employees] ()
-                       "SELECT * FROM employees;")
-  (emacsql-tests-query [:select * :from employees :where (< salary 50000)] ()
-                       "SELECT * FROM employees WHERE salary < 50000;")
-  (emacsql-tests-query [:create-table foo [a b c]] ()
-                       "CREATE TABLE foo (a, b, c);")
-  (emacsql-tests-query [:drop-table $1] '(foo)
-                       "DROP TABLE foo;")
-  (emacsql-tests-query [:update people :set (= id $1)] '(10)
-                       "UPDATE people SET id = 10;")
-  (emacsql-tests-query [:select * :from people :where (in name $1)] '([FOO 
BAR])
-                       "SELECT * FROM people WHERE name IN ('FOO', 'BAR');")
-  (emacsql-tests-query [:insert :into foo :values [nil $1]] '(10.1)
-                       "INSERT INTO foo VALUES (NULL, 10.1);")
-  (emacsql-tests-query [:create-table (:temporary :if-not-exists x) [y]] '()
-                       "CREATE TEMPORARY TABLE IF NOT EXISTS x (y);"))
+(defmacro emacsql-tests-with-queries (&rest queries)
+  "Thread `emacsql-tests-query' through QUERIES."
+  (declare (indent 0))
+  (cons 'progn (mapcar (lambda (q) (cons 'emacsql-tests-query q)) queries)))
+
+(ert-deftest emacsql-select ()
+  (emacsql-tests-with-queries
+    ([:select [$1 name] :from $2] '(id people)
+     "SELECT id, name FROM people;")
+    ([:select * :from employees] '()
+     "SELECT * FROM employees;")
+    ([:select * :from employees :where (< salary 50000)] '()
+     "SELECT * FROM employees WHERE salary < 50000;")
+    ([:select * :from people :where (in name $1)] '([FOO BAR])
+     "SELECT * FROM people WHERE name IN ('FOO', 'BAR');")))
+
+(ert-deftest emacsql-create-table ()
+  (emacsql-tests-with-queries
+    ([:create-table foo [a b c]] ()
+     "CREATE TABLE foo (a, b, c);")
+    ([:create-table (:temporary :if-not-exists x) [y]] '()
+     "CREATE TEMPORARY TABLE IF NOT EXISTS x (y);")
+    ([:drop-table $1] '(foo)
+     "DROP TABLE foo;")))
+
+(ert-deftest emacsql-update ()
+  (emacsql-tests-with-queries
+    ([:update people :set (= id $1)] '(10)
+     "UPDATE people SET id = 10;")))
+
+(ert-deftest emacsql-insert ()
+  (emacsql-tests-with-queries
+    ([:insert :into foo :values [nil $1]] '(10.1)
+     "INSERT INTO foo VALUES (NULL, 10.1);")
+    ([:replace :into $1 :values $2] '(bar ([1 2] [3 4]))
+     "REPLACE INTO bar VALUES (1, 2), (3, 4);")))
 
 (ert-deftest emacsql-order-by ()
-  (emacsql-tests-query [:order-by foo] '() "ORDER BY foo;")
-  (emacsql-tests-query [:order-by [$1]] '(bar) "ORDER BY bar;")
-  (emacsql-tests-query [:order-by (- foo)] '() "ORDER BY -(foo);")
-  (emacsql-tests-query [:order-by [(a :asc) ((/ b 2) :desc)]] '()
-                       "ORDER BY a ASC, b / 2 DESC;"))
+  (emacsql-tests-with-queries
+    ([:order-by foo] '()
+     "ORDER BY foo;")
+    ([:order-by [$1]] '(bar)
+     "ORDER BY bar;")
+    ([:order-by (- foo)] '()
+     "ORDER BY -(foo);")
+    ([:order-by [(a :asc) ((/ b 2) :desc)]] '()
+     "ORDER BY a ASC, b / 2 DESC;")))
 
 (ert-deftest emacsql-system ()
   (should-not (emacsql-sqlite3-unavailable-p))



reply via email to

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