Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
def setup_method(self):
"""
Set up a faked session, and add a faked Console without any
child resources.
"""
self.session = FakedSession('fake-host', 'fake-hmc', '2.13.1', '1.8')
self.client = Client(self.session)
self.faked_console = self.session.hmc.consoles.add({
'object-id': None,
# object-uri will be automatically set
'parent': None,
'class': 'console',
'name': 'fake-console1',
'description': 'Console #1',
})
self.console = self.client.consoles.find(name=self.faked_console.name)
# Input properties for a user with the same name
sn_user_props = {
'name': user_name,
'description': 'User with same name',
'type': 'standard',
'authentication-type': 'local',
}
user_mgr = self.console.users
user = user_mgr.find(name=user_name)
# Execute the deletion code to be tested
user.delete()
# Check that the user no longer exists
with pytest.raises(NotFound):
user_mgr.find(name=user_name)
# Execute the creation code to be tested.
user_mgr.create(sn_user_props)
# Check that the user exists again under that name
sn_user = user_mgr.find(name=user_name)
description = sn_user.get_property('description')
assert description == sn_user_props['description']
def test_ts_str(self):
"""Test Timestats.__str__()."""
keeper = TimeStatsKeeper()
timestats = TimeStats(keeper, "foo")
s = str(timestats)
assert s.startswith("TimeStats:"), \
"Unexpected str(timestats): %r" % s
num_lines = len(s.split('\n'))
assert num_lines == 1, \
"Unexpected str(timestats): %r" % s
def test_str_one(self):
"""Test TimestatsKeeper.__str__() for an enabled keeper with one data
item."""
keeper = TimeStatsKeeper()
keeper.enable()
duration = 0.1
stats = keeper.get_stats('foo')
# produce a data item
stats.begin()
time.sleep(duration)
stats.end()
s = str(keeper)
assert s.startswith(PRINT_HEADER), \
"Unexpected str(keeper): %r" % s
num_lines = len(s.split('\n'))
assert num_lines == 3, \
def test_init(self):
"""Test initialization of Job object."""
session = Session('fake-host', 'fake-user', 'fake-pw')
# Jobs exist only for POST, but we want to test that the specified HTTP
# method comes back regardless:
op_method = 'GET'
op_uri = '/api/bla'
job = Job(session, self.job_uri, op_method, op_uri)
assert job.uri == self.job_uri
assert job.session == session
assert job.op_method == op_method
assert job.op_uri == op_uri
def test_check_complete_success_noresult(self):
"""Test check_for_completion() with successful complete job without
result."""
with requests_mock.mock() as m:
self.mock_server_1(m)
session = Session('fake-host', 'fake-user', 'fake-pw')
op_method = 'POST'
op_uri = '/api/foo'
job = Job(session, self.job_uri, op_method, op_uri)
query_job_status_result = {
'status': 'complete',
'job-status-code': 200,
# 'job-reason-code' omitted because HTTP status good
# 'job-results' is optional and is omitted
}
m.get(self.job_uri, json=query_job_status_result)
m.delete(self.job_uri, status_code=204)
job_status, op_result = job.check_for_completion()
assert job_status == 'complete'
assert op_result is None
def setup_method(self):
self.session = Session('vswitch-dpm-host', 'vswitch-user',
'vswitch-pwd')
self.client = Client(self.session)
with requests_mock.mock() as m:
# Because logon is deferred until needed, we perform it
# explicitly in order to keep mocking in the actual test simple.
m.post('/api/sessions', json={'api-session': 'vswitch-session-id'})
self.session.logon()
self.cpc_mgr = self.client.cpcs
with requests_mock.mock() as m:
result = {
'cpcs': [
{
'object-uri': '/api/cpcs/vswitch-cpc-id-1',
'name': 'CPC',
'status': 'service-required',
rt_config = zhmcclient.RetryTimeoutConfig(
connect_timeout=10,
connect_retries=1,
)
# Check HMCs and their CPCs
for cpc_name in cpc_items:
cpc_item = cpc_items[cpc_name]
hmc_host = cpc_item['hmc_host']
info(capsys, "Checking HMC %r for CPC %r", (hmc_host, cpc_name))
session = zhmcclient.Session(
hmc_host, cpc_item['hmc_userid'], cpc_item['hmc_password'],
retry_timeout_config=rt_config)
client = zhmcclient.Client(session)
try:
session.logon()
except zhmcclient.ConnectionError as exc:
info(capsys, "Skipping HMC %r for CPC %r: %s",
(hmc_host, cpc_name, exc))
continue
cpcs = client.cpcs.list()
cpc_names = [cpc.name for cpc in cpcs]
if cpc_name not in cpc_names:
raise AssertionError(
# Enable debug logging if specified
if LOG_HANDLER:
logger = logging.getLogger('zhmcclient.hmc')
if LOG_HANDLER not in logger.handlers:
logger.addHandler(LOG_HANDLER)
logger.setLevel(logging.DEBUG)
logger = logging.getLogger('zhmcclient.api')
if LOG_HANDLER not in logger.handlers:
logger.addHandler(LOG_HANDLER)
logger.setLevel(logging.DEBUG)
# Creating a session does not interact with the HMC (logon is deferred)
session = zhmcclient.Session(
hd.hmc_host, hd.hmc_userid, hd.hmc_password)
# Check access to the HMC
try:
session.logon()
except zhmcclient.Error as exc:
msg = "Cannot log on to HMC {0} at {1} due to {2}: {3}". \
format(hd.nickname, hd.hmc_host, exc.__class__.__name__, exc)
hd.skip_msg = msg
pytest.skip(msg)
hd.skip_msg = None
session.hmc_definition = hd
yield session
else:
# A test CPC is defined in the environment -> use it!
info(capsys, "Testing with CPC %r", cpc_name)
eff_rt_config = DEFAULT_RT_CONFIG
if rt_config:
eff_rt_config.override_with(rt_config)
cpc_item = hmc_creds.get_cpc_item(cpc_name)
assert cpc_item, "HMC credentials file not found: {!r}".\
format(hmc_creds.filepath)
session = zhmcclient.Session(
cpc_item['hmc_host'], cpc_item['hmc_userid'],
cpc_item['hmc_password'], retry_timeout_config=eff_rt_config)
faked_cpc = None
client = zhmcclient.Client(session)
cpc = client.cpcs.find(name=cpc_name)
return cpc_name, session, client, cpc, faked_cpc