Bug 1914843

Summary: python-pexpect is broken with Bash 5.1 and bracketed-paste mode (now the default), unexpected \x1b[?2004l\r376 in output
Product: [Fedora] Fedora Reporter: Tomáš Hrnčiar <thrnciar>
Component: python-pexpectAssignee: Dan Radez <dradez>
Status: CLOSED RAWHIDE QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: rawhideCC: amcnabb, bperkins, dradez, fabian.deutsch, igor.raits, kdudka, mhroncok, pviktori, python-sig, swt, tomspur, vstinner
Target Milestone: ---   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
URL: https://koschei.fedoraproject.org/package/python-pexpect
Whiteboard:
Fixed In Version: Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2021-01-19 17:32:10 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On:    
Bug Blocks: 1868278, 1890881, 1892612, 1914782    

Description Tomáš Hrnčiar 2021-01-11 10:23:30 UTC
Description of problem:
Package python-pexpect fails to build from source in Fedora rawhide.

Version-Release number of selected component (if applicable):
4.8.0-5.fc34

Steps to Reproduce:
koji build --scratch f34 python-pexpect-4.8.0-5.fc34.src.rpm

Additional info:
This package is tracked by Koschei. See:
https://koschei.fedoraproject.org/package/python-pexpect

_________________________ REPLWrapTestCase.test_python _________________________

self = <tests.test_replwrap.REPLWrapTestCase testMethod=test_python>

    def test_python(self):
        if platform.python_implementation() == 'PyPy':
            raise unittest.SkipTest(skip_pypy)
    
        p = replwrap.python()
        res = p.run_command('4+7')
>       assert res.strip() == '11'
E       AssertionError: assert '\x1b[?2004l\...\n\x1b[?2004h' == '11'
E         - 11
E         + [?2004l
E         + 11
E         + [?2004h

/builddir/build/BUILD/pexpect-4.8.0/tests/test_replwrap.py:102: AssertionError

Comment 1 Miro Hrončok 2021-01-11 17:17:54 UTC
Details: https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.org/thread/O3YFTIUSSP2M6OIZYOXWX5GAVF6CZJN2/

Upstream issue: https://github.com/pexpect/pexpect/issues/669

(I could not add the link to the Bugzilla field, because there is some error in Jira synchronization.)

Comment 2 Victor Stinner 2021-01-19 11:38:06 UTC
FYI Python had a similar issue with readline which injected bytes like ".[?1034h": https://bugs.python.org/issue19884. The workaround was to set TERM=xterm-256color environment variable.

Comment 3 Dan Radez 2021-01-19 14:39:29 UTC
I tried running the checks after updating the test command to "TERM=xterm-256color TRAVIS=true py.test-3 --verbose"
Saw the env value set in the checks when I ran mock to build the package.

Same failure.


Thx for the suggestion Victor.

Comment 4 Dan Radez 2021-01-19 16:06:42 UTC
I added the temporary workaround:
echo "set enable-bracketed-paste off" > .inputrc
export INPUTRC=$PWD/.inputrc

and pushed it up so the tests would be passing again.

The build failed: https://koji.fedoraproject.org/koji/taskinfo?taskID=60043613
I tried to reproduce the failure in a scratch build and it succeeded: https://koji.fedoraproject.org/koji/taskinfo?taskID=60044790

The build failure was not the bracketed paste error at first glance.
I'll poke a bit more and see what I can figure out.