Bug#975215: cif2cell: FTBFS: test failed
Lucas Nussbaum
lucas at debian.org
Thu Nov 19 09:51:33 GMT 2020
Source: cif2cell
Version: 2.0.0a1+dfsg-3
Severity: serious
Justification: FTBFS on amd64
Tags: bullseye sid ftbfs
Usertags: ftbfs-20201119 ftbfs-bullseye
Hi,
During a rebuild of all packages in sid, your package failed to build
on amd64.
Relevant part (hopefully):
> make[1]: Entering directory '/<<PKGBUILDDIR>>'
> PYTHONPATH=. pytest-3
> ============================= test session starts ==============================
> platform linux -- Python 3.9.0+, pytest-4.6.11, py-1.9.0, pluggy-0.13.0
> rootdir: /<<PKGBUILDDIR>>
> collected 7 items
>
> tests/test_cif2cell.py FFFFFFF [100%]
>
> =================================== FAILURES ===================================
> _ test_parse[/<<PKGBUILDDIR>>/tests/../cifs/gamma-Pu.cif] _
>
> cif_file = '/<<PKGBUILDDIR>>/tests/../cifs/gamma-Pu.cif'
>
> @pytest.mark.skipif(sys.version_info < (3, 6), reason="requires python3.6 or higher")
> @pytest.mark.parametrize("cif_file", CIF_FILES)
> def test_parse(cif_file):
> """Test running cif2cell on each CIF file in /cifs."""
> if sys.version_info < (3,0) and 'SiC.cif' in cif_file:
> pytest.skip(reason='skip test for files with unicode content under python 2.7.' +
> 'see https://github.com/torbjornbjorkman/cif2cell/issues/7')
>
> > result = run_cif2cell([cif_file])
>
> tests/test_cif2cell.py:23:
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
> tests/test_cif2cell.py:13: in run_cif2cell
> return subprocess.check_output(['./binaries/cif2cell'] + args, stderr=subprocess.STDOUT).decode('utf8')
> /usr/lib/python3.9/subprocess.py:420: in check_output
> return run(*popenargs, stdout=PIPE, timeout=timeout, check=True,
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
>
> input = None, capture_output = False, timeout = None, check = True
> popenargs = (['./binaries/cif2cell', '/<<PKGBUILDDIR>>/tests/../cifs/gamma-Pu.cif'],)
> kwargs = {'stderr': -2, 'stdout': -1}
> process = <Popen: returncode: 1 args: ['./binaries/cif2cell', '/<<BUILDDIR>>/...>
> stdout = b'Traceback (most recent call last):\n File "/<<PKGBUILDDIR>>/./binaries/cif2cell", line ...m fractions import gcd\nImportError: cannot import name \'gcd\' from \'fractions\' (/usr/lib/python3.9/fractions.py)\n'
> stderr = None, retcode = 1
>
> def run(*popenargs,
> input=None, capture_output=False, timeout=None, check=False, **kwargs):
> """Run command with arguments and return a CompletedProcess instance.
>
> The returned instance will have attributes args, returncode, stdout and
> stderr. By default, stdout and stderr are not captured, and those attributes
> will be None. Pass stdout=PIPE and/or stderr=PIPE in order to capture them.
>
> If check is True and the exit code was non-zero, it raises a
> CalledProcessError. The CalledProcessError object will have the return code
> in the returncode attribute, and output & stderr attributes if those streams
> were captured.
>
> If timeout is given, and the process takes too long, a TimeoutExpired
> exception will be raised.
>
> There is an optional argument "input", allowing you to
> pass bytes or a string to the subprocess's stdin. If you use this argument
> you may not also use the Popen constructor's "stdin" argument, as
> it will be used internally.
>
> By default, all communication is in bytes, and therefore any "input" should
> be bytes, and the stdout and stderr will be bytes. If in text mode, any
> "input" should be a string, and stdout and stderr will be strings decoded
> according to locale encoding, or by "encoding" if set. Text mode is
> triggered by setting any of text, encoding, errors or universal_newlines.
>
> The other arguments are the same as for the Popen constructor.
> """
> if input is not None:
> if kwargs.get('stdin') is not None:
> raise ValueError('stdin and input arguments may not both be used.')
> kwargs['stdin'] = PIPE
>
> if capture_output:
> if kwargs.get('stdout') is not None or kwargs.get('stderr') is not None:
> raise ValueError('stdout and stderr arguments may not be used '
> 'with capture_output.')
> kwargs['stdout'] = PIPE
> kwargs['stderr'] = PIPE
>
> with Popen(*popenargs, **kwargs) as process:
> try:
> stdout, stderr = process.communicate(input, timeout=timeout)
> except TimeoutExpired as exc:
> process.kill()
> if _mswindows:
> # Windows accumulates the output in a single blocking
> # read() call run on child threads, with the timeout
> # being done in a join() on those threads. communicate()
> # _after_ kill() is required to collect that and add it
> # to the exception.
> exc.stdout, exc.stderr = process.communicate()
> else:
> # POSIX _communicate already populated the output so
> # far into the TimeoutExpired exception.
> process.wait()
> raise
> except: # Including KeyboardInterrupt, communicate handled that.
> process.kill()
> # We don't call process.wait() as .__exit__ does that for us.
> raise
> retcode = process.poll()
> if check and retcode:
> > raise CalledProcessError(retcode, process.args,
> output=stdout, stderr=stderr)
> E subprocess.CalledProcessError: Command '['./binaries/cif2cell', '/<<PKGBUILDDIR>>/tests/../cifs/gamma-Pu.cif']' returned non-zero exit status 1.
>
> /usr/lib/python3.9/subprocess.py:524: CalledProcessError
> _ test_parse[/<<PKGBUILDDIR>>/tests/../cifs/BaTiO3_cubic.cif] _
>
> cif_file = '/<<PKGBUILDDIR>>/tests/../cifs/BaTiO3_cubic.cif'
>
> @pytest.mark.skipif(sys.version_info < (3, 6), reason="requires python3.6 or higher")
> @pytest.mark.parametrize("cif_file", CIF_FILES)
> def test_parse(cif_file):
> """Test running cif2cell on each CIF file in /cifs."""
> if sys.version_info < (3,0) and 'SiC.cif' in cif_file:
> pytest.skip(reason='skip test for files with unicode content under python 2.7.' +
> 'see https://github.com/torbjornbjorkman/cif2cell/issues/7')
>
> > result = run_cif2cell([cif_file])
>
> tests/test_cif2cell.py:23:
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
> tests/test_cif2cell.py:13: in run_cif2cell
> return subprocess.check_output(['./binaries/cif2cell'] + args, stderr=subprocess.STDOUT).decode('utf8')
> /usr/lib/python3.9/subprocess.py:420: in check_output
> return run(*popenargs, stdout=PIPE, timeout=timeout, check=True,
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
>
> input = None, capture_output = False, timeout = None, check = True
> popenargs = (['./binaries/cif2cell', '/<<PKGBUILDDIR>>/tests/../cifs/BaTiO3_cubic.cif'],)
> kwargs = {'stderr': -2, 'stdout': -1}
> process = <Popen: returncode: 1 args: ['./binaries/cif2cell', '/<<BUILDDIR>>/...>
> stdout = b'Traceback (most recent call last):\n File "/<<PKGBUILDDIR>>/./binaries/cif2cell", line ...m fractions import gcd\nImportError: cannot import name \'gcd\' from \'fractions\' (/usr/lib/python3.9/fractions.py)\n'
> stderr = None, retcode = 1
>
> def run(*popenargs,
> input=None, capture_output=False, timeout=None, check=False, **kwargs):
> """Run command with arguments and return a CompletedProcess instance.
>
> The returned instance will have attributes args, returncode, stdout and
> stderr. By default, stdout and stderr are not captured, and those attributes
> will be None. Pass stdout=PIPE and/or stderr=PIPE in order to capture them.
>
> If check is True and the exit code was non-zero, it raises a
> CalledProcessError. The CalledProcessError object will have the return code
> in the returncode attribute, and output & stderr attributes if those streams
> were captured.
>
> If timeout is given, and the process takes too long, a TimeoutExpired
> exception will be raised.
>
> There is an optional argument "input", allowing you to
> pass bytes or a string to the subprocess's stdin. If you use this argument
> you may not also use the Popen constructor's "stdin" argument, as
> it will be used internally.
>
> By default, all communication is in bytes, and therefore any "input" should
> be bytes, and the stdout and stderr will be bytes. If in text mode, any
> "input" should be a string, and stdout and stderr will be strings decoded
> according to locale encoding, or by "encoding" if set. Text mode is
> triggered by setting any of text, encoding, errors or universal_newlines.
>
> The other arguments are the same as for the Popen constructor.
> """
> if input is not None:
> if kwargs.get('stdin') is not None:
> raise ValueError('stdin and input arguments may not both be used.')
> kwargs['stdin'] = PIPE
>
> if capture_output:
> if kwargs.get('stdout') is not None or kwargs.get('stderr') is not None:
> raise ValueError('stdout and stderr arguments may not be used '
> 'with capture_output.')
> kwargs['stdout'] = PIPE
> kwargs['stderr'] = PIPE
>
> with Popen(*popenargs, **kwargs) as process:
> try:
> stdout, stderr = process.communicate(input, timeout=timeout)
> except TimeoutExpired as exc:
> process.kill()
> if _mswindows:
> # Windows accumulates the output in a single blocking
> # read() call run on child threads, with the timeout
> # being done in a join() on those threads. communicate()
> # _after_ kill() is required to collect that and add it
> # to the exception.
> exc.stdout, exc.stderr = process.communicate()
> else:
> # POSIX _communicate already populated the output so
> # far into the TimeoutExpired exception.
> process.wait()
> raise
> except: # Including KeyboardInterrupt, communicate handled that.
> process.kill()
> # We don't call process.wait() as .__exit__ does that for us.
> raise
> retcode = process.poll()
> if check and retcode:
> > raise CalledProcessError(retcode, process.args,
> output=stdout, stderr=stderr)
> E subprocess.CalledProcessError: Command '['./binaries/cif2cell', '/<<PKGBUILDDIR>>/tests/../cifs/BaTiO3_cubic.cif']' returned non-zero exit status 1.
>
> /usr/lib/python3.9/subprocess.py:524: CalledProcessError
> _ test_parse[/<<PKGBUILDDIR>>/tests/../cifs/alpha-Mn.cif] _
>
> cif_file = '/<<PKGBUILDDIR>>/tests/../cifs/alpha-Mn.cif'
>
> @pytest.mark.skipif(sys.version_info < (3, 6), reason="requires python3.6 or higher")
> @pytest.mark.parametrize("cif_file", CIF_FILES)
> def test_parse(cif_file):
> """Test running cif2cell on each CIF file in /cifs."""
> if sys.version_info < (3,0) and 'SiC.cif' in cif_file:
> pytest.skip(reason='skip test for files with unicode content under python 2.7.' +
> 'see https://github.com/torbjornbjorkman/cif2cell/issues/7')
>
> > result = run_cif2cell([cif_file])
>
> tests/test_cif2cell.py:23:
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
> tests/test_cif2cell.py:13: in run_cif2cell
> return subprocess.check_output(['./binaries/cif2cell'] + args, stderr=subprocess.STDOUT).decode('utf8')
> /usr/lib/python3.9/subprocess.py:420: in check_output
> return run(*popenargs, stdout=PIPE, timeout=timeout, check=True,
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
>
> input = None, capture_output = False, timeout = None, check = True
> popenargs = (['./binaries/cif2cell', '/<<PKGBUILDDIR>>/tests/../cifs/alpha-Mn.cif'],)
> kwargs = {'stderr': -2, 'stdout': -1}
> process = <Popen: returncode: 1 args: ['./binaries/cif2cell', '/<<BUILDDIR>>/...>
> stdout = b'Traceback (most recent call last):\n File "/<<PKGBUILDDIR>>/./binaries/cif2cell", line ...m fractions import gcd\nImportError: cannot import name \'gcd\' from \'fractions\' (/usr/lib/python3.9/fractions.py)\n'
> stderr = None, retcode = 1
>
> def run(*popenargs,
> input=None, capture_output=False, timeout=None, check=False, **kwargs):
> """Run command with arguments and return a CompletedProcess instance.
>
> The returned instance will have attributes args, returncode, stdout and
> stderr. By default, stdout and stderr are not captured, and those attributes
> will be None. Pass stdout=PIPE and/or stderr=PIPE in order to capture them.
>
> If check is True and the exit code was non-zero, it raises a
> CalledProcessError. The CalledProcessError object will have the return code
> in the returncode attribute, and output & stderr attributes if those streams
> were captured.
>
> If timeout is given, and the process takes too long, a TimeoutExpired
> exception will be raised.
>
> There is an optional argument "input", allowing you to
> pass bytes or a string to the subprocess's stdin. If you use this argument
> you may not also use the Popen constructor's "stdin" argument, as
> it will be used internally.
>
> By default, all communication is in bytes, and therefore any "input" should
> be bytes, and the stdout and stderr will be bytes. If in text mode, any
> "input" should be a string, and stdout and stderr will be strings decoded
> according to locale encoding, or by "encoding" if set. Text mode is
> triggered by setting any of text, encoding, errors or universal_newlines.
>
> The other arguments are the same as for the Popen constructor.
> """
> if input is not None:
> if kwargs.get('stdin') is not None:
> raise ValueError('stdin and input arguments may not both be used.')
> kwargs['stdin'] = PIPE
>
> if capture_output:
> if kwargs.get('stdout') is not None or kwargs.get('stderr') is not None:
> raise ValueError('stdout and stderr arguments may not be used '
> 'with capture_output.')
> kwargs['stdout'] = PIPE
> kwargs['stderr'] = PIPE
>
> with Popen(*popenargs, **kwargs) as process:
> try:
> stdout, stderr = process.communicate(input, timeout=timeout)
> except TimeoutExpired as exc:
> process.kill()
> if _mswindows:
> # Windows accumulates the output in a single blocking
> # read() call run on child threads, with the timeout
> # being done in a join() on those threads. communicate()
> # _after_ kill() is required to collect that and add it
> # to the exception.
> exc.stdout, exc.stderr = process.communicate()
> else:
> # POSIX _communicate already populated the output so
> # far into the TimeoutExpired exception.
> process.wait()
> raise
> except: # Including KeyboardInterrupt, communicate handled that.
> process.kill()
> # We don't call process.wait() as .__exit__ does that for us.
> raise
> retcode = process.poll()
> if check and retcode:
> > raise CalledProcessError(retcode, process.args,
> output=stdout, stderr=stderr)
> E subprocess.CalledProcessError: Command '['./binaries/cif2cell', '/<<PKGBUILDDIR>>/tests/../cifs/alpha-Mn.cif']' returned non-zero exit status 1.
>
> /usr/lib/python3.9/subprocess.py:524: CalledProcessError
> _ test_parse[/<<PKGBUILDDIR>>/tests/../cifs/anatase.cif] _
>
> cif_file = '/<<PKGBUILDDIR>>/tests/../cifs/anatase.cif'
>
> @pytest.mark.skipif(sys.version_info < (3, 6), reason="requires python3.6 or higher")
> @pytest.mark.parametrize("cif_file", CIF_FILES)
> def test_parse(cif_file):
> """Test running cif2cell on each CIF file in /cifs."""
> if sys.version_info < (3,0) and 'SiC.cif' in cif_file:
> pytest.skip(reason='skip test for files with unicode content under python 2.7.' +
> 'see https://github.com/torbjornbjorkman/cif2cell/issues/7')
>
> > result = run_cif2cell([cif_file])
>
> tests/test_cif2cell.py:23:
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
> tests/test_cif2cell.py:13: in run_cif2cell
> return subprocess.check_output(['./binaries/cif2cell'] + args, stderr=subprocess.STDOUT).decode('utf8')
> /usr/lib/python3.9/subprocess.py:420: in check_output
> return run(*popenargs, stdout=PIPE, timeout=timeout, check=True,
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
>
> input = None, capture_output = False, timeout = None, check = True
> popenargs = (['./binaries/cif2cell', '/<<PKGBUILDDIR>>/tests/../cifs/anatase.cif'],)
> kwargs = {'stderr': -2, 'stdout': -1}
> process = <Popen: returncode: 1 args: ['./binaries/cif2cell', '/<<BUILDDIR>>/...>
> stdout = b'Traceback (most recent call last):\n File "/<<PKGBUILDDIR>>/./binaries/cif2cell", line ...m fractions import gcd\nImportError: cannot import name \'gcd\' from \'fractions\' (/usr/lib/python3.9/fractions.py)\n'
> stderr = None, retcode = 1
>
> def run(*popenargs,
> input=None, capture_output=False, timeout=None, check=False, **kwargs):
> """Run command with arguments and return a CompletedProcess instance.
>
> The returned instance will have attributes args, returncode, stdout and
> stderr. By default, stdout and stderr are not captured, and those attributes
> will be None. Pass stdout=PIPE and/or stderr=PIPE in order to capture them.
>
> If check is True and the exit code was non-zero, it raises a
> CalledProcessError. The CalledProcessError object will have the return code
> in the returncode attribute, and output & stderr attributes if those streams
> were captured.
>
> If timeout is given, and the process takes too long, a TimeoutExpired
> exception will be raised.
>
> There is an optional argument "input", allowing you to
> pass bytes or a string to the subprocess's stdin. If you use this argument
> you may not also use the Popen constructor's "stdin" argument, as
> it will be used internally.
>
> By default, all communication is in bytes, and therefore any "input" should
> be bytes, and the stdout and stderr will be bytes. If in text mode, any
> "input" should be a string, and stdout and stderr will be strings decoded
> according to locale encoding, or by "encoding" if set. Text mode is
> triggered by setting any of text, encoding, errors or universal_newlines.
>
> The other arguments are the same as for the Popen constructor.
> """
> if input is not None:
> if kwargs.get('stdin') is not None:
> raise ValueError('stdin and input arguments may not both be used.')
> kwargs['stdin'] = PIPE
>
> if capture_output:
> if kwargs.get('stdout') is not None or kwargs.get('stderr') is not None:
> raise ValueError('stdout and stderr arguments may not be used '
> 'with capture_output.')
> kwargs['stdout'] = PIPE
> kwargs['stderr'] = PIPE
>
> with Popen(*popenargs, **kwargs) as process:
> try:
> stdout, stderr = process.communicate(input, timeout=timeout)
> except TimeoutExpired as exc:
> process.kill()
> if _mswindows:
> # Windows accumulates the output in a single blocking
> # read() call run on child threads, with the timeout
> # being done in a join() on those threads. communicate()
> # _after_ kill() is required to collect that and add it
> # to the exception.
> exc.stdout, exc.stderr = process.communicate()
> else:
> # POSIX _communicate already populated the output so
> # far into the TimeoutExpired exception.
> process.wait()
> raise
> except: # Including KeyboardInterrupt, communicate handled that.
> process.kill()
> # We don't call process.wait() as .__exit__ does that for us.
> raise
> retcode = process.poll()
> if check and retcode:
> > raise CalledProcessError(retcode, process.args,
> output=stdout, stderr=stderr)
> E subprocess.CalledProcessError: Command '['./binaries/cif2cell', '/<<PKGBUILDDIR>>/tests/../cifs/anatase.cif']' returned non-zero exit status 1.
>
> /usr/lib/python3.9/subprocess.py:524: CalledProcessError
> _ test_parse[/<<PKGBUILDDIR>>/tests/../cifs/SiC.cif] _
>
> cif_file = '/<<PKGBUILDDIR>>/tests/../cifs/SiC.cif'
>
> @pytest.mark.skipif(sys.version_info < (3, 6), reason="requires python3.6 or higher")
> @pytest.mark.parametrize("cif_file", CIF_FILES)
> def test_parse(cif_file):
> """Test running cif2cell on each CIF file in /cifs."""
> if sys.version_info < (3,0) and 'SiC.cif' in cif_file:
> pytest.skip(reason='skip test for files with unicode content under python 2.7.' +
> 'see https://github.com/torbjornbjorkman/cif2cell/issues/7')
>
> > result = run_cif2cell([cif_file])
>
> tests/test_cif2cell.py:23:
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
> tests/test_cif2cell.py:13: in run_cif2cell
> return subprocess.check_output(['./binaries/cif2cell'] + args, stderr=subprocess.STDOUT).decode('utf8')
> /usr/lib/python3.9/subprocess.py:420: in check_output
> return run(*popenargs, stdout=PIPE, timeout=timeout, check=True,
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
>
> input = None, capture_output = False, timeout = None, check = True
> popenargs = (['./binaries/cif2cell', '/<<PKGBUILDDIR>>/tests/../cifs/SiC.cif'],)
> kwargs = {'stderr': -2, 'stdout': -1}
> process = <Popen: returncode: 1 args: ['./binaries/cif2cell', '/<<BUILDDIR>>/...>
> stdout = b'Traceback (most recent call last):\n File "/<<PKGBUILDDIR>>/./binaries/cif2cell", line ...m fractions import gcd\nImportError: cannot import name \'gcd\' from \'fractions\' (/usr/lib/python3.9/fractions.py)\n'
> stderr = None, retcode = 1
>
> def run(*popenargs,
> input=None, capture_output=False, timeout=None, check=False, **kwargs):
> """Run command with arguments and return a CompletedProcess instance.
>
> The returned instance will have attributes args, returncode, stdout and
> stderr. By default, stdout and stderr are not captured, and those attributes
> will be None. Pass stdout=PIPE and/or stderr=PIPE in order to capture them.
>
> If check is True and the exit code was non-zero, it raises a
> CalledProcessError. The CalledProcessError object will have the return code
> in the returncode attribute, and output & stderr attributes if those streams
> were captured.
>
> If timeout is given, and the process takes too long, a TimeoutExpired
> exception will be raised.
>
> There is an optional argument "input", allowing you to
> pass bytes or a string to the subprocess's stdin. If you use this argument
> you may not also use the Popen constructor's "stdin" argument, as
> it will be used internally.
>
> By default, all communication is in bytes, and therefore any "input" should
> be bytes, and the stdout and stderr will be bytes. If in text mode, any
> "input" should be a string, and stdout and stderr will be strings decoded
> according to locale encoding, or by "encoding" if set. Text mode is
> triggered by setting any of text, encoding, errors or universal_newlines.
>
> The other arguments are the same as for the Popen constructor.
> """
> if input is not None:
> if kwargs.get('stdin') is not None:
> raise ValueError('stdin and input arguments may not both be used.')
> kwargs['stdin'] = PIPE
>
> if capture_output:
> if kwargs.get('stdout') is not None or kwargs.get('stderr') is not None:
> raise ValueError('stdout and stderr arguments may not be used '
> 'with capture_output.')
> kwargs['stdout'] = PIPE
> kwargs['stderr'] = PIPE
>
> with Popen(*popenargs, **kwargs) as process:
> try:
> stdout, stderr = process.communicate(input, timeout=timeout)
> except TimeoutExpired as exc:
> process.kill()
> if _mswindows:
> # Windows accumulates the output in a single blocking
> # read() call run on child threads, with the timeout
> # being done in a join() on those threads. communicate()
> # _after_ kill() is required to collect that and add it
> # to the exception.
> exc.stdout, exc.stderr = process.communicate()
> else:
> # POSIX _communicate already populated the output so
> # far into the TimeoutExpired exception.
> process.wait()
> raise
> except: # Including KeyboardInterrupt, communicate handled that.
> process.kill()
> # We don't call process.wait() as .__exit__ does that for us.
> raise
> retcode = process.poll()
> if check and retcode:
> > raise CalledProcessError(retcode, process.args,
> output=stdout, stderr=stderr)
> E subprocess.CalledProcessError: Command '['./binaries/cif2cell', '/<<PKGBUILDDIR>>/tests/../cifs/SiC.cif']' returned non-zero exit status 1.
>
> /usr/lib/python3.9/subprocess.py:524: CalledProcessError
> __________________________________ test_vasp ___________________________________
>
> def test_vasp():
> """Test VASP output."""
> cif_file = os.path.join(CIFS_DIR, "SiC.cif")
> > result = run_cif2cell(["-p", "vasp", "-f", cif_file])
>
> tests/test_cif2cell.py:31:
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
> tests/test_cif2cell.py:13: in run_cif2cell
> return subprocess.check_output(['./binaries/cif2cell'] + args, stderr=subprocess.STDOUT).decode('utf8')
> /usr/lib/python3.9/subprocess.py:420: in check_output
> return run(*popenargs, stdout=PIPE, timeout=timeout, check=True,
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
>
> input = None, capture_output = False, timeout = None, check = True
> popenargs = (['./binaries/cif2cell', '-p', 'vasp', '-f', '/<<PKGBUILDDIR>>/tests/../cifs/SiC.cif'],)
> kwargs = {'stderr': -2, 'stdout': -1}
> process = <Popen: returncode: 1 args: ['./binaries/cif2cell', '-p', 'vasp', '-f', '/bu...>
> stdout = b'Traceback (most recent call last):\n File "/<<PKGBUILDDIR>>/./binaries/cif2cell", line ...m fractions import gcd\nImportError: cannot import name \'gcd\' from \'fractions\' (/usr/lib/python3.9/fractions.py)\n'
> stderr = None, retcode = 1
>
> def run(*popenargs,
> input=None, capture_output=False, timeout=None, check=False, **kwargs):
> """Run command with arguments and return a CompletedProcess instance.
>
> The returned instance will have attributes args, returncode, stdout and
> stderr. By default, stdout and stderr are not captured, and those attributes
> will be None. Pass stdout=PIPE and/or stderr=PIPE in order to capture them.
>
> If check is True and the exit code was non-zero, it raises a
> CalledProcessError. The CalledProcessError object will have the return code
> in the returncode attribute, and output & stderr attributes if those streams
> were captured.
>
> If timeout is given, and the process takes too long, a TimeoutExpired
> exception will be raised.
>
> There is an optional argument "input", allowing you to
> pass bytes or a string to the subprocess's stdin. If you use this argument
> you may not also use the Popen constructor's "stdin" argument, as
> it will be used internally.
>
> By default, all communication is in bytes, and therefore any "input" should
> be bytes, and the stdout and stderr will be bytes. If in text mode, any
> "input" should be a string, and stdout and stderr will be strings decoded
> according to locale encoding, or by "encoding" if set. Text mode is
> triggered by setting any of text, encoding, errors or universal_newlines.
>
> The other arguments are the same as for the Popen constructor.
> """
> if input is not None:
> if kwargs.get('stdin') is not None:
> raise ValueError('stdin and input arguments may not both be used.')
> kwargs['stdin'] = PIPE
>
> if capture_output:
> if kwargs.get('stdout') is not None or kwargs.get('stderr') is not None:
> raise ValueError('stdout and stderr arguments may not be used '
> 'with capture_output.')
> kwargs['stdout'] = PIPE
> kwargs['stderr'] = PIPE
>
> with Popen(*popenargs, **kwargs) as process:
> try:
> stdout, stderr = process.communicate(input, timeout=timeout)
> except TimeoutExpired as exc:
> process.kill()
> if _mswindows:
> # Windows accumulates the output in a single blocking
> # read() call run on child threads, with the timeout
> # being done in a join() on those threads. communicate()
> # _after_ kill() is required to collect that and add it
> # to the exception.
> exc.stdout, exc.stderr = process.communicate()
> else:
> # POSIX _communicate already populated the output so
> # far into the TimeoutExpired exception.
> process.wait()
> raise
> except: # Including KeyboardInterrupt, communicate handled that.
> process.kill()
> # We don't call process.wait() as .__exit__ does that for us.
> raise
> retcode = process.poll()
> if check and retcode:
> > raise CalledProcessError(retcode, process.args,
> output=stdout, stderr=stderr)
> E subprocess.CalledProcessError: Command '['./binaries/cif2cell', '-p', 'vasp', '-f', '/<<PKGBUILDDIR>>/tests/../cifs/SiC.cif']' returned non-zero exit status 1.
>
> /usr/lib/python3.9/subprocess.py:524: CalledProcessError
> _________________________________ test_castep __________________________________
>
> def test_castep():
> """Test CASTEP output."""
> cif_file = os.path.join(CIFS_DIR, "SiC.cif")
> > result = run_cif2cell(["-p", "castep", "-f", cif_file])
>
> tests/test_cif2cell.py:39:
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
> tests/test_cif2cell.py:13: in run_cif2cell
> return subprocess.check_output(['./binaries/cif2cell'] + args, stderr=subprocess.STDOUT).decode('utf8')
> /usr/lib/python3.9/subprocess.py:420: in check_output
> return run(*popenargs, stdout=PIPE, timeout=timeout, check=True,
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
>
> input = None, capture_output = False, timeout = None, check = True
> popenargs = (['./binaries/cif2cell', '-p', 'castep', '-f', '/<<PKGBUILDDIR>>/tests/../cifs/SiC.cif'],)
> kwargs = {'stderr': -2, 'stdout': -1}
> process = <Popen: returncode: 1 args: ['./binaries/cif2cell', '-p', 'castep', '-f', '/...>
> stdout = b'Traceback (most recent call last):\n File "/<<PKGBUILDDIR>>/./binaries/cif2cell", line ...m fractions import gcd\nImportError: cannot import name \'gcd\' from \'fractions\' (/usr/lib/python3.9/fractions.py)\n'
> stderr = None, retcode = 1
>
> def run(*popenargs,
> input=None, capture_output=False, timeout=None, check=False, **kwargs):
> """Run command with arguments and return a CompletedProcess instance.
>
> The returned instance will have attributes args, returncode, stdout and
> stderr. By default, stdout and stderr are not captured, and those attributes
> will be None. Pass stdout=PIPE and/or stderr=PIPE in order to capture them.
>
> If check is True and the exit code was non-zero, it raises a
> CalledProcessError. The CalledProcessError object will have the return code
> in the returncode attribute, and output & stderr attributes if those streams
> were captured.
>
> If timeout is given, and the process takes too long, a TimeoutExpired
> exception will be raised.
>
> There is an optional argument "input", allowing you to
> pass bytes or a string to the subprocess's stdin. If you use this argument
> you may not also use the Popen constructor's "stdin" argument, as
> it will be used internally.
>
> By default, all communication is in bytes, and therefore any "input" should
> be bytes, and the stdout and stderr will be bytes. If in text mode, any
> "input" should be a string, and stdout and stderr will be strings decoded
> according to locale encoding, or by "encoding" if set. Text mode is
> triggered by setting any of text, encoding, errors or universal_newlines.
>
> The other arguments are the same as for the Popen constructor.
> """
> if input is not None:
> if kwargs.get('stdin') is not None:
> raise ValueError('stdin and input arguments may not both be used.')
> kwargs['stdin'] = PIPE
>
> if capture_output:
> if kwargs.get('stdout') is not None or kwargs.get('stderr') is not None:
> raise ValueError('stdout and stderr arguments may not be used '
> 'with capture_output.')
> kwargs['stdout'] = PIPE
> kwargs['stderr'] = PIPE
>
> with Popen(*popenargs, **kwargs) as process:
> try:
> stdout, stderr = process.communicate(input, timeout=timeout)
> except TimeoutExpired as exc:
> process.kill()
> if _mswindows:
> # Windows accumulates the output in a single blocking
> # read() call run on child threads, with the timeout
> # being done in a join() on those threads. communicate()
> # _after_ kill() is required to collect that and add it
> # to the exception.
> exc.stdout, exc.stderr = process.communicate()
> else:
> # POSIX _communicate already populated the output so
> # far into the TimeoutExpired exception.
> process.wait()
> raise
> except: # Including KeyboardInterrupt, communicate handled that.
> process.kill()
> # We don't call process.wait() as .__exit__ does that for us.
> raise
> retcode = process.poll()
> if check and retcode:
> > raise CalledProcessError(retcode, process.args,
> output=stdout, stderr=stderr)
> E subprocess.CalledProcessError: Command '['./binaries/cif2cell', '-p', 'castep', '-f', '/<<PKGBUILDDIR>>/tests/../cifs/SiC.cif']' returned non-zero exit status 1.
>
> /usr/lib/python3.9/subprocess.py:524: CalledProcessError
> =========================== 7 failed in 0.84 seconds ===========================
> make[1]: *** [debian/rules:9: override_dh_auto_test] Error 1
The full build log is available from:
http://qa-logs.debian.net/2020/11/19/cif2cell_2.0.0a1+dfsg-3_unstable.log
A list of current common problems and possible solutions is available at
http://wiki.debian.org/qa.debian.org/FTBFS . You're welcome to contribute!
About the archive rebuild: The rebuild was done on EC2 VM instances from
Amazon Web Services, using a clean, minimal and up-to-date chroot. Every
failed build was retried once to eliminate random failures.
More information about the debian-science-maintainers
mailing list