update
This commit is contained in:
64
tests/test_redfish_client.py
Normal file
64
tests/test_redfish_client.py
Normal file
@@ -0,0 +1,64 @@
|
||||
import pytest
|
||||
from unittest.mock import MagicMock, patch
|
||||
from flask import Flask
|
||||
from backend.services.redfish_client import RedfishClient
|
||||
|
||||
@pytest.fixture
|
||||
def app():
|
||||
app = Flask(__name__)
|
||||
app.config["REDFISH_TIMEOUT"] = 10
|
||||
app.config["REDFISH_VERIFY_SSL"] = True
|
||||
return app
|
||||
|
||||
@patch("backend.services.redfish_client.requests.Session")
|
||||
def test_redfish_client_init_defaults(mock_session):
|
||||
"""Test initialization with default values when no app context."""
|
||||
client = RedfishClient("1.2.3.4", "user", "pass")
|
||||
assert client.timeout == 15
|
||||
assert client.verify_ssl == False
|
||||
assert client.base_url == "https://1.2.3.4/redfish/v1"
|
||||
|
||||
@patch("backend.services.redfish_client.requests.Session")
|
||||
def test_redfish_client_init_with_app_config(mock_session, app):
|
||||
"""Test initialization picking up Flask app config."""
|
||||
with app.app_context():
|
||||
client = RedfishClient("1.2.3.4", "user", "pass")
|
||||
assert client.timeout == 10
|
||||
assert client.verify_ssl == True
|
||||
|
||||
@patch("backend.services.redfish_client.requests.Session")
|
||||
def test_redfish_client_init_override(mock_session, app):
|
||||
"""Test explicit arguments override config."""
|
||||
with app.app_context():
|
||||
client = RedfishClient("1.2.3.4", "user", "pass", timeout=30, verify_ssl=False)
|
||||
assert client.timeout == 30
|
||||
assert client.verify_ssl == False
|
||||
|
||||
@patch("backend.services.redfish_client.requests.Session")
|
||||
def test_get_success(mock_session):
|
||||
"""Test successful GET request."""
|
||||
mock_response = MagicMock()
|
||||
mock_response.json.return_value = {"key": "value"}
|
||||
mock_response.status_code = 200
|
||||
|
||||
session_instance = mock_session.return_value
|
||||
session_instance.get.return_value = mock_response
|
||||
|
||||
client = RedfishClient("1.2.3.4", "user", "pass")
|
||||
result = client.get("/Some/Endpoint")
|
||||
|
||||
assert result == {"key": "value"}
|
||||
session_instance.get.assert_called_with("https://1.2.3.4/redfish/v1/Some/Endpoint", timeout=15)
|
||||
|
||||
@patch("backend.services.redfish_client.requests.Session")
|
||||
def test_get_absolute_path(mock_session):
|
||||
"""Test GET request with absolute path."""
|
||||
mock_response = MagicMock()
|
||||
mock_response.json.return_value = {}
|
||||
session_instance = mock_session.return_value
|
||||
session_instance.get.return_value = mock_response
|
||||
|
||||
client = RedfishClient("1.2.3.4", "user", "pass")
|
||||
client.get("/redfish/v1/Managers/1")
|
||||
|
||||
session_instance.get.assert_called_with("https://1.2.3.4/redfish/v1/Managers/1", timeout=15)
|
||||
Reference in New Issue
Block a user