Package: src:rally-openstack
Version: 3.0.0-8
Severity: serious
Tags: ftbfs forky sid

Dear maintainer:

During a rebuild of all packages in unstable, this package failed to build.

Below you will find the last part of the build log (probably the most
relevant part, but not necessarily). If required, the full build log
is available here:

https://people.debian.org/~sanvila/build-logs/202512/

About the archive rebuild: The build was made on virtual machines from AWS,
using sbuild and a reduced chroot with only build-essential packages.

If you cannot reproduce the bug please contact me privately, as I
am willing to provide ssh access to a virtual machine where the bug is
fully reproducible.

If this is really a bug in one of the build-depends, please use
reassign and add an affects on src:rally-openstack, so that this is still
visible in the BTS web page for this package.

Thanks.

--------------------------------------------------------------------------------
[...]
 debian/rules clean
make: pyversions: No such file or directory
py3versions: no X-Python3-Version in control file, using supported versions
dh clean --buildsystem=pybuild --with python3
   debian/rules override_dh_auto_clean
make[1]: Entering directory '/<<PKGBUILDDIR>>'
make[1]: pyversions: No such file or directory
py3versions: no X-Python3-Version in control file, using supported versions
python3 setup.py clean
/usr/lib/python3/dist-packages/setuptools/dist.py:759: 
SetuptoolsDeprecationWarning: License classifiers are deprecated.
!!

        
********************************************************************************
        Please consider removing the following classifiers in favor of a SPDX 
license expression:


[... snipped ...]

    def test__get_value_add(self):
        self.assertEqual(
            "expression.some.crazy.add",
>           self.visitor._get_value(
                self._parse_expr("EXPR + '.some.crazy.add'")
            )
        )

tests/unit/test_test_mock.py:121: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <tests.unit.test_mock.FuncMockArgsDecoratorsChecker object at 
0x7f0163a64bd0>
node = BinOp(left=Name(id='EXPR', ctx=Load()), op=Add(), 
right=Constant(value='.some.crazy.add', kind=None))

    def _get_value(self, node):
        """Get mock.patch string argument regexp.
    
        It is either a string (if we are lucky), string-format of
        ("%s.something" % GVAL) or (GVAL + ".something")
        """
        val = None
>       if isinstance(node, ast.Str):
                            ^^^^^^^
E       AttributeError: module 'ast' has no attribute 'Str'

tests/unit/test_mock.py:116: AttributeError
________ FuncMockArgsDecoratorsCheckerTestCase.test__get_value_asserts _________

self = <tests.unit.test_test_mock.FuncMockArgsDecoratorsCheckerTestCase 
testMethod=test__get_value_asserts>

    def test__get_value_asserts(self):
>       self.assertRaises(
            ValueError,
            self.visitor._get_value,
            self._parse_expr("EXPR % 'abc'")
        )

tests/unit/test_test_mock.py:142: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/unit/test.py:60: in assertRaises
    callable(*args, **kwargs)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

    def _get_value(self, node):
        """Get mock.patch string argument regexp.
    
        It is either a string (if we are lucky), string-format of
        ("%s.something" % GVAL) or (GVAL + ".something")
        """
        val = None
>       if isinstance(node, ast.Str):
                            ^^^^^^^
E       AttributeError: module 'ast' has no attribute 'Str'

tests/unit/test_mock.py:116: AttributeError
_________ FuncMockArgsDecoratorsCheckerTestCase.test__get_value_global _________

self = <tests.unit.test_test_mock.FuncMockArgsDecoratorsCheckerTestCase 
testMethod=test__get_value_global>

    def test__get_value_global(self):
        self.assertEqual(
            "expression",
>           self.visitor._get_value(
                self._parse_expr("EXPR")
            )
        )

tests/unit/test_test_mock.py:129: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <tests.unit.test_mock.FuncMockArgsDecoratorsChecker object at 
0x7f01649b5ef0>
node = Name(id='EXPR', ctx=Load())

    def _get_value(self, node):
        """Get mock.patch string argument regexp.
    
        It is either a string (if we are lucky), string-format of
        ("%s.something" % GVAL) or (GVAL + ".something")
        """
        val = None
