From: Martyn Jago <firstname.lastname@example.org>
Subject: Re: [babel] Trying to add ERT test cases
Date: Mon, 19 Sep 2011 16:46:09 +0100 [thread overview]
Message-ID: <email@example.com> (raw)
> I'd like to really contrib more on test cases, in particular every time I'd
> see something problematic. My goal (SOMEDAY/MAYBE) would be to (be able to)
> report any problem with an attached ERT test case...
> Last experience: for some unknown reason (maybe a Lisp nesting exceeded,
> though), it (rarely) happens that the speed commands don't work anymore. I'd
> like to test (ultimately all speed commans) against such a behavior.
> * Speed command (this must be at level-1 headline)
> :ID: 4ee368b8-cf7c-4269-98c0-b28dcf94ff2b
> Some text.
> * Test
> #+begin_src emacs-lisp
> (ert-deftest ob-tangle/speed-command-r ()
> "Test that speed command `r' does demote the headline."
> (org-test-at-id "4ee368b8-cf7c-4269-98c0-b28dcf94ff2b"
> (goto-char (point-at-bol))
> (insert "r") ;; I don't want a self-insert of r, but the effect of typing it
> (goto-char (point-at-bol))
> (should (looking-at "\\*\\* Speed command"))
> (delete-char 1)))
> - I want to simulate the user pressing `r', but `insert' does insert a literal
> `r', instead of executing what's associated to it.
> Of course, I don't want to replace the key press on `r' but a call to
> `org-shiftright', that's the whole point of the test.
> So, how can I insert a `r' character to be contextually interpreted?
> - when `should' is failing, the `delete-char' does not take place. This is
> still mysterious to me, at this point in time.
> Any hints for me to go further?
> Best regards,
My solution doesn't simulate pressing `r' as such (which looks like it
will require some substantial setup), so I approached the test slightly
- 1) Ensure =org-speed-command-default-hook= returns t when valid
(default) speed command and bol
- 2) Ensure actual speed command promotes correctly
- 3) Use a test-buffer (with org-mode enabled) to avoid messing with
There may be a better solution however.
(ert-deftest ob-tangle/speed-command-r ()
(let ((org-use-speed-commands t))
(insert "* Speed command")
;; ensure default speed commands return t
(should (org-speed-command-default-hook "r"))
(should (org-speed-command-default-hook "n"))
;; ensure non-default speed commands return nil
(should-not (org-speed-command-default-hook "z"))
;; ensure default speed commands return nil if not at bol
(should-not (org-speed-command-default-hook "r"))
;; ensure org-metaright promotes heading
(should (equal "** Speed command" (buffer-string)))
;; ensure org-metaleft demotes heading
(should (equal "* Speed command" (buffer-string))))))
next prev parent reply other threads:[~2011-09-19 15:46 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-09-19 11:20 Sebastien Vauban
2011-09-19 14:35 ` Eric Schulte
2011-09-19 19:35 ` Sebastien Vauban
2011-09-19 21:32 ` Eric Schulte
2011-09-20 7:22 ` Sebastien Vauban
2011-09-19 15:46 ` Martyn Jago [this message]
2011-09-19 16:04 ` Eric Schulte
2011-09-20 8:03 ` Martyn Jago
2011-09-20 15:01 ` Eric Schulte
2011-09-21 4:18 ` Martyn Jago
2011-09-21 12:20 ` Eric Schulte
2011-09-19 19:43 ` Sebastien Vauban
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
List information: https://www.orgmode.org/
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this public inbox
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).