1
0
Fork 0

Merging upstream version 0.12.0.

Signed-off-by: Daniel Baumann <daniel@debian.org>
This commit is contained in:
Daniel Baumann 2025-02-10 06:39:52 +01:00
parent f45bc3d463
commit 8d2f70e3c7
Signed by: daniel
GPG key ID: FBB4F0E80A80222F
77 changed files with 23610 additions and 2331 deletions

View file

@ -0,0 +1,115 @@
import pytest
import requests
from unittest.mock import patch, Mock
from eos_downloader.logics.arista_server import AristaServer
import eos_downloader.exceptions
from tests.lib.fixtures import xml_path, xml_data
@pytest.fixture
def server():
return AristaServer(token="testtoken")
def test_authenticate_success(server):
with patch('requests.post') as mock_post:
mock_response = Mock()
mock_response.json.return_value = {
"status": {"message": "Success"},
"data": {"session_code": "testsessioncode"}
}
mock_post.return_value = mock_response
assert server.authenticate() is True
assert server._session_id is not None
def test_authenticate_invalid_token(server):
with patch('requests.post') as mock_post:
mock_response = Mock()
mock_response.json.return_value = {
"status": {"message": "Invalid access token"}
}
mock_post.return_value = mock_response
with pytest.raises(eos_downloader.exceptions.AuthenticationError):
server.authenticate()
def test_authenticate_expired_token(server):
with patch('requests.post') as mock_post:
mock_response = Mock()
mock_response.json.return_value = {
"status": {"message": "Access token expired"}
}
mock_post.return_value = mock_response
with pytest.raises(eos_downloader.exceptions.AuthenticationError):
server.authenticate()
def test_authenticate_key_error(server):
with patch('requests.post') as mock_post:
mock_response = Mock()
mock_response.json.return_value = {
"status": {"message": "Success"}
}
mock_post.return_value = mock_response
assert server.authenticate() is False
assert server._session_id is None
def test_get_xml_data_success(server, xml_path):
with patch('requests.post') as mock_post:
with open(xml_path, 'r') as file:
xml_content = file.read()
mock_response = Mock()
mock_response.json.return_value = {
"status": {"message": "Success"},
"data": {"xml": xml_content},
}
mock_post.return_value = mock_response
xml_data = server.get_xml_data()
assert xml_data is not None
assert (
xml_data.getroot().tag == "cvpFolderList"
) # Assuming the root tag in data.xml is 'cvpFolderList'
def test_get_xml_data_key_error(server):
with patch('requests.post') as mock_post:
mock_response = Mock()
mock_response.json.return_value = {}
mock_post.return_value = mock_response
with pytest.raises(KeyError):
server.get_xml_data()
def test_get_url_success(server):
with patch('requests.post') as mock_post:
mock_response = Mock()
mock_response.json.return_value = {
"status": {"message": "Success"},
"data": {"url": "http://example.com/download"},
}
mock_post.return_value = mock_response
url = server.get_url("remote/file/path")
assert url == "http://example.com/download"
def test_get_url_no_data(server):
with patch('requests.post') as mock_post:
mock_response = Mock()
mock_response.json.return_value = {
"status": {"message": "Success"},
}
mock_post.return_value = mock_response
url = server.get_url("remote/file/path")
assert url is None