aboutsummaryrefslogtreecommitdiffstats
path: root/test
diff options
context:
space:
mode:
authorMichael R. Mauger2019-02-18 23:15:54 -0500
committerMichael R. Mauger2019-02-18 23:15:54 -0500
commit1a6bcc91e3e468e5a6d3e0b121bb675b576d3362 (patch)
treeca325907ed02edcd6a463b5f5e5482bbc6f81ab9 /test
parented1e805af7d4892e7354e8c9e2246d5017d4ff52 (diff)
downloademacs-wallet.tar.gz
emacs-wallet.zip
* lisp/progmodes/sql.el: Added password wallet usingwallet
`auth-source' package. (sql-auth-source-search-wallet): New function. (sql-password-wallet): New variable. (sql-password-search-wallet-function): New variable. (sql-get-login): Handle password wallet search. (sql-product-interactive): Handle password function. * test/lisp/progmodes/sql-test.el: Test wallet changes. (sql-test-login-params): New test variable. (with-sql-test-connect-harness): New macro to wrap test configuration around calls to `sql-connect'. (sql-test-connect, sql-test-connect-password-func) (sql-test-connect-wallet-server-database) (sql-test-connect-wallet-database) (sql-test-connect-wallet-server): New ERT tests. * etc/NEWS: Updated SQL Mode descriptions.
Diffstat (limited to 'test')
-rw-r--r--test/lisp/progmodes/sql-tests.el101
1 files changed, 101 insertions, 0 deletions
diff --git a/test/lisp/progmodes/sql-tests.el b/test/lisp/progmodes/sql-tests.el
index 604c02172ea..a68f9319c2f 100644
--- a/test/lisp/progmodes/sql-tests.el
+++ b/test/lisp/progmodes/sql-tests.el
@@ -53,5 +53,106 @@
53 (error "some error")))) 53 (error "some error"))))
54 (should-not (sql-postgres-list-databases)))) 54 (should-not (sql-postgres-list-databases))))
55 55
56(defvar sql-test-login-params nil)
57(defmacro with-sql-test-connect-harness (id login-params connection expected)
58 "Set-up and tear-down SQL connect related test.
59
60Identify tests by ID. Set :sql-login dialect attribute to
61LOGIN-PARAMS. Provide the CONNECTION parameters and the EXPECTED
62string of values passed to the comint function for validation."
63 (declare (indent 2))
64 `(cl-letf
65 ((sql-test-login-params ' ,login-params)
66 ((symbol-function 'sql-comint-test)
67 (lambda (product options &optional buf-name)
68 (with-current-buffer (get-buffer-create buf-name)
69 (insert (pp-to-string (list product options sql-user sql-password sql-server sql-database))))))
70 ((symbol-function 'sql-run-test)
71 (lambda (&optional buffer)
72 (interactive "P")
73 (sql-product-interactive 'sqltest buffer)))
74 (sql-user nil)
75 (sql-server nil)
76 (sql-database nil)
77 (sql-product-alist
78 '((ansi)
79 (sqltest
80 :name "SqlTest"
81 :sqli-login sql-test-login-params
82 :sqli-comint-func sql-comint-test)))
83 (sql-connection-alist
84 '((,(format "test-%s" id)
85 ,@connection)))
86 (sql-password-wallet
87 (list
88 (make-temp-file
89 "sql-test-netrc" nil nil
90 (mapconcat #'identity
91 '("machine aMachine user aUserName password \"netrc-A aPassword\""
92 "machine aServer user aUserName password \"netrc-B aPassword\""
93 "machine aMachine server aServer user aUserName password \"netrc-C aPassword\""
94 "machine aMachine database aDatabase user aUserName password \"netrc-D aPassword\""
95 "machine aDatabase user aUserName password \"netrc-E aPassword\""
96 "machine aMachine server aServer database aDatabase user aUserName password \"netrc-F aPassword\""
97 "machine \"aServer/aDatabase\" user aUserName password \"netrc-G aPassword\""
98 ) "\n")))))
99
100 (let* ((connection ,(format "test-%s" id))
101 (buffername (format "*SQL: ERT TEST <%s>*" connection)))
102 (when (get-buffer buffername)
103 (kill-buffer buffername))
104 (sql-connect connection buffername)
105 (should (get-buffer buffername))
106 (should (string-equal (with-current-buffer buffername (buffer-string)) ,expected))
107 (when (get-buffer buffername)
108 (kill-buffer buffername))
109 (delete-file (car sql-password-wallet)))))
110
111(ert-deftest sql-test-connect ()
112 "Test of basic `sql-connect'."
113 (with-sql-test-connect-harness 1 (user password server database)
114 ((sql-product 'sqltest)
115 (sql-user "aUserName")
116 (sql-password "test-1 aPassword")
117 (sql-server "aServer")
118 (sql-database "aDatabase"))
119 "(sqltest nil \"aUserName\" \"test-1 aPassword\" \"aServer\" \"aDatabase\")\n"))
120
121(ert-deftest sql-test-connect-password-func ()
122 "Test of password function."
123 (with-sql-test-connect-harness 2 (user password server database)
124 ((sql-product 'sqltest)
125 (sql-user "aUserName")
126 (sql-password (lambda () (concat [?t ?e ?s ?t ?- ?2 ?\s
127 ?a ?P ?a ?s ?s ?w ?o ?r ?d])))
128 (sql-server "aServer")
129 (sql-database "aDatabase"))
130 "(sqltest nil \"aUserName\" \"test-2 aPassword\" \"aServer\" \"aDatabase\")\n"))
131
132(ert-deftest sql-test-connect-wallet-server-database ()
133 "Test of password function."
134 (with-sql-test-connect-harness 3 (user password server database)
135 ((sql-product 'sqltest)
136 (sql-user "aUserName")
137 (sql-server "aServer")
138 (sql-database "aDatabase"))
139 "(sqltest nil \"aUserName\" \"netrc-G aPassword\" \"aServer\" \"aDatabase\")\n"))
140
141(ert-deftest sql-test-connect-wallet-database ()
142 "Test of password function."
143 (with-sql-test-connect-harness 4 (user password database)
144 ((sql-product 'sqltest)
145 (sql-user "aUserName")
146 (sql-database "aDatabase"))
147 "(sqltest nil \"aUserName\" \"netrc-E aPassword\" nil \"aDatabase\")\n"))
148
149(ert-deftest sql-test-connect-wallet-server ()
150 "Test of password function."
151 (with-sql-test-connect-harness 5 (user password server)
152 ((sql-product 'sqltest)
153 (sql-user "aUserName")
154 (sql-server "aServer"))
155 "(sqltest nil \"aUserName\" \"netrc-B aPassword\" \"aServer\" nil)\n"))
156
56(provide 'sql-tests) 157(provide 'sql-tests)
57;;; sql-tests.el ends here 158;;; sql-tests.el ends here