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

Re: Help needed: Bug#802354: python-matplotlib-venn: FTBFS: AttributeError: can't set attribute



Hi Konstantin,

the full story of the problem with tests can be read here:

   https://bugs.debian.org/802354

I'll keep you updated if we find a solution but may be you might have
one yourself and can help solving the issue.

On Tue, Oct 20, 2015 at 07:37:57AM +0200, Olivier Sallou wrote:
> > The package fails to build:
> >
> > ========================== 49 passed in 1.17 seconds ===========================
> > 	pybuild --test --test-pytest -i python{version} -p 3.4 --test --system=custom "--test-args=cp -a README.rst {home_dir}/build && cd {home_dir}/build && {interpreter} /python-matplotlib-venn-0.11/setup.py test && rm README.rst" --dir .
> > I: pybuild base:170: cp -a README.rst /python-matplotlib-venn-0.11/.pybuild/pythonX.Y_3.4/build && cd /python-matplotlib-venn-0.11/.pybuild/pythonX.Y_3.4/build && python3.4 /python-matplotlib-venn-0.11/setup.py test && rm README.rst
> > running test
> > Traceback (most recent call last):
> >   File "/python-matplotlib-venn-0.11/setup.py", line 56, in <module>
> >     entry_points=''
> I am not an expert, but it seems that entry_points is expected to be a
> dict ( = {} ) . As it is empty, I think it could just be removed.

The problematic chunk is probably not entry_points but rather

   self.test_args = []
 
> Olivier
> >   File "/usr/lib/python3.4/distutils/core.py", line 148, in setup
> >     dist.run_commands()
> >   File "/usr/lib/python3.4/distutils/dist.py", line 955, in run_commands
> >     self.run_command(cmd)
> >   File "/usr/lib/python3.4/distutils/dist.py", line 973, in run_command
> >     cmd_obj.ensure_finalized()
> >   File "/usr/lib/python3.4/distutils/cmd.py", line 107, in ensure_finalized
> >     self.finalize_options()
> >   File "/python-matplotlib-venn-0.11/setup.py", line 21, in finalize_options
> >     self.test_args = []
> > AttributeError: can't set attribute

I tried a web search for this kind of error and found

   https://github.com/marshmallow-code/marshmallow/issues/300

which was solved in this patch

   https://github.com/marshmallow-code/marshmallow/commit/1dbcae9c439d1a268717feb089351fc3c5180ac3#diff-2eeaed663bd0d25b7e608891384b7298

I tried to implement this idea in python-matplotlib-venn but the change
relies on the existence of a dir tests/ which is not part of the download
tarball (but of the upstream Git repository[1]).

If I apply the attached patch *and* copy the tests/ dir from upstream
Git repository I get


$ python3.4 setup.py test
running test
Searching for pytest
Best match: pytest 2.8.2
Processing pytest-2.8.2-py3.4.egg

Using /home/andreas/debian-maintain/repack/python-matplotlib-venn/python-matplotlib-venn-0.11/.eggs/pytest-2.8.2-py3.4.egg
Searching for py>=1.4.29
Best match: py 1.4.30
Processing py-1.4.30-py3.4.egg

Using /home/andreas/debian-maintain/repack/python-matplotlib-venn/python-matplotlib-venn-0.11/.eggs/py-1.4.30-py3.4.egg
running egg_info
writing dependency_links to matplotlib_venn.egg-info/dependency_links.txt
writing top-level names to matplotlib_venn.egg-info/top_level.txt
writing requirements to matplotlib_venn.egg-info/requires.txt
writing matplotlib_venn.egg-info/PKG-INFO
reading manifest file 'matplotlib_venn.egg-info/SOURCES.txt'
reading manifest template 'MANIFEST.in'
writing manifest file 'matplotlib_venn.egg-info/SOURCES.txt'
running build_ext

----------------------------------------------------------------------
Ran 0 tests in 0.000s

OK


Hmmm, doing all the things without any test run does not seem sensible.

I'm out of ideas now and any help would be welcome.

Kind regards

       Andreas.

[1] https://github.com/konstantint/matplotlib-venn

-- 
http://fam-tille.de
Description: https://github.com/marshmallow-code/marshmallow/commit/1dbcae9c439d1a268717feb089351fc3c5180ac3#diff-2eeaed663bd0d25b7e608891384b7298
Ends-Up-in:
running build_ext
Traceback (most recent call last):
  File "/build/python-matplotlib-venn-0.11/setup.py", line 41, in <module>
    test_suite='tests'
  File "/usr/lib/python2.7/distutils/core.py", line 151, in setup
    dist.run_commands()
  File "/usr/lib/python2.7/distutils/dist.py", line 953, in run_commands
    self.run_command(cmd)
  File "/usr/lib/python2.7/distutils/dist.py", line 972, in run_command
    cmd_obj.run()
  File "/usr/lib/python2.7/dist-packages/setuptools/command/test.py", line 146, in run
    self.with_project_on_sys_path(self.run_tests)
  File "/usr/lib/python2.7/dist-packages/setuptools/command/test.py", line 127, in with_project_on_sys_path
    func()
  File "/usr/lib/python2.7/dist-packages/setuptools/command/test.py", line 167, in run_tests
    testRunner=self._resolve_as_ep(self.test_runner),
  File "/usr/lib/python2.7/unittest/main.py", line 94, in __init__
    self.parseArgs(argv)
  File "/usr/lib/python2.7/unittest/main.py", line 149, in parseArgs
    self.createTests()
  File "/usr/lib/python2.7/unittest/main.py", line 158, in createTests
    self.module)
  File "/usr/lib/python2.7/unittest/loader.py", line 130, in loadTestsFromNames
    suites = [self.loadTestsFromName(name, module) for name in names]
  File "/usr/lib/python2.7/unittest/loader.py", line 91, in loadTestsFromName
    module = __import__('.'.join(parts_copy))
ImportError: No module named tests
E: pybuild pybuild:262: test: plugin custom failed with: exit code=1: cp -a README.rst /build/python-matplotlib-venn-0.11/.pybuild/pythonX.Y_2.7/build && cd /build/python-matplotlib-venn-0.11/.pybuild/pythonX.Y_2.7/build && python2.7 /build/python-matplotlib-venn-0.11/setup.py test && rm README.rst
dh_auto_test: pybuild --test --test-pytest -i python{version} -p 2.7 --test --system=custom --test-args=cp -a README.rst {home_dir}/build && cd {home_dir}/build && {interpreter} /build/python-matplotlib-venn-0.11/setup.py test && rm README.rst --dir . returned exit code 13

--- a/setup.py
+++ b/setup.py
@@ -12,20 +12,6 @@ Licensed under MIT license.
 
 from setuptools import setup, find_packages
 
-from setuptools.command.test import test as TestCommand
-
-
-class PyTest(TestCommand):
-    def finalize_options(self):
-        TestCommand.finalize_options(self)
-        self.test_args = []
-        self.test_suite = True
-
-    def run_tests(self):
-        import sys
-        import pytest  # import here, cause outside the eggs aren't loaded
-        sys.exit(pytest.main(self.test_args))
-
 version = '0.11'
 
 setup(name='matplotlib-venn',
@@ -52,6 +38,5 @@ setup(name='matplotlib-venn',
       zip_safe=True,
       install_requires=['matplotlib', 'numpy', 'scipy'],
       tests_require=['pytest'],
-      cmdclass={'test': PyTest},
-      entry_points=''
+      test_suite='tests'
       )

Reply to: