Subject: bug#39869: closed (Re: bug#39869: python-orator build fails)

From: [email-masked] (GNU bug Tracking System)
Date: Fri, 20 Mar 2020 21:46:02 +0000

Your bug report

#39869: python-orator build fails

which was filed against the guix package, has been closed.

The explanation is attached below, along with your original report.
If you require more details, please reply to [email-masked].

-- 
39869: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=39869
GNU Bug Tracking System
Contact [email-masked] with problems

Subject: Re: bug#39869: python-orator build fails
From: Marius Bakke <[email-masked]>
To: Maxim Cournoyer <[email-masked]>, [email-masked]
Date: Fri, 20 Mar 2020 22:45:01 +0100
List-Id: <debbugs-submit.debbugs.gnu.org>

This was a surprisingly deep rabbit hole that ended pretty
unsatisfactory with commit 51d42caa94515f43d677bdd76d53bf8bb8c7bc4e.

According to a comment in the package definition, the tests were never
supposed to run, so in the end they were just disabled.

I discovered a pattern that I hadn't seen yet in the Python ecosystem:
orator and many of its dependencies are no longer using setup.py.
Instead they have a file called pyproject.toml and calls out to a tool
called "poetry" to create distribution tarballs, run tests, etc; and it
apparently also creates a setup.py for the PyPI distribution.

I did not study poetry enough to figure out how it works, but we might
need a poetry-build-system or some such if the trend continues.  Mainly
because all packages using it seem to be stripping tests from the PyPI
release!  :-/

Subject: python-orator build fails
From: Maxim Cournoyer <[email-masked]>
To: bug-guix <[email-masked]>
Date: Mon, 02 Mar 2020 13:08:09 -0500
List-Id: <debbugs-submit.debbugs.gnu.org>

Build log extract:

--8<---------------cut here---------------start------------->8---
======================================================================
ERROR: orator.commands.migrations (unittest.loader._FailedTest)
----------------------------------------------------------------------
ImportError: Failed to import test module: orator.commands.migrations
Traceback (most recent call last):
  File "/gnu/store/78w7y0lxar70j512iqw8x3nimzj10yga-python-3.7.4/lib/python3.7/unittest/loader.py", line 470, in _find_test_path
    package = self._get_module_from_name(name)
  File "/gnu/store/78w7y0lxar70j512iqw8x3nimzj10yga-python-3.7.4/lib/python3.7/unittest/loader.py", line 377, in _get_module_from_name
    __import__(name)
  File "/tmp/guix-build-python-orator-0.9.7.drv-0/orator-0.9.7/orator/commands/migrations/__init__.py", line 3, in <module>
    from .install_command import InstallCommand
  File "/tmp/guix-build-python-orator-0.9.7.drv-0/orator-0.9.7/orator/commands/migrations/install_command.py", line 4, in <module>
    from .base_command import BaseCommand
  File "/tmp/guix-build-python-orator-0.9.7.drv-0/orator-0.9.7/orator/commands/migrations/base_command.py", line 5, in <module>
    from ..command import Command
  File "/tmp/guix-build-python-orator-0.9.7.drv-0/orator-0.9.7/orator/commands/command.py", line 4, in <module>
    from cleo import Command as BaseCommand, InputOption, ListInput
ImportError: cannot import name 'InputOption' from 'cleo' (/gnu/store/iwhbrhr49wf6gxhxlripjf4ij0y41r3x-python-cleo-0.7.6/lib/python3.7/site-packages/cleo/__init__.py)

======================================================================
ERROR: orator.commands.seeds (unittest.loader._FailedTest)
----------------------------------------------------------------------
ImportError: Failed to import test module: orator.commands.seeds
Traceback (most recent call last):
  File "/gnu/store/78w7y0lxar70j512iqw8x3nimzj10yga-python-3.7.4/lib/python3.7/unittest/loader.py", line 470, in _find_test_path
    package = self._get_module_from_name(name)
  File "/gnu/store/78w7y0lxar70j512iqw8x3nimzj10yga-python-3.7.4/lib/python3.7/unittest/loader.py", line 377, in _get_module_from_name
    __import__(name)
  File "/tmp/guix-build-python-orator-0.9.7.drv-0/orator-0.9.7/orator/commands/seeds/__init__.py", line 3, in <module>
    from .make_command import SeedersMakeCommand
  File "/tmp/guix-build-python-orator-0.9.7.drv-0/orator-0.9.7/orator/commands/seeds/make_command.py", line 7, in <module>
    from .base_command import BaseCommand
  File "/tmp/guix-build-python-orator-0.9.7.drv-0/orator-0.9.7/orator/commands/seeds/base_command.py", line 4, in <module>
    from ..command import Command
  File "/tmp/guix-build-python-orator-0.9.7.drv-0/orator-0.9.7/orator/commands/command.py", line 4, in <module>
    from cleo import Command as BaseCommand, InputOption, ListInput
ImportError: cannot import name 'InputOption' from 'cleo' (/gnu/store/iwhbrhr49wf6gxhxlripjf4ij0y41r3x-python-cleo-0.7.6/lib/python3.7/site-packages/cleo/__init__.py)

----------------------------------------------------------------------
Ran 6 tests in 0.001s

FAILED (errors=6)
Test failed: <unittest.runner.TextTestResult run=6 errors=6 failures=0>
error: Test failed: <unittest.runner.TextTestResult run=6 errors=6 failures=0>
command "python" "-c" "import setuptools, tokenize;__file__='setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\\r\\n', '\\n');f.close();exec(compile(code, __file__, 'exec'))" "test" failed with status 1
--8<---------------cut here---------------end--------------->8---

Tested on master c1febbbf94ee794d7a97dbde12102634f2b13529.