mirror of
https://github.com/curl/curl.git
synced 2026-07-16 09:47:17 +03:00
pytest: test negotiate with http proxy
Fixes #14973
Reported-by: stevenpackardblp on github
When curl negotiated with a http: proxy for a https: request, it
wrongly believed there must be an SSL filter present, which during
CONNECT, there is not.
25b445e fixed this. This PR adds a pytest case for the setup.
Closes #16136
This commit is contained in:
parent
b4834a7d6d
commit
2809723ddf
1 changed files with 13 additions and 0 deletions
|
|
@ -25,6 +25,7 @@
|
|||
###########################################################################
|
||||
#
|
||||
import logging
|
||||
import os
|
||||
import re
|
||||
import pytest
|
||||
|
||||
|
|
@ -152,3 +153,15 @@ class TestProxyAuth:
|
|||
protocol='HTTP/2' if proto == 'h2' else 'HTTP/1.1')
|
||||
assert self.get_tunnel_proto_used(r) == 'HTTP/2' \
|
||||
if tunnel == 'h2' else 'HTTP/1.1'
|
||||
|
||||
@pytest.mark.skipif(condition=not Env.curl_has_feature('SPNEGO'),
|
||||
reason='curl lacks SPNEGO support')
|
||||
def test_13_09_negotiate_http(self, env: Env, httpd):
|
||||
run_env = os.environ.copy()
|
||||
run_env['https_proxy'] = f'http://127.0.0.1:{env.proxy_port}'
|
||||
curl = CurlClient(env=env, run_env=run_env)
|
||||
url = f'https://localhost:{env.https_port}/data.json'
|
||||
r1 = curl.http_download(urls=[url], alpn_proto='http/1.1', with_stats=True, extra_args=[
|
||||
'--negotiate', '--proxy-user', 'proxy:proxy'
|
||||
])
|
||||
r1.check_response(count=1, http_status=200)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue