Refactor ob-shell/bash-uses-assoc-arrays

* testing/lisp/test-ob-shell.el (ob-shell/bash-uses-assoc-arrays):
Split test cases into separate tests,
`test-ob-shell/bash-uses-assoc-arrays' and
`test-ob-shell/bash-uses-assoc-arrays-with-lists'.  Rename prefix from
"ob-shell" to "test-ob-shell".
(ob-shell/bash-uses-assoc-arrays): Move comments from
testing/examples/ob-shell-test.org to docstrings.
(ob-shell/bash-uses-assoc-arrays): Remove dependency on
testing/examples/ob-shell-test.org.
This commit is contained in:
Matt Trzcinski 2022-12-31 12:56:51 -05:00
parent 728e7fca81
commit 2a0f5a5153
1 changed files with 38 additions and 15 deletions

View File

@ -118,21 +118,44 @@ echo ${table}
(equal "bread 2 kg spaghetti 20 cm milk 50 dl"
(org-trim (org-babel-execute-src-block))))))
(ert-deftest ob-shell/bash-uses-assoc-arrays ()
"Bash associative arrays"
(should
(equal "two"
(org-test-at-id
"bec1a5b0-4619-4450-a8c0-2a746b44bf8d"
(org-babel-next-src-block 2)
(org-trim (org-babel-execute-src-block)))))
;; Bash associative arrays as strings for the row.
(should
(equal "20 cm"
(org-test-at-id
"82320a48-3409-49d7-85c9-5de1c6d3ff87"
(org-babel-next-src-block 2)
(org-trim (org-babel-execute-src-block))))))
(ert-deftest test-ob-shell/bash-uses-assoc-arrays ()
"Bash shell: support for associative arrays
Bash will see a table that contains the first column as the
'index' of the associative array, and the second column as the
value. "
(org-test-with-temp-text
"#+NAME: sample_mapping_table
| first | one |
| second | two |
| third | three |
#+begin_src bash :exports :results output results :var table=sample_mapping_table
echo ${table[second]}
<point>
#+end_src "
(should
(equal "two"
(org-trim (org-babel-execute-src-block))))))
(ert-deftest test-ob-shell/bash-uses-assoc-arrays-with-lists ()
"Bash shell: support for associative arrays with lists
Bash will see an associative array that contains each row as a single
string. Bash cannot handle lists in associative arrays."
(org-test-with-temp-text
"#+NAME: sample_big_table
| bread | 2 | kg |
| spaghetti | 20 | cm |
| milk | 50 | dl |
#+begin_src bash :exports results :results output :var table=sample_big_table
echo ${table[spaghetti]}
<point>
#+end_src"
(should
(equal "20 cm"
(org-trim (org-babel-execute-src-block))))))
(ert-deftest ob-shell/simple-list ()
"Test list variables in shell."