Initial commit
This commit is contained in:
commit
1b51716d1b
72 changed files with 8204 additions and 0 deletions
204
tests/cli/test_jobs.py
Normal file
204
tests/cli/test_jobs.py
Normal file
|
|
@ -0,0 +1,204 @@
|
|||
"""Test for the cli componenets"""
|
||||
# pylint: disable=redefined-outer-name, no-name-in-module, unused-import
|
||||
|
||||
import json
|
||||
from unittest import mock
|
||||
|
||||
import requests
|
||||
|
||||
from redfish_cli.cli import parse_args
|
||||
from redfish_cli.cli.jobs import jobs_list, job_details, watch_job
|
||||
|
||||
from ..utils import get_test_content, MockResponse, MockWatchedJobResponse
|
||||
|
||||
|
||||
def test_list_jobs(capsys, monkeypatch):
|
||||
"""Test the list jobs command"""
|
||||
# pylint: disable=fixme, unused-argument, unused-variable
|
||||
|
||||
args = parse_args(
|
||||
[
|
||||
"-s",
|
||||
"172.1.0.1",
|
||||
"-f",
|
||||
"json",
|
||||
"jobs",
|
||||
"-u",
|
||||
"root",
|
||||
"-p",
|
||||
"password123",
|
||||
"list",
|
||||
"--all",
|
||||
]
|
||||
)
|
||||
monkeypatch.setattr(
|
||||
requests,
|
||||
"get",
|
||||
lambda args, auth=None, verify=None, data=None, headers=None, timeout=None: MockResponse(
|
||||
content=get_test_content("jobs_list.json")
|
||||
),
|
||||
)
|
||||
|
||||
jobs_list(args=args)
|
||||
captured = capsys.readouterr()
|
||||
result = captured.out
|
||||
assert 5 == json.loads(result)["Members@odata.count"]
|
||||
|
||||
args = parse_args(
|
||||
[
|
||||
"-s",
|
||||
"172.1.0.1",
|
||||
"-f",
|
||||
"json",
|
||||
"jobs",
|
||||
"-u",
|
||||
"root",
|
||||
"-p",
|
||||
"password123",
|
||||
"list",
|
||||
]
|
||||
)
|
||||
jobs_list(args=args)
|
||||
captured = capsys.readouterr()
|
||||
result = captured.out
|
||||
assert 0 == json.loads(result)["Members@odata.count"]
|
||||
|
||||
args = parse_args(
|
||||
[
|
||||
"-s",
|
||||
"172.1.0.1",
|
||||
"-f",
|
||||
"text",
|
||||
"jobs",
|
||||
"-u",
|
||||
"root",
|
||||
"-p",
|
||||
"password123",
|
||||
"list",
|
||||
"--all",
|
||||
]
|
||||
)
|
||||
jobs_list(args=args)
|
||||
captured = capsys.readouterr()
|
||||
result = captured.out
|
||||
assert (
|
||||
"JID_878659984891 RAIDConfiguration 100 Config:RAID:RAID.Slot.6-1 Completed\n"
|
||||
"JID_878682850779 RAIDConfiguration 100 Config:RAID:RAID.Slot.6-1 Completed\n"
|
||||
"JID_920326518992 RAIDConfiguration 100 Config:RAID:RAID.Slot.6-1 Completed\n"
|
||||
"JID_923469653542 RAIDConfiguration 100 Config:RAID:RAID.Slot.6-1 Completed\n"
|
||||
"JID_924369311959 RAIDConfiguration 100 Config:RAID:RAID.Slot.6-1 Completed\n"
|
||||
) == result
|
||||
|
||||
args = parse_args(
|
||||
[
|
||||
"-s",
|
||||
"172.1.0.1",
|
||||
"-f",
|
||||
"table",
|
||||
"jobs",
|
||||
"-u",
|
||||
"root",
|
||||
"-p",
|
||||
"password123",
|
||||
"list",
|
||||
"--all",
|
||||
]
|
||||
)
|
||||
jobs_list(args=args)
|
||||
captured = capsys.readouterr()
|
||||
result = captured.out
|
||||
expected = get_test_content("job_list_table.txt")
|
||||
assert expected == result
|
||||
|
||||
|
||||
def test_job_details(capsys, monkeypatch):
|
||||
"""Test the list jobs command"""
|
||||
# pylint: disable=fixme, unused-argument, unused-variable
|
||||
|
||||
args = parse_args(
|
||||
[
|
||||
"-s",
|
||||
"172.1.0.1",
|
||||
"-f",
|
||||
"json",
|
||||
"jobs",
|
||||
"-u",
|
||||
"root",
|
||||
"-p",
|
||||
"password123",
|
||||
"show",
|
||||
"-j",
|
||||
"JID_924369311959",
|
||||
]
|
||||
)
|
||||
monkeypatch.setattr(
|
||||
requests,
|
||||
"get",
|
||||
lambda args, auth=None, verify=None, data=None, headers=None, timeout=None: MockResponse(
|
||||
content=get_test_content("api_job_details.json")
|
||||
),
|
||||
)
|
||||
|
||||
job_details(args=args)
|
||||
captured = capsys.readouterr()
|
||||
result = captured.out
|
||||
assert "2023-08-20T05:59:24" == json.loads(result)["CompletionTime"]
|
||||
|
||||
|
||||
def test_watch_jobs(capsys, monkeypatch):
|
||||
"""Test the list jobs command"""
|
||||
# pylint: disable=fixme, unused-argument, unused-variable
|
||||
|
||||
response = MockWatchedJobResponse()
|
||||
args = parse_args(
|
||||
[
|
||||
"-s",
|
||||
"172.1.0.1",
|
||||
"-f",
|
||||
"json",
|
||||
"jobs",
|
||||
"-u",
|
||||
"root",
|
||||
"-p",
|
||||
"password123",
|
||||
"show",
|
||||
"-j",
|
||||
"JID_924369311959",
|
||||
]
|
||||
)
|
||||
monkeypatch.setattr(
|
||||
requests,
|
||||
"get",
|
||||
lambda args, auth=None, verify=None, data=None, headers=None, timeout=None: response,
|
||||
)
|
||||
|
||||
watch_job(args=args)
|
||||
captured = capsys.readouterr()
|
||||
result = captured.out
|
||||
assert '"PercentComplete": 100,' in result
|
||||
|
||||
response.accessed = 0
|
||||
args = parse_args(
|
||||
[
|
||||
"-s",
|
||||
"172.1.0.1",
|
||||
"-f",
|
||||
"text",
|
||||
"jobs",
|
||||
"-u",
|
||||
"root",
|
||||
"-p",
|
||||
"password123",
|
||||
"show",
|
||||
"-j",
|
||||
"JID_924369311959",
|
||||
]
|
||||
)
|
||||
watch_job(args=args)
|
||||
captured = capsys.readouterr()
|
||||
result = captured.out
|
||||
assert "Completed 100\n" in result
|
||||
|
||||
# Test that watch jobs catches a KeyboardInterrup and exits cleanly
|
||||
with mock.patch("requests.get", side_effect=KeyboardInterrupt):
|
||||
watch_job(args=args)
|
||||
Loading…
Add table
Add a link
Reference in a new issue