|
| 1 | +"""SSL error handling test module.""" |
| 2 | + |
| 3 | +from unittest.mock import patch |
| 4 | + |
| 5 | +import requests |
| 6 | +import urllib3 |
| 7 | + |
| 8 | +from openhexa.utils.session import create_requests_session |
| 9 | + |
| 10 | + |
| 11 | +class TestSSLErrorHandling: |
| 12 | + """Test SSL error handling functionality.""" |
| 13 | + |
| 14 | + def test_create_requests_session_with_verify_true(self): |
| 15 | + """Test create_requests_session with SSL verification enabled.""" |
| 16 | + session = create_requests_session(verify=True) |
| 17 | + assert session.verify is True |
| 18 | + |
| 19 | + def test_create_requests_session_with_verify_false(self): |
| 20 | + """Test create_requests_session with SSL verification disabled.""" |
| 21 | + with patch("urllib3.disable_warnings") as mock_disable_warnings: |
| 22 | + session = create_requests_session(verify=False) |
| 23 | + assert session.verify is False |
| 24 | + mock_disable_warnings.assert_called_once_with(urllib3.exceptions.InsecureRequestWarning) |
| 25 | + |
| 26 | + def test_create_requests_session_verify_default(self): |
| 27 | + """Test create_requests_session with default verify parameter.""" |
| 28 | + session = create_requests_session() |
| 29 | + assert session.verify is True |
| 30 | + |
| 31 | + def test_ssl_error_handling_logic(self): |
| 32 | + """Test that SSL errors are properly converted to GraphQLError.""" |
| 33 | + ssl_error = requests.exceptions.SSLError("CERTIFICATE_VERIFY_FAILED error") |
| 34 | + |
| 35 | + if "CERTIFICATE_VERIFY_FAILED" in str(ssl_error): |
| 36 | + expected_msg = ( |
| 37 | + "SSL certificate verification failed. " |
| 38 | + "If you want to disable SSL verification, set the environment variable: HEXA_VERIFY_SSL=false" |
| 39 | + ) |
| 40 | + assert "SSL certificate verification failed" in expected_msg |
| 41 | + assert "HEXA_VERIFY_SSL=false" in expected_msg |
| 42 | + |
| 43 | + other_ssl_error = requests.exceptions.SSLError("Some other SSL error") |
| 44 | + assert "Some other SSL error" in str(other_ssl_error) |
0 commit comments