Files

134 lines
5.6 KiB
Python

"""
Functional tests for the command to show the DCPMMs
"""
from __future__ import absolute_import
import sys
import pytest
from jsonpointer import resolve_pointer
from pmemtests.functional.conftest import RestClient
from rdmc_helper import ReturnCodes
class TestShowDcPmemCommand(object):
"""Class for functional tests for the command to enable and disable the scalable pmem feature"""
@staticmethod
def test_show_invalid_flag(ilorest):
""" test function call with invalid flag """
results = ilorest.run(['showdcpmm', '--bad-flag'])
sys.stdout.write("results.stdout: ")
sys.stdout.write(results.stdout)
sys.stdout.write("results.stderr: ")
sys.stdout.write(results.stderr)
assert results.retcode == ReturnCodes.INVALID_COMMAND_LINE_ERROR
@staticmethod
def test_show_help_flag(ilorest):
""" test function call with help flag """
results = ilorest.run(['showdcpmm', '-h'])
sys.stdout.write("results.stdout: ")
sys.stdout.write(results.stdout)
sys.stdout.write("results.stderr: ")
sys.stdout.write(results.stderr)
assert results.retcode == ReturnCodes.SUCCESS
@staticmethod
def test_showdcpmm_no_flag(ilorest, dl360_large):
"""Test for the case when `showdcpmm` command is run without any flag"""
url, username, password = dl360_large.config
with ilorest.session(url, username, password):
results = ilorest.run(['showdcpmm'])
sys.stdout.write("results.stdout: ")
sys.stdout.write(results.stdout)
sys.stdout.write("results.stderr: ")
sys.stdout.write(results.stderr)
assert results.retcode == ReturnCodes.SUCCESS
@staticmethod
def test_showdcpmm_dimm_flag_1(ilorest):
"""Test for the case when `showdcpmm` command is run with dimm flag"""
results = ilorest.run(['showdcpmm', '--dimm'])
sys.stdout.write("results.stdout: ")
sys.stdout.write(results.stdout)
sys.stdout.write("results.stderr: ")
sys.stdout.write(results.stderr)
assert results.retcode == ReturnCodes.INVALID_COMMAND_LINE_ERROR
@staticmethod
def test_showdcpmm_dimm_flag_2(ilorest, dl360_large):
"""Test for the case when `showdcpmm` command is run with dimm flag"""
url, username, password = dl360_large.config
with ilorest.session(url, username, password):
results = ilorest.run(['showdcpmm', '--dimm', '1@2'])
sys.stdout.write("results.stdout: ")
sys.stdout.write(results.stdout)
sys.stdout.write("results.stderr: ")
sys.stdout.write(results.stderr)
assert results.retcode == ReturnCodes.SUCCESS
@staticmethod
def test_showdcpmm_dimm_flag_3(ilorest, dl360_large):
"""Test for the case when `showdcpmm` command is run with dimm flag"""
url, username, password = dl360_large.config
with ilorest.session(url, username, password):
results = ilorest.run(['showdcpmm', '--dimm', '1@2', '2@3'])
sys.stdout.write("results.stdout: ")
sys.stdout.write(results.stdout)
sys.stdout.write("results.stderr: ")
sys.stdout.write(results.stderr)
assert results.retcode == ReturnCodes.INVALID_COMMAND_LINE_ERROR
@staticmethod
@pytest.mark.skip(reason="temporarily remove display flag")
def test_all_and_display_flags(ilorest):
"""Test for the case when --all and --display flags are specified together"""
results = ilorest.run(['showdcpmm', '--all', '--display', 'xyz'])
sys.stdout.write("results.stdout: ")
sys.stdout.write(results.stdout)
sys.stdout.write("results.stderr: ")
sys.stdout.write(results.stderr)
assert results.retcode == ReturnCodes.INVALID_COMMAND_LINE_ERROR
@staticmethod
def test_device_and_config_flags(ilorest):
"""Test for the case when --device and --config flags are specified together"""
results = ilorest.run(['showdcpmm', '--device', '--config'])
sys.stdout.write("results.stdout: ")
sys.stdout.write(results.stdout)
sys.stdout.write("results.stderr: ")
sys.stdout.write(results.stderr)
assert results.retcode == ReturnCodes.INVALID_COMMAND_LINE_ERROR
@staticmethod
def test_logical_and_summary_flags(ilorest):
"""Test for the case when --summary and --logical flags are specified together"""
results = ilorest.run(['showdcpmm', '--logical', '--summary'])
sys.stdout.write("results.stdout: ")
sys.stdout.write(results.stdout)
sys.stdout.write("results.stderr: ")
sys.stdout.write(results.stderr)
assert results.retcode == ReturnCodes.INVALID_COMMAND_LINE_ERROR
@staticmethod
def test_example(ilorest, dl360_large):
""" this is just an example to show using the RestClient """
url, username, password = dl360_large.config
# run ilorest rawget
with ilorest.session(url, username, password):
results = ilorest.run(['rawget', '/redfish/v1/systems/1/bios/settings'])
sys.stdout.write("results.stdout: ")
sys.stdout.write(results.stdout)
sys.stdout.write("results.stderr: ")
sys.stdout.write(results.stderr)
assert results.retcode == ReturnCodes.SUCCESS
# check REST attributes
client = RestClient(url, username, password)
bios_settings = client.get('/redfish/v1/systems/1/bios/settings')
sys.stdout.write(str(bios_settings))
assert resolve_pointer(bios_settings, '/Attributes/MemFastTraining') == "Enabled"