54 lines
1.6 KiB
Python
54 lines
1.6 KiB
Python
"""Test Home Assistant ssl utility functions."""
|
|
|
|
from unittest.mock import MagicMock, Mock, patch
|
|
|
|
import pytest
|
|
|
|
from homeassistant.util.ssl import (
|
|
SSL_CIPHER_LISTS,
|
|
SSLCipherList,
|
|
client_context,
|
|
create_no_verify_ssl_context,
|
|
)
|
|
|
|
|
|
@pytest.fixture
|
|
def mock_sslcontext():
|
|
"""Mock the ssl lib."""
|
|
ssl_mock = MagicMock(set_ciphers=Mock(return_value=True))
|
|
return ssl_mock
|
|
|
|
|
|
def test_client_context(mock_sslcontext) -> None:
|
|
"""Test client context."""
|
|
with patch("homeassistant.util.ssl.ssl.SSLContext", return_value=mock_sslcontext):
|
|
client_context()
|
|
mock_sslcontext.set_ciphers.assert_not_called()
|
|
|
|
client_context(SSLCipherList.MODERN)
|
|
mock_sslcontext.set_ciphers.assert_called_with(
|
|
SSL_CIPHER_LISTS[SSLCipherList.MODERN]
|
|
)
|
|
|
|
client_context(SSLCipherList.INTERMEDIATE)
|
|
mock_sslcontext.set_ciphers.assert_called_with(
|
|
SSL_CIPHER_LISTS[SSLCipherList.INTERMEDIATE]
|
|
)
|
|
|
|
|
|
def test_no_verify_ssl_context(mock_sslcontext) -> None:
|
|
"""Test no verify ssl context."""
|
|
with patch("homeassistant.util.ssl.ssl.SSLContext", return_value=mock_sslcontext):
|
|
create_no_verify_ssl_context()
|
|
mock_sslcontext.set_ciphers.assert_not_called()
|
|
|
|
create_no_verify_ssl_context(SSLCipherList.MODERN)
|
|
mock_sslcontext.set_ciphers.assert_called_with(
|
|
SSL_CIPHER_LISTS[SSLCipherList.MODERN]
|
|
)
|
|
|
|
create_no_verify_ssl_context(SSLCipherList.INTERMEDIATE)
|
|
mock_sslcontext.set_ciphers.assert_called_with(
|
|
SSL_CIPHER_LISTS[SSLCipherList.INTERMEDIATE]
|
|
)
|