Dmitrii, 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. * 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 =========================== On Wed, Apr 24, 2019 at 2:19 PM Dmitrii Korobeinikov wrote: > Sorry for not answering these two days. > > You are right, that's an option. > But I just don't think that's the best possible one - for usability. > > Introducing this would imply architectural decisions, so it might not be > immediately clear if it's right or not. > Especially that the improvement might not seem that big. > So, I understand that. > > I have proposed buffer lenses today and they seem like something that can > solve the issue from the user side. Hopefully they will get some traction. > > пн, 22 апр. 2019 г. в 23:31, Berry, Charles : > >> >> >> > On Apr 22, 2019, at 10:15 AM, Dmitrii Korobeinikov >> wrote: >> > >> > Thank you! >> > That's a handy technique and it does help. >> > As I understand, there's no way to extend that to multiple lines? >> >> AFAICS, no there is no way to split the :epilogue arg to multiple lines. >> >> Of course, you can always follow a src block that provides a function >> with another src block that imports the code via noweb and then tests the >> function with as many lines of code as you need. >> >> Chuck >> >> >> >>