>       if isinstance(node, ast.Str):
                            ^^^^^^^
E       AttributeError: module 'ast' has no attribute 'Str'

tests/unit/test_mock.py:116: AttributeError
__________ FuncMockArgsDecoratorsCheckerTestCase.test__get_value_mod ___________

self = <tests.unit.test_test_mock.FuncMockArgsDecoratorsCheckerTestCase 
testMethod=test__get_value_mod>

    def test__get_value_mod(self):
        self.assertEqual(
            "some.crazy.mod.expression",
>           self.visitor._get_value(
                self._parse_expr("'some.crazy.mod.%s' % EXPR")
            )
        )

tests/unit/test_test_mock.py:113: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <tests.unit.test_mock.FuncMockArgsDecoratorsChecker object at 
0x7f0166b5a3f0>
node = BinOp(left=Constant(value='some.crazy.mod.%s', kind=None), op=Mod(), 
right=Name(id='EXPR', ctx=Load()))

    def _get_value(self, node):
        """Get mock.patch string argument regexp.
    
        It is either a string (if we are lucky), string-format of
        ("%s.something" % GVAL) or (GVAL + ".something")
        """
        val = None
>       if isinstance(node, ast.Str):
                            ^^^^^^^
E       AttributeError: module 'ast' has no attribute 'Str'

tests/unit/test_mock.py:116: AttributeError
__________ FuncMockArgsDecoratorsCheckerTestCase.test__get_value_none __________

self = <tests.unit.test_test_mock.FuncMockArgsDecoratorsCheckerTestCase 
testMethod=test__get_value_none>

    def test__get_value_none(self):
>       self.assertRaises(
            ValueError,
            self.visitor._get_value,
            ast.parse("import abc")
        )

tests/unit/test_test_mock.py:135: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/unit/test.py:60: in assertRaises
    callable(*args, **kwargs)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

    def _get_value(self, node):
        """Get mock.patch string argument regexp.
    
        It is either a string (if we are lucky), string-format of
        ("%s.something" % GVAL) or (GVAL + ".something")
        """
        val = None
>       if isinstance(node, ast.Str):
                            ^^^^^^^
E       AttributeError: module 'ast' has no attribute 'Str'

tests/unit/test_mock.py:116: AttributeError
__________ FuncMockArgsDecoratorsCheckerTestCase.test__get_value_str ___________

self = <tests.unit.test_test_mock.FuncMockArgsDecoratorsCheckerTestCase 
testMethod=test__get_value_str>

    def test__get_value_str(self):
        self.assertEqual(
            "not.your.fault",
>           self.visitor._get_value(self._parse_expr("'not.your.fault'"))
        )

tests/unit/test_test_mock.py:107: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <tests.unit.test_mock.FuncMockArgsDecoratorsChecker object at 
0x7f01668213d0>
node = Constant(value='not.your.fault', kind=None)

    def _get_value(self, node):
        """Get mock.patch string argument regexp.
    
        It is either a string (if we are lucky), string-format of
        ("%s.something" % GVAL) or (GVAL + ".something")
        """
        val = None
>       if isinstance(node, ast.Str):
                            ^^^^^^^
E       AttributeError: module 'ast' has no attribute 'Str'

tests/unit/test_mock.py:116: AttributeError
_______________ FuncMockArgsDecoratorsCheckerTestCase.test_visit _______________

self = <tests.unit.test_test_mock.FuncMockArgsDecoratorsCheckerTestCase 
testMethod=test_visit>

    def test_visit(self):
        self.visitor.classname_python = "my_class_object"
>       self.visitor.visit(self.tree)

tests/unit/test_test_mock.py:439: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
/usr/lib/python3.14/ast.py:506: in visit
    return visitor(node)
           ^^^^^^^^^^^^^
tests/unit/test_mock.py:249: in visit_FunctionDef
    mock_decs = self._get_mock_decorators_variants(node)
                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
tests/unit/test_mock.py:194: in _get_mock_decorators_variants
    + self._get_value(decorator.args[1]))
      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <tests.unit.test_mock.FuncMockArgsDecoratorsChecker object at 
