emacs-orgmode
[Top][All Lists]
Advanced

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

Re: [O] [Proposal] Source Blocks with Post-Extensions


From: Martin Alsinet
Subject: Re: [O] [Proposal] Source Blocks with Post-Extensions
Date: Fri, 26 Jul 2019 07:58:36 -0500

Ken,

I usually have a shell buffer nearby and go there to inspect the failed tests when I get no output.
The problem is that shell blocks do not capture stderr. John Kitchin wrote a blog post about this problem and provided a solution that may work for you, but I have not tried it yet.

Martin

On Fri, Jul 26, 2019 at 7:02 AM Ken Mankoff <address@hidden> wrote:
Hi Martin,

On 2019-06-26 at 18:09 -04, Martin Alsinet <address@hidden> wrote...
> I use a different approach, where I tangle the source into files in
> modules and then I import those modules from other blocks. This allows
> me to organize my document with different sections for the code and
> its tests, which then get exported into their corresponding files.

Thanks for providing this pytest code below. It runs nicely because your tests pass. It does not run if a test fails. The shell block that runs pytest reports

Babel evaluation exited with code 1
Code block produced no output.

Do you have some way of capturing failed pytest tests in Org Babel?

Thanks,

  -k.

> * Square Function
>
> This function receives a number and returns its square
>
> #+BEGIN_SRC python :tangle ./utils/math.py :mkdirp yes
> def square(x):
>     return x * x
> #+END_SRC
>
> ** __init__.py (module setup)
>
> #+begin_src python :tangle ./utils/__init__.py :mkdirp yes
> from utils.math import square
>
> #+end_src
>
> ** Test cases
>
> 1. The square of five should be 25
> 2. The square of zero should be 0
> 3. The square of a negative number should be positive
>
> #+BEGIN_SRC python :tangle ./utils/test_square.py :mkdirp yes
> from utils.math import square
>
> def test_square_of_five():
>     assert square(5) == 25
>
> def test_square_of_zero():
>     assert square(0) == 0
>
> def test_square_of_negative():
>     assert square(-5) > 0
> #+END_SRC
>
> *** Run tests
>
> #+begin_src sh :results output raw
> pytest ./utils
> #+end_src
>
> #+RESULTS:
> ============================= test session starts
> ==============================
> platform linux -- Python 3.7.3, pytest-4.6.3, py-1.8.0, pluggy-0.12.0
> rootdir: /app
> collected 3 items
>
> utils/test_square.py ...
> [100%]
>
> =========================== 3 passed in 0.08 seconds
> ===========================
>
>

reply via email to

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