Bug 2323156 - python-pluginlib fails to build with Python 3.14: AssertionError: 1 != 0: self.assertEqual(len(e), 1)
Summary: python-pluginlib fails to build with Python 3.14: AssertionError: 1 != 0: sel...
Keywords:
Status: CLOSED RAWHIDE
Alias: None
Product: Fedora
Classification: Fedora
Component: python-pluginlib
Version: rawhide
Hardware: Unspecified
OS: Unspecified
unspecified
unspecified
Target Milestone: ---
Assignee: Avram Lubkin
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On:
Blocks: PYTHON3.14
TreeView+ depends on / blocked
 
Reported: 2024-11-01 14:29 UTC by Karolina Surma
Modified: 2024-11-24 18:44 UTC (History)
3 users (show)

Fixed In Version: python-pluginlib-0.9.4-1.fc42
Clone Of:
Environment:
Last Closed: 2024-11-24 18:44:16 UTC
Type: Bug
Embargoed:


Attachments (Terms of Use)

Description Karolina Surma 2024-11-01 14:29:42 UTC
python-pluginlib fails to build with Python 3.14.0a1.

+ /usr/bin/python3 -m unittest
......./builddir/build/BUILD/python-pluginlib-0.9.2-build/pluginlib-0.9.2/pluginlib/_parent.py:236: DeprecationWarning: 'asyncio.iscoroutinefunction' is deprecated and slated for removal in Python 3.16; use inspect.iscoroutinefunction() instead
  if iscoroutinefunction(method) and not iscoroutinefunction(submethod):
.....FFF/builddir/build/BUILD/python-pluginlib-0.9.2-build/pluginlib-0.9.2/pluginlib/_parent.py:236: DeprecationWarning: 'asyncio.iscoroutinefunction' is deprecated and slated for removal in Python 3.16; use inspect.iscoroutinefunction() instead
  if iscoroutinefunction(method) and not iscoroutinefunction(submethod):
.....F/builddir/build/BUILD/python-pluginlib-0.9.2-build/pluginlib-0.9.2/pluginlib/_parent.py:236: DeprecationWarning: 'asyncio.iscoroutinefunction' is deprecated and slated for removal in Python 3.16; use inspect.iscoroutinefunction() instead
  if iscoroutinefunction(method) and not iscoroutinefunction(submethod):
............................................................FFFFFF..F..F.................
======================================================================
FAIL: test_load_entry_points_bad (tests.test_loader.TestPluginLoader.test_load_entry_points_bad)
Raise warning and continue when entry point fails - bad package
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/builddir/build/BUILD/python-pluginlib-0.9.2-build/pluginlib-0.9.2/tests/test_loader.py", line 199, in test_load_entry_points_bad
    self.assertEqual(len(e), 1)
    ~~~~~~~~~~~~~~~~^^^^^^^^^^^
AssertionError: 2 != 1

======================================================================
FAIL: test_load_entry_points_bad2 (tests.test_loader.TestPluginLoader.test_load_entry_points_bad2)
Raise warning and continue when entry point fails - bad module
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/builddir/build/BUILD/python-pluginlib-0.9.2-build/pluginlib-0.9.2/tests/test_loader.py", line 221, in test_load_entry_points_bad2
    self.assertEqual(len(e), 1)
    ~~~~~~~~~~~~~~~~^^^^^^^^^^^
AssertionError: 2 != 1

======================================================================
FAIL: test_load_entry_points_not_mod (tests.test_loader.TestPluginLoader.test_load_entry_points_not_mod)
Raise warning and continue when entry point fails
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/builddir/build/BUILD/python-pluginlib-0.9.2-build/pluginlib-0.9.2/tests/test_loader.py", line 242, in test_load_entry_points_not_mod
    self.assertEqual(len(e), 1)
    ~~~~~~~~~~~~~~~~^^^^^^^^^^^
AssertionError: 2 != 1

======================================================================
FAIL: test_load_paths_duplicate (tests.test_loader.TestPluginLoader.test_load_paths_duplicate)
Ignore duplicate paths
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/builddir/build/BUILD/python-pluginlib-0.9.2-build/pluginlib-0.9.2/tests/test_loader.py", line 371, in test_load_paths_duplicate
    self.assertEqual(len(e), 1)
    ~~~~~~~~~~~~~~~~^^^^^^^^^^^
AssertionError: 2 != 1

======================================================================
FAIL: test_abstract_attribute (tests.test_parent.TestPluginType.test_abstract_attribute)
Attribute required in subclass
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/builddir/build/BUILD/python-pluginlib-0.9.2-build/pluginlib-0.9.2/tests/test_parent.py", line 520, in test_abstract_attribute
    self.meth(Parent)
    ~~~~~~~~~^^^^^^^^
  File "/builddir/build/BUILD/python-pluginlib-0.9.2-build/pluginlib-0.9.2/tests/test_parent.py", line 610, in meth
    self.check_method(parent_class, error, Meth, e)
    ~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/builddir/build/BUILD/python-pluginlib-0.9.2-build/pluginlib-0.9.2/tests/test_parent.py", line 587, in check_method
    self.assertEqual(len(e), 0)
    ~~~~~~~~~~~~~~~~^^^^^^^^^^^
AssertionError: 1 != 0

======================================================================
FAIL: test_abstract_classmethod (tests.test_parent.TestPluginType.test_abstract_classmethod)
Class method required in subclass
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/builddir/build/BUILD/python-pluginlib-0.9.2-build/pluginlib-0.9.2/tests/test_parent.py", line 475, in test_abstract_classmethod
    self.klass(Parent)
    ~~~~~~~~~~^^^^^^^^
  File "/builddir/build/BUILD/python-pluginlib-0.9.2-build/pluginlib-0.9.2/tests/test_parent.py", line 654, in klass
    self.check_method(parent_class, error, Klass, e)
    ~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/builddir/build/BUILD/python-pluginlib-0.9.2-build/pluginlib-0.9.2/tests/test_parent.py", line 587, in check_method
    self.assertEqual(len(e), 0)
    ~~~~~~~~~~~~~~~~^^^^^^^^^^^
AssertionError: 1 != 0

======================================================================
FAIL: test_abstract_coroutine (tests.test_parent.TestPluginType.test_abstract_coroutine)
Attribute required in subclass
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/builddir/build/BUILD/python-pluginlib-0.9.2-build/pluginlib-0.9.2/tests/test_parent.py", line 545, in test_abstract_coroutine
    self.meth(Parent, 'Does not contain required coroutine method')
    ~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/builddir/build/BUILD/python-pluginlib-0.9.2-build/pluginlib-0.9.2/tests/test_parent.py", line 610, in meth
    self.check_method(parent_class, error, Meth, e)
    ~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/builddir/build/BUILD/python-pluginlib-0.9.2-build/pluginlib-0.9.2/tests/test_parent.py", line 583, in check_method
    self.assertEqual(len(e), 1)
    ~~~~~~~~~~~~~~~~^^^^^^^^^^^
AssertionError: 2 != 1

======================================================================
FAIL: test_abstract_method (tests.test_parent.TestPluginType.test_abstract_method)
Method required in subclass
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/builddir/build/BUILD/python-pluginlib-0.9.2-build/pluginlib-0.9.2/tests/test_parent.py", line 390, in test_abstract_method
    self.meth(Parent)
    ~~~~~~~~~^^^^^^^^
  File "/builddir/build/BUILD/python-pluginlib-0.9.2-build/pluginlib-0.9.2/tests/test_parent.py", line 610, in meth
    self.check_method(parent_class, error, Meth, e)
    ~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/builddir/build/BUILD/python-pluginlib-0.9.2-build/pluginlib-0.9.2/tests/test_parent.py", line 587, in check_method
    self.assertEqual(len(e), 0)
    ~~~~~~~~~~~~~~~~^^^^^^^^^^^
AssertionError: 1 != 0

======================================================================
FAIL: test_abstract_property (tests.test_parent.TestPluginType.test_abstract_property)
Property required in subclass
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/builddir/build/BUILD/python-pluginlib-0.9.2-build/pluginlib-0.9.2/tests/test_parent.py", line 507, in test_abstract_property
    self.prop(Parent)
    ~~~~~~~~~^^^^^^^^
  File "/builddir/build/BUILD/python-pluginlib-0.9.2-build/pluginlib-0.9.2/tests/test_parent.py", line 676, in prop
    self.check_method(parent_class, error, Prop, e)
    ~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/builddir/build/BUILD/python-pluginlib-0.9.2-build/pluginlib-0.9.2/tests/test_parent.py", line 587, in check_method
    self.assertEqual(len(e), 0)
    ~~~~~~~~~~~~~~~~^^^^^^^^^^^
