Source: xrayutilities Version: 1.7.4-1 Severity: normal xrayutilities is failing tests with matplotlib 3.8 from experimental
470s _________________ TestExampleScripts.test_simpack_powdermodel __________________ 470s 470s self = <test_examples.TestExampleScripts testMethod=test_simpack_powdermodel> 470s 470s def test(self): 470s with tempfile.TemporaryFile(mode='w') as fid: 470s env = os.environ.copy() 470s env['MPLBACKEND'] = 'agg' 470s cmd = [sys.executable, scriptname] 470s > subprocess.run(cmd, env=env, cwd=scriptdir, stdout=fid, 470s check=True) 470s 470s tests/test_examples.py:78: 470s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 470s 470s input = None, capture_output = False, timeout = None, check = True 470s popenargs = (['/usr/bin/python3.11', 'simpack_powdermodel.py'],) 470s kwargs = {'cwd': '/tmp/autopkgtest-lxc.jsvdm1mu/downtmp/autopkgtest_tmp/tests/../examples', 'env': {'ADTTMP': '/tmp/autopkgtest...topkgtest-lxc.jsvdm1mu/downtmp/autopkgtest_tmp', ...}, 'stdout': <_io.TextIOWrapper name=12 mode='w' encoding='UTF-8'>} 470s process = <Popen: returncode: 1 args: ['/usr/bin/python3.11', 'simpack_powdermodel.py']> 470s stdout = None, stderr = None, retcode = 1 470s 470s def run(*popenargs, 470s input=None, capture_output=False, timeout=None, check=False, **kwargs): 470s """Run command with arguments and return a CompletedProcess instance. 470s 470s The returned instance will have attributes args, returncode, stdout and 470s stderr. By default, stdout and stderr are not captured, and those attributes 470s will be None. Pass stdout=PIPE and/or stderr=PIPE in order to capture them, 470s or pass capture_output=True to capture both. 470s 470s If check is True and the exit code was non-zero, it raises a 470s CalledProcessError. The CalledProcessError object will have the return code 470s in the returncode attribute, and output & stderr attributes if those streams 470s were captured. 470s 470s If timeout is given, and the process takes too long, a TimeoutExpired 470s exception will be raised. 470s 470s There is an optional argument "input", allowing you to 470s pass bytes or a string to the subprocess's stdin. If you use this argument 470s you may not also use the Popen constructor's "stdin" argument, as 470s it will be used internally. 470s 470s By default, all communication is in bytes, and therefore any "input" should 470s be bytes, and the stdout and stderr will be bytes. If in text mode, any 470s "input" should be a string, and stdout and stderr will be strings decoded 470s according to locale encoding, or by "encoding" if set. Text mode is 470s triggered by setting any of text, encoding, errors or universal_newlines. 470s 470s The other arguments are the same as for the Popen constructor. 470s """ 470s if input is not None: 470s if kwargs.get('stdin') is not None: 470s raise ValueError('stdin and input arguments may not both be used.') 470s kwargs['stdin'] = PIPE 470s 470s if capture_output: 470s if kwargs.get('stdout') is not None or kwargs.get('stderr') is not None: 470s raise ValueError('stdout and stderr arguments may not be used ' 470s 'with capture_output.') 470s kwargs['stdout'] = PIPE 470s kwargs['stderr'] = PIPE 470s 470s with Popen(*popenargs, **kwargs) as process: 470s try: 470s stdout, stderr = process.communicate(input, timeout=timeout) 470s except TimeoutExpired as exc: 470s process.kill() 470s if _mswindows: 470s # Windows accumulates the output in a single blocking 470s # read() call run on child threads, with the timeout 470s # being done in a join() on those threads. communicate() 470s # _after_ kill() is required to collect that and add it 470s # to the exception. 470s exc.stdout, exc.stderr = process.communicate() 470s else: 470s # POSIX _communicate already populated the output so 470s # far into the TimeoutExpired exception. 470s process.wait() 470s raise 470s except: # Including KeyboardInterrupt, communicate handled that. 470s process.kill() 470s # We don't call process.wait() as .__exit__ does that for us. 470s raise 470s retcode = process.poll() 470s if check and retcode: 470s > raise CalledProcessError(retcode, process.args, 470s output=stdout, stderr=stderr) 470s E subprocess.CalledProcessError: Command '['/usr/bin/python3.11', 'simpack_powdermodel.py']' returned non-zero exit status 1. 470s 470s /usr/lib/python3.11/subprocess.py:571: CalledProcessError 470s ----------------------------- Captured stderr call ----------------------------- 470s Traceback (most recent call last): 470s File "/tmp/autopkgtest-lxc.jsvdm1mu/downtmp/autopkgtest_tmp/examples/simpack_powdermodel.py", line 137, in <module> 470s main() 470s File "/tmp/autopkgtest-lxc.jsvdm1mu/downtmp/autopkgtest_tmp/examples/simpack_powdermodel.py", line 128, in main 470s xu.simpack.plot_powder(tt, det, pm, scale='sqrt', mask=mask) 470s File "/usr/lib/python3/dist-packages/xrayutilities/simpack/powdermodel.py", line 584, in plot_powder 470s sim.plot(twotheta[mask], label=labelsim, formatspec=formatsim, ax=ax) 470s File "/usr/lib/python3/dist-packages/xrayutilities/simpack/powdermodel.py", line 420, in plot 470s tax.figure.texts.append(tax.texts.pop()) 470s ^^^^^^^^^^^^^ 470s AttributeError: 'ArtistList' object has no attribute 'pop'