Source: streamlink
Version: 8.4.0-2
Severity: serious
X-Debbugs-CC: [email protected]
Tags: sid forky
User: [email protected]
Usertags: needs-update
Control: affects -1 src:requests

Dear maintainer(s),

With a recent upload of requests the autopkgtest of streamlink fails in testing when that autopkgtest is run with the binary packages of requests from unstable. It passes when run with only packages from testing. In tabular form:

                       pass            fail
requests               from testing    2.34.2-1
streamlink             from testing    8.4.0-2
all others             from testing    from testing

I copied some of the output at the bottom of this report.

Currently this regression is blocking the migration of requests to testing [1]. Of course, requests shouldn't just break your autopkgtest (or even worse, your package), but it seems to me that the change in requests was intended and your package needs to update to the new situation.

If this is a real problem in your package (and not only in your autopkgtest), the right binary package(s) from requests should really add a versioned Breaks on the unfixed version of (one of your) package(s). Note: the Breaks is nice even if the issue is only in the autopkgtest as it helps the migration software to figure out the right versions to combine in the tests.

More information about this bug and the reason for filing it can be found on
https://wiki.debian.org/ContinuousIntegration/RegressionEmailInformation

Paul

[1] https://qa.debian.org/excuses.php?package=requests

https://ci.debian.net/data/autopkgtest/testing/amd64/s/streamlink/73952325/log.gz

=================================== FAILURES =================================== 89s ______________________ TestHTTPSession.test_read_timeout _______________________ 89s 89s self = <tests.session.test_http.TestHTTPSession object at 0x7fd1d18287d0> 89s monkeypatch = <_pytest.monkeypatch.MonkeyPatch object at 0x7fd1d184d080>
 89s  89s     def test_read_timeout(self, monkeypatch: pytest.MonkeyPatch):
 89s         mock_sleep = Mock()
 89s         mock_request = Mock(side_effect=requests.Timeout)
89s monkeypatch.setattr("streamlink.session.http.time.sleep", mock_sleep) 89s monkeypatch.setattr("streamlink.session.http.Session.request", mock_request)
 89s      89s         session = HTTPSession()
89s with pytest.raises(PluginError, match=r"^Unable to open URL: http://localhost/";): 89s session.get("http://localhost/";, timeout=123, retries=3, retry_backoff=2, retry_max_backoff=5)
 89s      89s >       assert mock_request.call_args_list == [
89s call("GET", "http://localhost/";, headers={}, params={}, timeout=123, proxies={}, allow_redirects=True), 89s call("GET", "http://localhost/";, headers={}, params={}, timeout=123, proxies={}, allow_redirects=True), 89s call("GET", "http://localhost/";, headers={}, params={}, timeout=123, proxies={}, allow_redirects=True), 89s call("GET", "http://localhost/";, headers={}, params={}, timeout=123, proxies={}, allow_redirects=True),
 89s         ]
89s E AssertionError: assert [call('GET', ...directs=True)] == [call('GET', ...directs=True)] 89s E 89s E At index 0 diff: call('GET', 'http://localhost/', headers={}, params=None, timeout=123, proxies={}, allow_redirects=True) != call('GET', 'http://localhost/', headers={}, params={}, timeout=123, proxies={}, allow_redirects=True)
 89s E         Use -v to get more diff
 89s  89s tests/session/test_http.py:167: AssertionError
89s =============================== warnings summary ===============================
 89s tests/session/test_http.py: 1 warning
 89s tests/test_validate.py: 8 warnings
 89s tests/test_plugins.py: 662 warnings
 89s tests/plugins/test_rtpplay.py: 1 warning
 89s tests/cli/console/test_progress.py: 1 warning
89s /usr/lib/python3/dist-packages/_pytest/fixtures.py:1313: PytestRemovedIn10Warning: Class-scoped fixture defined as instance method is deprecated. 89s Instance attributes set in this fixture will NOT be visible to test methods, 89s as each test gets a new instance while the fixture runs only once per class.
 89s   Use @classmethod decorator and set attributes on cls instead.
89s See https://docs.pytest.org/en/stable/deprecations.html#class-scoped-fixture-as-instance-method
 89s     fixturefunc = resolve_fixture_function(fixturedef, request)
89s 89s -- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html 89s =========================== short test summary info ============================ 89s FAILED tests/session/test_http.py::TestHTTPSession::test_read_timeout - Asser... 89s ========== 1 failed, 7104 passed, 36 skipped, 673 warnings in 15.14s ===========
 91s autopkgtest [14:23:03]: test command1

Attachment: OpenPGP_signature.asc
Description: OpenPGP digital signature

Reply via email to