summaryrefslogtreecommitdiffstats
path: root/third_party/python/requests-unixsocket/requests_unixsocket/tests
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-28 14:29:10 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-28 14:29:10 +0000
commit2aa4a82499d4becd2284cdb482213d541b8804dd (patch)
treeb80bf8bf13c3766139fbacc530efd0dd9d54394c /third_party/python/requests-unixsocket/requests_unixsocket/tests
parentInitial commit. (diff)
downloadfirefox-2aa4a82499d4becd2284cdb482213d541b8804dd.tar.xz
firefox-2aa4a82499d4becd2284cdb482213d541b8804dd.zip
Adding upstream version 86.0.1.upstream/86.0.1upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'third_party/python/requests-unixsocket/requests_unixsocket/tests')
-rwxr-xr-xthird_party/python/requests-unixsocket/requests_unixsocket/tests/test_requests_unixsocket.py121
1 files changed, 121 insertions, 0 deletions
diff --git a/third_party/python/requests-unixsocket/requests_unixsocket/tests/test_requests_unixsocket.py b/third_party/python/requests-unixsocket/requests_unixsocket/tests/test_requests_unixsocket.py
new file mode 100755
index 0000000000..34151b2b18
--- /dev/null
+++ b/third_party/python/requests-unixsocket/requests_unixsocket/tests/test_requests_unixsocket.py
@@ -0,0 +1,121 @@
+#!/usr/bin/env python
+# -*- coding: utf-8 -*-
+
+"""Tests for requests_unixsocket"""
+
+import logging
+
+import pytest
+import requests
+
+import requests_unixsocket
+from requests_unixsocket.testutils import UnixSocketServerThread
+
+
+logger = logging.getLogger(__name__)
+
+
+def test_unix_domain_adapter_ok():
+ with UnixSocketServerThread() as usock_thread:
+ session = requests_unixsocket.Session('http+unix://')
+ urlencoded_usock = requests.compat.quote_plus(usock_thread.usock)
+ url = 'http+unix://%s/path/to/page' % urlencoded_usock
+
+ for method in ['get', 'post', 'head', 'patch', 'put', 'delete',
+ 'options']:
+ logger.debug('Calling session.%s(%r) ...', method, url)
+ r = getattr(session, method)(url)
+ logger.debug(
+ 'Received response: %r with text: %r and headers: %r',
+ r, r.text, r.headers)
+ assert r.status_code == 200
+ assert r.headers['server'] == 'waitress'
+ assert r.headers['X-Transport'] == 'unix domain socket'
+ assert r.headers['X-Requested-Path'] == '/path/to/page'
+ assert r.headers['X-Socket-Path'] == usock_thread.usock
+ assert isinstance(r.connection, requests_unixsocket.UnixAdapter)
+ assert r.url == url
+ if method == 'head':
+ assert r.text == ''
+ else:
+ assert r.text == 'Hello world!'
+
+
+def test_unix_domain_adapter_url_with_query_params():
+ with UnixSocketServerThread() as usock_thread:
+ session = requests_unixsocket.Session('http+unix://')
+ urlencoded_usock = requests.compat.quote_plus(usock_thread.usock)
+ url = ('http+unix://%s'
+ '/containers/nginx/logs?timestamp=true' % urlencoded_usock)
+
+ for method in ['get', 'post', 'head', 'patch', 'put', 'delete',
+ 'options']:
+ logger.debug('Calling session.%s(%r) ...', method, url)
+ r = getattr(session, method)(url)
+ logger.debug(
+ 'Received response: %r with text: %r and headers: %r',
+ r, r.text, r.headers)
+ assert r.status_code == 200
+ assert r.headers['server'] == 'waitress'
+ assert r.headers['X-Transport'] == 'unix domain socket'
+ assert r.headers['X-Requested-Path'] == '/containers/nginx/logs'
+ assert r.headers['X-Requested-Query-String'] == 'timestamp=true'
+ assert r.headers['X-Socket-Path'] == usock_thread.usock
+ assert isinstance(r.connection, requests_unixsocket.UnixAdapter)
+ assert r.url == url
+ if method == 'head':
+ assert r.text == ''
+ else:
+ assert r.text == 'Hello world!'
+
+
+def test_unix_domain_adapter_connection_error():
+ session = requests_unixsocket.Session('http+unix://')
+
+ for method in ['get', 'post', 'head', 'patch', 'put', 'delete', 'options']:
+ with pytest.raises(requests.ConnectionError):
+ getattr(session, method)(
+ 'http+unix://socket_does_not_exist/path/to/page')
+
+
+def test_unix_domain_adapter_connection_proxies_error():
+ session = requests_unixsocket.Session('http+unix://')
+
+ for method in ['get', 'post', 'head', 'patch', 'put', 'delete', 'options']:
+ with pytest.raises(ValueError) as excinfo:
+ getattr(session, method)(
+ 'http+unix://socket_does_not_exist/path/to/page',
+ proxies={"http+unix": "http://10.10.1.10:1080"})
+ assert ('UnixAdapter does not support specifying proxies'
+ in str(excinfo.value))
+
+
+def test_unix_domain_adapter_monkeypatch():
+ with UnixSocketServerThread() as usock_thread:
+ with requests_unixsocket.monkeypatch('http+unix://'):
+ urlencoded_usock = requests.compat.quote_plus(usock_thread.usock)
+ url = 'http+unix://%s/path/to/page' % urlencoded_usock
+
+ for method in ['get', 'post', 'head', 'patch', 'put', 'delete',
+ 'options']:
+ logger.debug('Calling session.%s(%r) ...', method, url)
+ r = getattr(requests, method)(url)
+ logger.debug(
+ 'Received response: %r with text: %r and headers: %r',
+ r, r.text, r.headers)
+ assert r.status_code == 200
+ assert r.headers['server'] == 'waitress'
+ assert r.headers['X-Transport'] == 'unix domain socket'
+ assert r.headers['X-Requested-Path'] == '/path/to/page'
+ assert r.headers['X-Socket-Path'] == usock_thread.usock
+ assert isinstance(r.connection,
+ requests_unixsocket.UnixAdapter)
+ assert r.url == url
+ if method == 'head':
+ assert r.text == ''
+ else:
+ assert r.text == 'Hello world!'
+
+ for method in ['get', 'post', 'head', 'patch', 'put', 'delete', 'options']:
+ with pytest.raises(requests.exceptions.InvalidSchema):
+ getattr(requests, method)(url)