AssertionError: 1 != 0

======================================================================
FAIL: test_abstract_staticmethod (tests.test_parent.TestPluginType.test_abstract_staticmethod)
Static method required in subclass
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/builddir/build/BUILD/python-pluginlib-0.9.2-build/pluginlib-0.9.2/tests/test_parent.py", line 443, in test_abstract_staticmethod
    self.static(Parent)
    ~~~~~~~~~~~^^^^^^^^
  File "/builddir/build/BUILD/python-pluginlib-0.9.2-build/pluginlib-0.9.2/tests/test_parent.py", line 640, in static
    self.check_method(parent_class, error, Static, e)
    ~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/builddir/build/BUILD/python-pluginlib-0.9.2-build/pluginlib-0.9.2/tests/test_parent.py", line 587, in check_method
    self.assertEqual(len(e), 0)
    ~~~~~~~~~~~~~~~~^^^^^^^^^^^
AssertionError: 1 != 0

======================================================================
FAIL: test_multiple_methods (tests.test_parent.TestPluginType.test_multiple_methods)
Method required in subclass
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/builddir/build/BUILD/python-pluginlib-0.9.2-build/pluginlib-0.9.2/tests/test_parent.py", line 415, in test_multiple_methods
    self.multiple(Parent)
    ~~~~~~~~~~~~~^^^^^^^^
  File "/builddir/build/BUILD/python-pluginlib-0.9.2-build/pluginlib-0.9.2/tests/test_parent.py", line 626, in multiple
    self.check_method(parent_class, error, Meth, e)
    ~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/builddir/build/BUILD/python-pluginlib-0.9.2-build/pluginlib-0.9.2/tests/test_parent.py", line 587, in check_method
    self.assertEqual(len(e), 0)
    ~~~~~~~~~~~~~~~~^^^^^^^^^^^
AssertionError: 1 != 0

======================================================================
FAIL: test_type_annotations (tests.test_parent.TestPluginType.test_type_annotations)
If parent and child have annotations they must match
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/builddir/build/BUILD/python-pluginlib-0.9.2-build/pluginlib-0.9.2/tests/test_parent.py", line 570, in test_type_annotations
    self.meth(Parent)
    ~~~~~~~~~^^^^^^^^
  File "/builddir/build/BUILD/python-pluginlib-0.9.2-build/pluginlib-0.9.2/tests/test_parent.py", line 610, in meth
    self.check_method(parent_class, error, Meth, e)
    ~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/builddir/build/BUILD/python-pluginlib-0.9.2-build/pluginlib-0.9.2/tests/test_parent.py", line 587, in check_method
    self.assertEqual(len(e), 0)
    ~~~~~~~~~~~~~~~~^^^^^^^^^^^
AssertionError: 1 != 0

----------------------------------------------------------------------
Ran 110 tests in 0.051s

FAILED (failures=12)

https://docs.python.org/3.14/whatsnew/3.14.html

For the build logs, see:
https://copr-be.cloud.fedoraproject.org/results/@python/python3.14/fedora-rawhide-x86_64/08189214-python-pluginlib/

For all our attempts to build python-pluginlib with Python 3.14, see:
https://copr.fedorainfracloud.org/coprs/g/python/python3.14/package/python-pluginlib/

Testing and mass rebuild of packages is happening in copr.
You can follow these instructions to test locally in mock if your package builds with Python 3.14:
https://copr.fedorainfracloud.org/coprs/g/python/python3.14/

Let us know here if you have any questions.

Python 3.14 is planned to be included in Fedora 43.
To make that update smoother, we're building Fedora packages with all pre-releases of Python 3.14.
A build failure prevents us from testing all dependent packages (transitive [Build]Requires),
so if this package is required a lot, it's important for us to get it fixed soon.

We'd appreciate help from the people who know this package best,
but if you don't want to work on this now, let us know so we can try to work around it on our side.

Comment 1 Avram Lubkin 2024-11-24 18:04:22 UTC
0.9.4 built for Rawhide


Note You need to log in before you can comment on or make changes to this bug.