pyceo/tests/ceo/cli/test_cloud.py

96 lines
3.3 KiB
Python

import os
from click.testing import CliRunner
from ...utils import gssapi_token_ctx
from ceo.cli import cli
def test_cloud_account_activate(cli_setup, mock_cloud_server, new_user, cfg):
base_domain = cfg.get('base_domain')
mock_cloud_server.clear()
runner = CliRunner()
with gssapi_token_ctx(new_user.uid):
result = runner.invoke(cli, ['cloud', 'account', 'activate'])
expected = (
'Congratulations! Your cloud account has been activated.\n'
f'You may now login into https://cloud.{base_domain} with your CSC credentials.\n'
"Make sure to enter 'Members' for the domain (no quotes).\n"
'\n'
'Please note that your cloud account will be PERMANENTLY DELETED when\n'
'your CSC membership expires, so make sure to purchase enough membership\n'
'terms in advance. You will receive a warning email one week before your\n'
'cloud account is deleted, so please make sure to check your Junk folder.\n'
)
assert result.exit_code == 0
assert result.output == expected
def test_cloud_accounts_purge(cli_setup, mock_cloud_server, mock_harbor_server):
mock_cloud_server.clear()
runner = CliRunner()
result = runner.invoke(cli, ['cloud', 'accounts', 'purge'])
assert result.exit_code == 0
def test_cloud_vhosts(cli_setup, new_user, cfg):
members_domain = cfg.get('cloud vhosts_members_domain')
uid = new_user.uid
domain1 = uid + '.' + members_domain
ip1 = '172.19.134.11'
runner = CliRunner()
with gssapi_token_ctx(uid):
result = runner.invoke(cli, ['cloud', 'vhosts', 'add', domain1, ip1])
expected = (
'Please wait, this may take a while...\n'
'Done.\n'
)
assert result.exit_code == 0
assert result.output == expected
with gssapi_token_ctx(uid):
result = runner.invoke(cli, ['cloud', 'vhosts', 'list'])
expected = domain1 + ': ' + ip1 + '\n'
assert result.exit_code == 0
assert result.output == expected
with gssapi_token_ctx(uid):
result = runner.invoke(cli, ['cloud', 'vhosts', 'delete', domain1])
expected = 'Done.\n'
assert result.exit_code == 0
assert result.output == expected
def test_k8s_account_activate(cli_setup, new_user):
uid = new_user.uid
runner = CliRunner()
old_home = os.environ['HOME']
os.environ['HOME'] = new_user.home_directory
try:
with gssapi_token_ctx(uid):
result = runner.invoke(cli, ['k8s', 'account', 'activate'])
finally:
os.environ['HOME'] = old_home
expected = (
"Congratulations! You have a new kubeconfig in ~/.kube/config.\n"
"Run `kubectl cluster-info` to make sure everything is working.\n"
)
assert result.exit_code == 0
assert result.output == expected
assert os.path.isfile(os.path.join(new_user.home_directory, '.kube', 'config'))
def test_registry_project_create(cli_setup, mock_harbor_server, new_user):
uid = new_user.uid
runner = CliRunner()
mock_harbor_server.reset()
mock_harbor_server.users.append(uid)
with gssapi_token_ctx(uid):
result = runner.invoke(cli, ['registry', 'project', 'create'])
expected = 'Congratulations! Your registry project was successfully created.\n'
assert result.exit_code == 0
assert result.output == expected