distcloud-client/distributedcloud-client/dcmanagerclient/tests/test_shell.py

183 lines
7.7 KiB
Python

# Copyright 2016 EricssonAB.
# Copyright (c) 2017-2021, 2024 Wind River Systems, Inc.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
import mock
from dcmanagerclient.tests import base_shell_test as base
class TestShell(base.BaseShellTests):
@mock.patch("dcmanagerclient.api.client.determine_client_version")
def test_dcmanager_version(self, mock_client_version):
self.shell("--os-dcmanager-version=v1 quota-defaults")
self.assertTrue(mock_client_version.called)
dcmanager_version = mock_client_version.call_args
self.assertEqual("v1.0", dcmanager_version[0][0])
def test_dcmanager_help(self):
help_results = self.shell("--help")
self.assertTrue("Commands for API" in help_results[0])
@mock.patch("dcmanagerclient.api.client.determine_client_version")
def test_default_dcmanager_version(self, mock_client_version):
default_version = "v1.0"
self.shell("quota defaults")
self.assertTrue(mock_client_version.called)
dcmanager_version = mock_client_version.call_args
self.assertEqual(default_version, dcmanager_version[0][0])
@mock.patch("dcmanagerclient.api.client.client")
def test_env_variables(self, mock_client):
self.shell(
"--os-auth-url=https://127.0.0.1:35357/v3 "
"--os-username=admin "
"--os-password=1234 "
"--os-tenant-name=admin "
"quota defaults"
)
self.assertTrue(mock_client.called)
params = mock_client.call_args
self.assertEqual("https://127.0.0.1:35357/v3", params[1]["auth_url"])
self.assertEqual("admin", params[1]["username"])
self.assertEqual("admin", params[1]["project_name"])
@mock.patch("dcmanagerclient.api.client.client")
def test_env_without_auth_url(self, mock_client):
self.shell(
"--os-username=admin "
"--os-password=1234 "
"--os-tenant-name=admin "
"quota defaults"
)
self.assertTrue(mock_client.called)
params = mock_client.call_args
self.assertEqual("", params[1]["auth_url"])
self.assertEqual("admin", params[1]["username"])
self.assertEqual("admin", params[1]["project_name"])
@mock.patch("dcmanagerclient.api.client.client")
def test_kb_service_type(self, mock_client):
self.shell("--os-service-type=dcmanager")
self.assertTrue(mock_client.called)
parameters = mock_client.call_args
self.assertEqual("dcmanager", parameters[1]["service_type"])
@mock.patch("dcmanagerclient.api.client.client")
def test_kb_default_service_type(self, mock_client):
self.shell("quota defaults")
self.assertTrue(mock_client.called)
params = mock_client.call_args
# Default service type is dcmanager
self.assertEqual("dcmanager", params[1]["service_type"])
@mock.patch("dcmanagerclient.api.client.client")
def test_kb_endpoint_type(self, mock_client):
self.shell("--os-endpoint-type=adminURL quota-defaults")
self.assertTrue(mock_client.called)
params = mock_client.call_args
self.assertEqual("adminURL", params[1]["endpoint_type"])
@mock.patch("dcmanagerclient.api.client.client")
def test_kb_default_endpoint_type(self, mock_client):
self.shell("quota defaults")
self.assertTrue(mock_client.called)
params = mock_client.call_args
self.assertEqual("internalURL", params[1]["endpoint_type"])
@mock.patch("dcmanagerclient.api.client.client")
def test_os_auth_token(self, mock_client):
self.shell("--os-auth-token=abcd1234 quota defaults")
self.assertTrue(mock_client.called)
params = mock_client.call_args
self.assertEqual("abcd1234", params[1]["auth_token"])
@mock.patch("dcmanagerclient.api.client.client")
def test_command_without_dcmanager_url(self, mock_client):
self.shell("quota defaults")
self.assertTrue(mock_client.called)
params = mock_client.call_args
self.assertEqual("", params[1]["dcmanager_url"])
@mock.patch("dcmanagerclient.api.client.client")
def test_command_with_dcmanager_url(self, mock_client):
self.shell("--dcmanager-url=http://localhost:8118/v1.0 quota-defaults")
self.assertTrue(mock_client.called)
params = mock_client.call_args
self.assertEqual("http://localhost:8118/v1.0", params[1]["dcmanager_url"])
@mock.patch("dcmanagerclient.api.client.client")
def test_command_without_project_name(self, mock_client):
self.shell("quota defaults")
self.assertTrue(mock_client.called)
params = mock_client.call_args
self.assertEqual("", params[1]["project_name"])
@mock.patch("dcmanagerclient.api.client.client")
def test_dcmanager_profile(self, mock_client):
self.shell("--profile=SECRET_HMAC_KEY quota defaults")
self.assertTrue(mock_client.called)
params = mock_client.call_args
self.assertEqual("SECRET_HMAC_KEY", params[1]["profile"])
@mock.patch("dcmanagerclient.api.client.client")
def test_dcmanager_without_profile(self, mock_client):
self.shell("quota defaults")
self.assertTrue(mock_client.called)
params = mock_client.call_args
self.assertEqual(None, params[1]["profile"])
@mock.patch("dcmanagerclient.api.client.client")
def test_dcmanager_project_name(self, mock_client):
self.shell("--os-project-name default quota defaults")
self.assertTrue(mock_client.called)
params = mock_client.call_args
self.assertEqual("default", params[1]["project_name"])
@mock.patch("dcmanagerclient.api.client.client")
def test_dcmanager_tenant_name(self, mock_client):
self.shell("--os-tenant-name default quota defaults")
self.assertTrue(mock_client.called)
params = mock_client.call_args
self.assertEqual("default", params[1]["project_name"])
@mock.patch("dcmanagerclient.api.client.client")
def test_dcmanager_project_domain_name(self, mock_client):
self.shell("--os-project-domain-name default quota defaults")
self.assertTrue(mock_client.called)
params = mock_client.call_args
self.assertEqual("default", params[1]["project_domain_name"])
@mock.patch("dcmanagerclient.api.client.client")
def test_dcmanager_project_domain_id(self, mock_client):
self.shell("--os-project-domain-id default quota defaults")
self.assertTrue(mock_client.called)
params = mock_client.call_args
self.assertEqual("default", params[1]["project_domain_id"])
@mock.patch("dcmanagerclient.api.client.client")
def test_dcmanager_user_domain_name(self, mock_client):
self.shell("--os-user-domain-name default quota defaults")
self.assertTrue(mock_client.called)
params = mock_client.call_args
self.assertEqual("default", params[1]["user_domain_name"])
@mock.patch("dcmanagerclient.api.client.client")
def test_dcmanager_user_domain_id(self, mock_client):
self.shell("--os-user-domain-id default quota defaults")
self.assertTrue(mock_client.called)
params = mock_client.call_args
self.assertEqual("default", params[1]["user_domain_id"])