From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ken Mankoff Subject: Re: [Proposal] Source Blocks with Post-Extensions Date: Fri, 26 Jul 2019 08:02:11 -0400 Message-ID: <87a7d10zss.fsf@gmail.com> References: Mime-Version: 1.0 Content-Type: text/plain Return-path: Received: from eggs.gnu.org ([2001:470:142:3::10]:51954) by lists.gnu.org with esmtp (Exim 4.86_2) (envelope-from ) id 1hqyvS-0003h2-K9 for emacs-orgmode@gnu.org; Fri, 26 Jul 2019 08:02:19 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1hqyvP-0004xt-GG for emacs-orgmode@gnu.org; Fri, 26 Jul 2019 08:02:17 -0400 Received: from mail-qt1-x834.google.com ([2607:f8b0:4864:20::834]:43470) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1hqyvP-0004lQ-92 for emacs-orgmode@gnu.org; Fri, 26 Jul 2019 08:02:15 -0400 Received: by mail-qt1-x834.google.com with SMTP id w17so7970384qto.10 for ; Fri, 26 Jul 2019 05:02:14 -0700 (PDT) In-reply-to: List-Id: "General discussions about Org-mode." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org Sender: "Emacs-orgmode" To: Martin Alsinet Cc: Dmitrii Korobeinikov , emacs-orgmode , "Berry, Charles" Hi Martin, On 2019-06-26 at 18:09 -04, Martin Alsinet 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 > =========================== > >