python-cssutils fails to build with Python 3.10.0a7. =================================== FAILURES =================================== ______________________ PropertyTestCase.test_literalname _______________________ self = <cssutils.tests.test_property.PropertyTestCase testMethod=test_literalname> excClass = <class 'AttributeError'>, msg = "can't set attribute" callableObj = <method-wrapper '__setattr__' of Property object at 0x7ffa5e2acc70> args = ('literalname', 'color'), kwargs = {} excMsg = "can't set attribute 'literalname'" def assertRaisesMsg(self, excClass, msg, callableObj, *args, **kwargs): """ Just like unittest.TestCase.assertRaises, but checks that the message is right too. Usage:: self.assertRaisesMsg( MyException, "Exception message", my_function, (arg1, arg2) ) from http://www.nedbatchelder.com/blog/200609.html#e20060905T064418 """ try: > callableObj(*args, **kwargs) E AttributeError: can't set attribute 'literalname' /builddir/build/BUILD/cssutils-2.2.0/cssutils/tests/basetest.py:127: AttributeError During handling of the above exception, another exception occurred: self = <cssutils.tests.test_property.PropertyTestCase testMethod=test_literalname> def test_literalname(self): "Property.literalname" p = cssutils.css.property.Property(r'c\olor', 'red') self.assertEqual(r'c\olor', p.literalname) > self.assertRaisesMsg( AttributeError, "can't set attribute", p.__setattr__, 'literalname', 'color' ) /builddir/build/BUILD/cssutils-2.2.0/cssutils/tests/test_property.py:162: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <cssutils.tests.test_property.PropertyTestCase testMethod=test_literalname> excClass = <class 'AttributeError'>, msg = "can't set attribute" callableObj = <method-wrapper '__setattr__' of Property object at 0x7ffa5e2acc70> args = ('literalname', 'color'), kwargs = {} excMsg = "can't set attribute 'literalname'" def assertRaisesMsg(self, excClass, msg, callableObj, *args, **kwargs): """ Just like unittest.TestCase.assertRaises, but checks that the message is right too. Usage:: self.assertRaisesMsg( MyException, "Exception message", my_function, (arg1, arg2) ) from http://www.nedbatchelder.com/blog/200609.html#e20060905T064418 """ try: callableObj(*args, **kwargs) except excClass as exc: excMsg = str(exc) if not msg: # No message provided: any message is fine. return elif excMsg == msg: # Message provided, and we got the right message: passes. return else: # Message provided, and it didn't match: fail! > raise self.failureException( "Right exception, wrong message: got '%s' instead of '%s'" % (excMsg, msg) ) E AssertionError: Right exception, wrong message: got 'can't set attribute 'literalname'' instead of 'can't set attribute' /builddir/build/BUILD/cssutils-2.2.0/cssutils/tests/basetest.py:138: AssertionError ______________________ SelectorTestCase.test_specificity _______________________ self = <cssutils.tests.test_selector.SelectorTestCase testMethod=test_specificity> excClass = <class 'AttributeError'>, msg = "can't set attribute" callableObj = <function SelectorTestCase.test_specificity.<locals>._set at 0x7ffa5e565e10> args = (), kwargs = {}, excMsg = "can't set attribute 'specificity'" def assertRaisesMsg(self, excClass, msg, callableObj, *args, **kwargs): """ Just like unittest.TestCase.assertRaises, but checks that the message is right too. Usage:: self.assertRaisesMsg( MyException, "Exception message", my_function, (arg1, arg2) ) from http://www.nedbatchelder.com/blog/200609.html#e20060905T064418 """ try: > callableObj(*args, **kwargs) /builddir/build/BUILD/cssutils-2.2.0/cssutils/tests/basetest.py:127: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ def _set(): > selector.specificity = 1 E AttributeError: can't set attribute 'specificity' /builddir/build/BUILD/cssutils-2.2.0/cssutils/tests/test_selector.py:386: AttributeError During handling of the above exception, another exception occurred: self = <cssutils.tests.test_selector.SelectorTestCase testMethod=test_specificity> def test_specificity(self): "Selector.specificity" selector = cssutils.css.Selector() # readonly def _set(): selector.specificity = 1 > self.assertRaisesMsg(AttributeError, "can't set attribute", _set) /builddir/build/BUILD/cssutils-2.2.0/cssutils/tests/test_selector.py:388: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <cssutils.tests.test_selector.SelectorTestCase testMethod=test_specificity> excClass = <class 'AttributeError'>, msg = "can't set attribute" callableObj = <function SelectorTestCase.test_specificity.<locals>._set at 0x7ffa5e565e10> args = (), kwargs = {}, excMsg = "can't set attribute 'specificity'" def assertRaisesMsg(self, excClass, msg, callableObj, *args, **kwargs): """ Just like unittest.TestCase.assertRaises, but checks that the message is right too. Usage:: self.assertRaisesMsg( MyException, "Exception message", my_function, (arg1, arg2) ) from http://www.nedbatchelder.com/blog/200609.html#e20060905T064418 """ try: callableObj(*args, **kwargs) except excClass as exc: excMsg = str(exc) if not msg: # No message provided: any message is fine. return elif excMsg == msg: # Message provided, and we got the right message: passes. return else: # Message provided, and it didn't match: fail! > raise self.failureException( "Right exception, wrong message: got '%s' instead of '%s'" % (excMsg, msg) ) E AssertionError: Right exception, wrong message: got 'can't set attribute 'specificity'' instead of 'can't set attribute' /builddir/build/BUILD/cssutils-2.2.0/cssutils/tests/basetest.py:138: AssertionError =========================== short test summary info ============================ FAILED cssutils/tests/test_property.py::PropertyTestCase::test_literalname - ... FAILED cssutils/tests/test_selector.py::SelectorTestCase::test_specificity - ... ======================== 2 failed, 389 passed in 4.12s ========================= For the build logs, see: https://copr-be.cloud.fedoraproject.org/results/@python/python3.10/fedora-rawhide-x86_64/02125392-python-cssutils/ For all our attempts to build python-cssutils with Python 3.10, see: https://copr.fedorainfracloud.org/coprs/g/python/python3.10/package/python-cssutils/ 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.10: https://copr.fedorainfracloud.org/coprs/g/python/python3.10/ Let us know here if you have any questions. Python 3.10 will be included in Fedora 35. To make that update smoother, we're building Fedora packages with early pre-releases of Python 3.10. 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.
This is a mass-posted update. Sorry if it is not 100% accurate to this bugzilla. The Python 3.10 rebuild is in progress in a Koji side tag. If you manage to fix the problem, please commit the fix in the rawhide branch, but don't build the package in regular rawhide. You can either build the package in the side tag, with: $ fedpkg build --target=f35-python Or you can the build and we will eventually build it for you. Note that the rebuild is still in progress, so not all (build) dependencies of this package might be available right away. Thanks. See also https://fedoraproject.org/wiki/Changes/Python3.10 If you have general questions about the rebuild, please use this mailing list thread: https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.org/thread/G47SGOYIQLRDTWGOSLSWERZSSHXDEDH5/
The f35-python side tag has been merged to Rawhide. From now on, build as you would normally build.
*** Bug 1968942 has been marked as a duplicate of this bug. ***
Hello, This is the first reminder (step 3 from https://docs.fedoraproject.org/en-US/fesco/Fails_to_build_from_source_Fails_to_install/#_package_removal_for_long_standing_ftbfs_and_fti_bugs). If you know about this problem and are planning on fixing it, please acknowledge so by setting the bug status to ASSIGNED. If you don't have time to maintain this package, consider orphaning it, so maintainers of dependent packages realize the problem.
> AssertionError: Right exception, wrong message: got 'can't set attribute 'specificity'' instead of 'can't set attribute' This is an exception message change. Exact wording of exception messages is not considered part of the API. The test should be adapted to check for a moe relaxed regex instead of a specific message. Anyway, this is a problem in tests, so if not feeling like fixing it, consider skipping the 2 tests temporarily and reporting to upstream, which appears affected as well.
Miro, I just pushed an update to skip the failing tests. Sorry if I have interrupted your or any other's work on this package. Also, if my fix is not good, please fix it by pushing another update to this package. Thanks.
Thanks. I'd appreciate if you could report this to upstream, so we can get an actual fix later. Unblocking the relevant trackers, but keeping open for that upstream report.
Upstream issue: https://github.com/jaraco/cssutils/issues/12
Thanks.