emacs-orgmode@gnu.org archives
 help / color / mirror / code / Atom feed
From: Eric Schulte <schulte.eric@gmail.com>
To: Sebastien Vauban <wxhgmqzgwmuf@spammotel.com>
Cc: emacs-orgmode@gnu.org
Subject: Re: [babel] Trying to add ERT test cases
Date: Mon, 19 Sep 2011 08:35:51 -0600	[thread overview]
Message-ID: <87ty88vad1.fsf@gmail.com> (raw)
In-Reply-To: 80sjnswzh5.fsf@somewhere.org

"Sebastien Vauban" <wxhgmqzgwmuf@spammotel.com> writes:

> Hi,
>
> 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...
>

That would certainly be the ideal for a bug report.

>
> 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.
>
> Hence:
>
> * Speed command (this must be at level-1 headline)
>   :PROPERTIES:
>   :ID:       4ee368b8-cf7c-4269-98c0-b28dcf94ff2b
>   :END:
>
> 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)))
> #+end_src
>
> Problems:
>
> - 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?
>

The best way to find out what is happening when you press a key (or key
chord) in Emacs is with the `describe-key-briefly' command bound to "C-h
c".  Using this in an Org-mode buffer I see that the key "r" is bound to
`org-self-insert-command'.

>
> - when `should' is failing, the `delete-char' does not take place. This is
>   still mysterious to me, at this point in time.
>

I suppose ERT aborts a test when the first should form fails.  Many
testing frameworks have a way of defining "fixtures" which serve as test
wrappers...

Hoping to find an ERT tutorial I googled "ert tutorial emacs test" and
the first page was [1], which we should probably update to reflect the
actual test framework.  The info page on ERT does look to be informative
and may specify how to ensure that "cleanup" code is run -- although in
general it may be a better idea to simply run tests in a temporary
buffer `with-temp-buffer' so no cleanup is required.

Hope this helps.  Best -- Eric

>
> Any hints for me to go further?
>
> Best regards,
>   Seb

Footnotes: 
[1]  http://orgmode.org/worg/org-tests/index.html

-- 
Eric Schulte
http://cs.unm.edu/~eschulte/

  reply	other threads:[~2011-09-19 15:08 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-09-19 11:20 [babel] Trying to add ERT test cases Sebastien Vauban
2011-09-19 14:35 ` Eric Schulte [this message]
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
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

Reply instructions:

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:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://www.orgmode.org/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=87ty88vad1.fsf@gmail.com \
    --to=schulte.eric@gmail.com \
    --cc=emacs-orgmode@gnu.org \
    --cc=wxhgmqzgwmuf@spammotel.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* 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

	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

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).