0x7f0166d417f0>
node = Constant(value='abc', kind=None)

    def _get_value(self, node):
        """Get mock.patch string argument regexp.
    
        It is either a string (if we are lucky), string-format of
        ("%s.something" % GVAL) or (GVAL + ".something")
        """
        val = None
>       if isinstance(node, ast.Str):
                            ^^^^^^^
E       AttributeError: module 'ast' has no attribute 'Str'

tests/unit/test_mock.py:116: AttributeError
_____________ FuncMockArgsDecoratorsCheckerTestCase.test_visit_ok ______________

self = <tests.unit.test_test_mock.FuncMockArgsDecoratorsCheckerTestCase 
testMethod=test_visit_ok>

        def test_visit_ok(self):
            self.visitor.classname_python = "my_class_object"
>           self.visitor.visit(
                self._parse_expr(
                    """
    class MyClassObjectTestCase(object):
        @mock.patch("foo.bar.MyClassObject.yep")
        @mock.patch("foo.bar.ClassName.ok")
        @mock.patch.object(pkg.FooClass, "method")
        def test_mockings(self, mock_pkg_foo_class_method, mock_class_name_ok,
                          mock_yep):
            pass
    """)
            )

tests/unit/test_test_mock.py:460: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
/usr/lib/python3.14/ast.py:506: in visit
    return visitor(node)
           ^^^^^^^^^^^^^
tests/unit/test_mock.py:241: in visit_ClassDef
    self.generic_visit(node)
/usr/lib/python3.14/ast.py:514: in generic_visit
    self.visit(item)
/usr/lib/python3.14/ast.py:506: in visit
    return visitor(node)
           ^^^^^^^^^^^^^
tests/unit/test_mock.py:249: in visit_FunctionDef
    mock_decs = self._get_mock_decorators_variants(node)
                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
tests/unit/test_mock.py:194: in _get_mock_decorators_variants
    + self._get_value(decorator.args[1]))
      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <tests.unit.test_mock.FuncMockArgsDecoratorsChecker object at 
0x7f01675acc50>
node = Constant(value='method', kind=None)

    def _get_value(self, node):
        """Get mock.patch string argument regexp.
    
        It is either a string (if we are lucky), string-format of
        ("%s.something" % GVAL) or (GVAL + ".something")
        """
        val = None
>       if isinstance(node, ast.Str):
                            ^^^^^^^
E       AttributeError: module 'ast' has no attribute 'Str'

tests/unit/test_mock.py:116: AttributeError
=========================== short test summary info ============================
FAILED 
tests/unit/test_mock.py::MockUsageCheckerTestCase::test_mock_decorators_and_args
FAILED 
tests/unit/test_test_mock.py::FuncMockArgsDecoratorsCheckerTestCase::test__get_mock_decorators_variants
FAILED 
tests/unit/test_test_mock.py::FuncMockArgsDecoratorsCheckerTestCase::test__get_value_add
FAILED 
tests/unit/test_test_mock.py::FuncMockArgsDecoratorsCheckerTestCase::test__get_value_asserts
FAILED 
tests/unit/test_test_mock.py::FuncMockArgsDecoratorsCheckerTestCase::test__get_value_global
FAILED 
tests/unit/test_test_mock.py::FuncMockArgsDecoratorsCheckerTestCase::test__get_value_mod
FAILED 
tests/unit/test_test_mock.py::FuncMockArgsDecoratorsCheckerTestCase::test__get_value_none
FAILED 
tests/unit/test_test_mock.py::FuncMockArgsDecoratorsCheckerTestCase::test__get_value_str
FAILED 
tests/unit/test_test_mock.py::FuncMockArgsDecoratorsCheckerTestCase::test_visit
FAILED 
tests/unit/test_test_mock.py::FuncMockArgsDecoratorsCheckerTestCase::test_visit_ok
================ 10 failed, 2124 passed, 5 deselected in 16.58s ================
make[1]: *** [debian/rules:27: override_dh_auto_install] Error 1
make[1]: Leaving directory '/<<PKGBUILDDIR>>'
make: *** [debian/rules:6: binary] Error 2
dpkg-buildpackage: error: debian/rules binary subprocess returned exit status 2
--------------------------------------------------------------------------------

Reply via email to