Merging upstream version 0.12.0.
Signed-off-by: Daniel Baumann <daniel@debian.org>
This commit is contained in:
parent
f45bc3d463
commit
8d2f70e3c7
77 changed files with 23610 additions and 2331 deletions
115
tests/unit/logics/test_arista_server.py
Normal file
115
tests/unit/logics/test_arista_server.py
Normal 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
|
Loading…
Add table
Add a link
Reference in a new issue