def test_exception_returns(): responses.add(responses.GET, CLOUDSCALE_API_URL + '/objects-users/unknown', json={"detail": "Not found."}, status=404) responses.add(responses.GET, CLOUDSCALE_API_URL + '/objects-users/unknown', json={}, status=500) try: cloudscale = Cloudscale(api_token="token") cloudscale.objects_user.get_by_uuid(uuid="unknown") except CloudscaleApiException as e: assert e.status_code == 404 assert str(e) == "API Response Error (404): Not found." assert e.response == { 'data': { 'detail': 'Not found.' }, 'status_code': 404 } try: cloudscale = Cloudscale(api_token="token") cloudscale.objects_user.get_by_uuid(uuid="unknown") except CloudscaleApiException as e: assert e.status_code == 500 assert e.response == {'data': {}, 'status_code': 500} assert str(e) == "API Response Error (500): {}"
def test_network_delete(): uuid = "2db69ba3-1864-4608-853a-0771b6885a3a" responses.add( responses.GET, CLOUDSCALE_API_URL + '/networks/' + uuid, json=NETWORK_RESP, status=200) responses.add( responses.GET, CLOUDSCALE_API_URL + '/networks/unknown', json=NETWORK_RESP, status=200) responses.add( responses.DELETE, CLOUDSCALE_API_URL + '/networks/' + uuid, status=204) responses.add( responses.DELETE, CLOUDSCALE_API_URL + '/networks/unknown', json={ "detail": "Not found." }, status=404) cloudscale = Cloudscale(api_token="token") network = cloudscale.network.delete(uuid=uuid) assert network is None try: cloudscale = Cloudscale(api_token="token") cloudscale.network.delete(uuid="unknown") except CloudscaleApiException as e: assert e.status_code == 404
def test_server_groups_delete(): uuid = "e3b63018-fad6-45f2-9f57-3ea0da726d8c" responses.add( responses.GET, CLOUDSCALE_API_URL + '/server-groups/' + uuid, json=SERVER_GROUP_RESP, status=200) responses.add( responses.GET, CLOUDSCALE_API_URL + '/server-groups/unknown', json=SERVER_GROUP_RESP, status=200) responses.add( responses.DELETE, CLOUDSCALE_API_URL + '/server-groups/' + uuid, status=204) responses.add( responses.DELETE, CLOUDSCALE_API_URL + '/server-groups/unknown', json={ "detail": "Not found." }, status=404) cloudscale = Cloudscale(api_token="token") server_group = cloudscale.server_group.delete(uuid=uuid) assert server_group is None try: cloudscale = Cloudscale(api_token="token") cloudscale.server_group.delete(uuid="unknown") except CloudscaleApiException as e: assert e.status_code == 404
def test_objects_user_update(): uuid = "6fe39134bf4178747eebc429f82cfafdd08891d4279d0d899bc4012db1db6a15" display_name = "alan" responses.add(responses.PATCH, CLOUDSCALE_API_URL + '/objects-users/' + uuid, json=OBJECTS_USER_RESP, status=204) responses.add(responses.GET, CLOUDSCALE_API_URL + '/objects-users/' + uuid, json=OBJECTS_USER_RESP, status=200) responses.add(responses.PATCH, CLOUDSCALE_API_URL + '/objects-users/unknown', json={}, status=404) cloudscale = Cloudscale(api_token="token") objects_user = cloudscale.objects_user.update(uuid=uuid, display_name=display_name) assert objects_user['display_name'] == display_name assert objects_user['id'] == uuid try: cloudscale = Cloudscale(api_token="token") objects_user = cloudscale.objects_user.update( uuid="unknown", display_name=display_name) except CloudscaleApiException as e: assert e.status_code == 404
def test_objects_user_delete(): uuid = "6fe39134bf4178747eebc429f82cfafdd08891d4279d0d899bc4012db1db6a15" responses.add(responses.GET, CLOUDSCALE_API_URL + '/objects-users/' + uuid, json=OBJECTS_USER_RESP, status=200) responses.add(responses.GET, CLOUDSCALE_API_URL + '/objects-users/unknown', json=OBJECTS_USER_RESP, status=200) responses.add(responses.DELETE, CLOUDSCALE_API_URL + '/objects-users/' + uuid, status=204) responses.add(responses.DELETE, CLOUDSCALE_API_URL + '/objects-users/unknown', json={}, status=404) cloudscale = Cloudscale(api_token="token") objects_user = cloudscale.objects_user.delete(uuid=uuid) assert objects_user is None try: cloudscale = Cloudscale(api_token="token") cloudscale.objects_user.delete(uuid="unknown") except CloudscaleApiException as e: assert e.status_code == 404
def test_floating_ip_delete(): network_id = "192.0.2.123" responses.add(responses.GET, CLOUDSCALE_API_URL + '/floating-ips/' + network_id, json=FLOATING_IP_RESP, status=200) responses.add(responses.GET, CLOUDSCALE_API_URL + '/floating-ips/unknown', json=FLOATING_IP_RESP, status=200) responses.add(responses.DELETE, CLOUDSCALE_API_URL + '/floating-ips/' + network_id, status=204) responses.add(responses.DELETE, CLOUDSCALE_API_URL + '/floating-ips/unknown', json={"detail": "Not found."}, status=404) cloudscale = Cloudscale(api_token="token") floating_ip = cloudscale.floating_ip.delete(uuid=network_id) assert floating_ip is None try: cloudscale = Cloudscale(api_token="token") cloudscale.floating_ip.delete(uuid="unknown") except CloudscaleApiException as e: assert e.status_code == 404
def test_objects_user_create(): display_name = "alan" responses.add(responses.POST, CLOUDSCALE_API_URL + '/objects-users', json=OBJECTS_USER_RESP, status=201) responses.add(responses.POST, CLOUDSCALE_API_URL + '/objects-users', json={}, status=500) responses.add(responses.POST, CLOUDSCALE_API_URL + '/objects-users', json=OBJECTS_USER_RESP, status=201) responses.add(responses.POST, CLOUDSCALE_API_URL + '/objects-users', json={}, status=500) cloudscale = Cloudscale(api_token="token") cloudscale.objects_user.create(display_name=display_name, ) try: cloudscale = Cloudscale(api_token="token") cloudscale.objects_user.create(display_name=display_name, ) except CloudscaleApiException as e: assert e.status_code == 500
def test_subnet_delete(): uuid = "33333333-1864-4608-853a-0771b6885a3a" responses.add(responses.GET, CLOUDSCALE_API_URL + '/subnets/' + uuid, json=SUBNET_RESP, status=200) responses.add(responses.GET, CLOUDSCALE_API_URL + '/subnets/unknown', json=SUBNET_RESP, status=200) responses.add(responses.DELETE, CLOUDSCALE_API_URL + '/subnets/' + uuid, status=204) responses.add(responses.DELETE, CLOUDSCALE_API_URL + '/subnets/unknown', json={"detail": "Not found."}, status=404) cloudscale = Cloudscale(api_token="token") subnet = cloudscale.subnet.delete(uuid=uuid) assert subnet is None try: cloudscale = Cloudscale(api_token="token") cloudscale.subnet.delete(uuid="unknown") except CloudscaleApiException as e: assert e.status_code == 404
def test_network_delete(): uuid = "2db69ba3-1864-4608-853a-0771b6885a3a" responses.add( responses.GET, CLOUDSCALE_API_ENDPOINT + '/networks/' + uuid, json=NETWORK_RESP, status=200) responses.add( responses.GET, CLOUDSCALE_API_ENDPOINT + '/networks/unknown', json=NETWORK_RESP, status=200) responses.add( responses.DELETE, CLOUDSCALE_API_ENDPOINT + '/networks/' + uuid, status=204) responses.add( responses.DELETE, CLOUDSCALE_API_ENDPOINT + '/networks/unknown', json={ "detail": "Not found." }, status=404) cloudscale = Cloudscale(api_token="token") network = cloudscale.network.delete(uuid=uuid) assert network is None try: cloudscale = Cloudscale(api_token="token") cloudscale.network.delete(uuid="unknown") except CloudscaleApiException as e: assert e.status_code == 404 runner = CliRunner() result = runner.invoke(cli, [ 'network', '-a', 'token', 'delete', uuid, ]) assert result.exit_code == 1 runner = CliRunner() result = runner.invoke(cli, [ 'network', '-a', 'token', 'delete', uuid, '--force', ]) assert result.exit_code == 0 result = runner.invoke(cli, [ 'network', '-a', 'token', 'delete', '--force', 'unknown', ]) assert result.exit_code > 0
def test_floating_ip_delete(): network_id = "192.0.2.123" responses.add(responses.GET, CLOUDSCALE_API_ENDPOINT + '/floating-ips/' + network_id, json=FLOATING_IP_RESP, status=200) responses.add(responses.GET, CLOUDSCALE_API_ENDPOINT + '/floating-ips/unknown', json=FLOATING_IP_RESP, status=200) responses.add(responses.DELETE, CLOUDSCALE_API_ENDPOINT + '/floating-ips/' + network_id, status=204) responses.add(responses.DELETE, CLOUDSCALE_API_ENDPOINT + '/floating-ips/unknown', json={"detail": "Not found."}, status=404) cloudscale = Cloudscale(api_token="token") floating_ip = cloudscale.floating_ip.delete(uuid=network_id) assert floating_ip is None try: cloudscale = Cloudscale(api_token="token") cloudscale.floating_ip.delete(uuid="unknown") except CloudscaleApiException as e: assert e.status_code == 404 runner = CliRunner() result = runner.invoke(cli, [ 'floating-ip', '-a', 'token', 'delete', network_id, ]) assert result.exit_code == 1 runner = CliRunner() result = runner.invoke(cli, [ 'floating-ip', '-a', 'token', 'delete', network_id, '--force', ]) assert result.exit_code == 0 result = runner.invoke(cli, [ 'floating-ip', '-a', 'token', 'delete', '--force', 'unknown', ]) assert result.exit_code > 0
def test_server_delete(): uuid = "47cec963-fcd2-482f-bdb6-24461b2d47b1" responses.add(responses.GET, CLOUDSCALE_API_ENDPOINT + '/servers/' + uuid, json=SERVER_RESP, status=200) responses.add(responses.GET, CLOUDSCALE_API_ENDPOINT + '/servers/unknown', json=SERVER_RESP, status=200) responses.add(responses.DELETE, CLOUDSCALE_API_ENDPOINT + '/servers/' + uuid, status=204) responses.add(responses.DELETE, CLOUDSCALE_API_ENDPOINT + '/servers/unknown', json={"detail": "Not found."}, status=404) cloudscale = Cloudscale(api_token="token") server = cloudscale.server.delete(uuid=uuid) assert server is None try: cloudscale = Cloudscale(api_token="token") cloudscale.server.delete(uuid="unknown") except CloudscaleApiException as e: assert e.status_code == 404 runner = CliRunner() result = runner.invoke(cli, [ 'server', '-a', 'token', 'delete', uuid, ]) assert result.exit_code == 1 runner = CliRunner() result = runner.invoke(cli, [ 'server', '-a', 'token', 'delete', '--force', uuid, ]) assert result.exit_code == 0 result = runner.invoke(cli, [ 'server', '-a', 'token', 'delete', '--force', 'unknown', ]) assert result.exit_code > 0
def test_server_groups_delete(): uuid = "e3b63018-fad6-45f2-9f57-3ea0da726d8c" responses.add(responses.GET, CLOUDSCALE_API_ENDPOINT + '/server-groups/' + uuid, json=SERVER_GROUP_RESP, status=200) responses.add(responses.GET, CLOUDSCALE_API_ENDPOINT + '/server-groups/unknown', json=SERVER_GROUP_RESP, status=200) responses.add(responses.DELETE, CLOUDSCALE_API_ENDPOINT + '/server-groups/' + uuid, status=204) responses.add(responses.DELETE, CLOUDSCALE_API_ENDPOINT + '/server-groups/unknown', json={"detail": "Not found."}, status=404) cloudscale = Cloudscale(api_token="token") server_group = cloudscale.server_group.delete(uuid=uuid) assert server_group is None try: cloudscale = Cloudscale(api_token="token") cloudscale.server_group.delete(uuid="unknown") except CloudscaleApiException as e: assert e.status_code == 404 runner = CliRunner() result = runner.invoke(cli, [ 'server-group', '-a', 'token', 'delete', uuid, ]) assert result.exit_code == 1 result = runner.invoke(cli, [ 'server-group', '-a', 'token', 'delete', '--force', uuid, ]) assert result.exit_code == 0 result = runner.invoke(cli, [ 'server-group', '-a', 'token', 'delete', '--force', 'unknown', ]) assert result.exit_code > 0
def test_objects_user_delete(): uuid = "6fe39134bf4178747eebc429f82cfafdd08891d4279d0d899bc4012db1db6a15" responses.add(responses.GET, CLOUDSCALE_API_ENDPOINT + '/objects-users/' + uuid, json=OBJECTS_USER_RESP, status=200) responses.add(responses.GET, CLOUDSCALE_API_ENDPOINT + '/objects-users/unknown', json=OBJECTS_USER_RESP, status=200) responses.add(responses.DELETE, CLOUDSCALE_API_ENDPOINT + '/objects-users/' + uuid, status=204) responses.add(responses.DELETE, CLOUDSCALE_API_ENDPOINT + '/objects-users/unknown', json={}, status=404) cloudscale = Cloudscale(api_token="token") objects_user = cloudscale.objects_user.delete(uuid=uuid) assert objects_user is None try: cloudscale = Cloudscale(api_token="token") cloudscale.objects_user.delete(uuid="unknown") except CloudscaleApiException as e: assert e.status_code == 404 runner = CliRunner() result = runner.invoke(cli, [ 'objects-user', '-a', 'token', 'delete', uuid, ]) assert result.exit_code == 1 result = runner.invoke(cli, [ 'objects-user', '-a', 'token', 'delete', '--force', uuid, ]) assert result.exit_code == 0 result = runner.invoke(cli, [ 'objects-user', '-a', 'token', 'delete', '--force', 'unknown', ]) assert result.exit_code > 0
def test_objects_user_update(): uuid = "6fe39134bf4178747eebc429f82cfafdd08891d4279d0d899bc4012db1db6a15" display_name = "alan" responses.add(responses.PATCH, CLOUDSCALE_API_ENDPOINT + '/objects-users/' + uuid, json=OBJECTS_USER_RESP, status=204) responses.add(responses.GET, CLOUDSCALE_API_ENDPOINT + '/objects-users/' + uuid, json=OBJECTS_USER_RESP, status=200) responses.add(responses.PATCH, CLOUDSCALE_API_ENDPOINT + '/objects-users/unknown', json={}, status=404) cloudscale = Cloudscale(api_token="token") objects_user = cloudscale.objects_user.update(uuid=uuid, display_name=display_name) assert objects_user['display_name'] == display_name assert objects_user['id'] == uuid try: cloudscale = Cloudscale(api_token="token") objects_user = cloudscale.objects_user.update( uuid="unknown", display_name=display_name) except CloudscaleApiException as e: assert e.status_code == 404 runner = CliRunner() result = runner.invoke(cli, [ 'objects-user', '-a', 'token', 'update', uuid, '--display-name', display_name, ]) assert result.exit_code == 0 result = runner.invoke(cli, [ 'objects-user', '-a', 'token', 'update', 'unknown', '--display-name', display_name, ]) assert result.exit_code > 0
def test_config_ini(self): if self.CLOUDSCALE_CONFIG: cloudscale = Cloudscale(profile="test") assert cloudscale.api_token == "test_token" cloudscale = Cloudscale() assert cloudscale.api_token == "default_token" try: cloudscale = Cloudscale(profile="does-not-exist") except CloudscaleException as e: assert str(e).startswith( "Profile 'does-not-exist' not found in config files:")
def test_objects_user_create(): display_name = "alan" responses.add(responses.POST, CLOUDSCALE_API_ENDPOINT + '/objects-users', json=OBJECTS_USER_RESP, status=201) responses.add(responses.POST, CLOUDSCALE_API_ENDPOINT + '/objects-users', json={}, status=500) responses.add(responses.POST, CLOUDSCALE_API_ENDPOINT + '/objects-users', json=OBJECTS_USER_RESP, status=201) responses.add(responses.POST, CLOUDSCALE_API_ENDPOINT + '/objects-users', json={}, status=500) cloudscale = Cloudscale(api_token="token") cloudscale.objects_user.create(display_name=display_name, ) try: cloudscale = Cloudscale(api_token="token") cloudscale.objects_user.create(display_name=display_name, ) except CloudscaleApiException as e: assert e.status_code == 500 runner = CliRunner() result = runner.invoke(cli, [ 'objects-user', '-a', 'token', 'create', '--display-name', display_name, ]) assert result.exit_code == 0 result = runner.invoke(cli, [ 'objects-user', '-a', 'token', 'create', '--display-name', display_name, ]) assert result.exit_code > 0
def test_flavor_get_all(): responses.add(responses.GET, CLOUDSCALE_API_ENDPOINT + '/flavors', json=[FLAVOR_RESP], status=200) responses.add(responses.GET, CLOUDSCALE_API_ENDPOINT + '/flavors', json=[FLAVOR_RESP], status=200) responses.add(responses.GET, CLOUDSCALE_API_ENDPOINT + '/flavors', json={}, status=500) cloudscale = Cloudscale(api_token="token") flavors = cloudscale.flavor.get_all() assert flavors[0]['slug'] == "flex-2" assert flavors[0]['name'] == "Flex-2" runner = CliRunner() result = runner.invoke(cli, [ 'flavor', '-a', 'token', 'list', ]) assert result.exit_code == 0 result = runner.invoke(cli, [ 'flavor', '-a', 'token', 'list', ]) assert result.exit_code > 0
def test_subnet_update(): uuid = "33333333-1864-4608-853a-0771b6885a3a" dns_servers = ['185.79.232.101', '185.79.232.102'] responses.add(responses.PATCH, CLOUDSCALE_API_URL + '/subnets/' + uuid, json=SUBNET_RESP, status=204) responses.add(responses.GET, CLOUDSCALE_API_URL + '/subnets/' + uuid, json=SUBNET_RESP, status=200) responses.add(responses.PATCH, CLOUDSCALE_API_URL + '/subnets/' + uuid, json=SUBNET_RESP, status=204) responses.add(responses.GET, CLOUDSCALE_API_URL + '/subnets/' + uuid, json=SUBNET_RESP, status=200) responses.add(responses.PATCH, CLOUDSCALE_API_URL + '/subnets/' + uuid, json={}, status=500) cloudscale = Cloudscale(api_token="token") subnet = cloudscale.subnet.update(uuid=uuid, dns_servers=dns_servers) assert subnet['uuid'] == uuid assert subnet['dns_servers'] == dns_servers
def test_floating_ip_get_all(): network_id = "192.0.2.123" responses.add(responses.GET, CLOUDSCALE_API_ENDPOINT + '/floating-ips', json=[FLOATING_IP_RESP], status=200) responses.add(responses.GET, CLOUDSCALE_API_ENDPOINT + '/floating-ips', json=[FLOATING_IP_RESP], status=200) responses.add(responses.GET, CLOUDSCALE_API_ENDPOINT + '/floating-ips', json={}, status=500) cloudscale = Cloudscale(api_token="token") floating_ips = cloudscale.floating_ip.get_all() assert floating_ips[0]['network'] == network_id + '/32' runner = CliRunner() result = runner.invoke(cli, [ 'floating-ip', '-a', 'token', 'list', ]) assert result.exit_code == 0 result = runner.invoke(cli, [ 'floating-ip', '-a', 'token', 'list', ]) assert result.exit_code > 0
def test_server_groups_get_all(): responses.add(responses.GET, CLOUDSCALE_API_ENDPOINT + '/server-groups', json=[SERVER_GROUP_RESP], status=200) responses.add(responses.GET, CLOUDSCALE_API_ENDPOINT + '/server-groups', json=[SERVER_GROUP_RESP], status=200) responses.add(responses.GET, CLOUDSCALE_API_ENDPOINT + '/server-groups', json={}, status=500) cloudscale = Cloudscale(api_token="token") server_groups = cloudscale.server_group.get_all() assert server_groups[0]['name'] == "load balancers" assert server_groups[0]['uuid'] == "e3b63018-fad6-45f2-9f57-3ea0da726d8c" runner = CliRunner() result = runner.invoke(cli, [ 'server-group', '-a', 'token', 'list', ]) assert result.exit_code == 0 result = runner.invoke(cli, [ 'server-group', '-a', 'token', 'list', ]) assert result.exit_code > 0
def test_volume_update(): uuid = "2db69ba3-1864-4608-853a-0771b6885a3a" name = "capitano-root" responses.add(responses.PATCH, CLOUDSCALE_API_URL + '/volumes/' + uuid, json=VOLUME_RESP, status=204) responses.add(responses.GET, CLOUDSCALE_API_URL + '/volumes/' + uuid, json=VOLUME_RESP, status=200) responses.add(responses.PATCH, CLOUDSCALE_API_URL + '/volumes/' + uuid, json=VOLUME_RESP, status=204) responses.add(responses.GET, CLOUDSCALE_API_URL + '/volumes/' + uuid, json=VOLUME_RESP, status=200) responses.add(responses.PATCH, CLOUDSCALE_API_URL + '/volumes/' + uuid, json={}, status=500) cloudscale = Cloudscale(api_token="token") volume = cloudscale.volume.update(uuid=uuid, name=name) assert volume['name'] == name assert volume['uuid'] == uuid
def test_floating_ip_update(): network_id = "192.0.2.123" reverse_ptr = "192.0.2.123.cust.cloudscale.ch" responses.add(responses.PATCH, CLOUDSCALE_API_URL + '/floating-ips/' + network_id, json=FLOATING_IP_RESP, status=204) responses.add(responses.GET, CLOUDSCALE_API_URL + '/floating-ips/' + network_id, json=FLOATING_IP_RESP, status=200) responses.add(responses.PATCH, CLOUDSCALE_API_URL + '/floating-ips/' + network_id, json=FLOATING_IP_RESP, status=204) responses.add(responses.GET, CLOUDSCALE_API_URL + '/floating-ips/' + network_id, json=FLOATING_IP_RESP, status=200) responses.add(responses.PATCH, CLOUDSCALE_API_URL + '/floating-ips/' + network_id, json={}, status=500) cloudscale = Cloudscale(api_token="token") floating_ip = cloudscale.floating_ip.update(uuid=network_id, reverse_ptr=reverse_ptr) assert floating_ip['network'] == network_id + '/32' assert floating_ip['reverse_ptr'] == reverse_ptr
def test_volume_get_all(): responses.add(responses.GET, CLOUDSCALE_API_ENDPOINT + '/volumes', json=[VOLUME_RESP], status=200) responses.add(responses.GET, CLOUDSCALE_API_ENDPOINT + '/volumes', json=[VOLUME_RESP], status=200) responses.add(responses.GET, CLOUDSCALE_API_ENDPOINT + '/volumes', json={}, status=500) cloudscale = Cloudscale(api_token="token") volumes = cloudscale.volume.get_all() assert volumes[0]['name'] == "capitano-root" assert volumes[0]['uuid'] == "2db69ba3-1864-4608-853a-0771b6885a3a" runner = CliRunner() result = runner.invoke(cli, [ 'volume', '-a', 'token', 'list', ]) assert result.exit_code == 0 result = runner.invoke(cli, [ 'volume', '-a', 'token', 'list', ]) assert result.exit_code > 0
def test_region_get_all(): responses.add(responses.GET, CLOUDSCALE_API_ENDPOINT + '/regions', json=[REGION_RESP], status=200) responses.add(responses.GET, CLOUDSCALE_API_ENDPOINT + '/regions', json=[REGION_RESP], status=200) responses.add(responses.GET, CLOUDSCALE_API_ENDPOINT + '/regions', json={}, status=500) cloudscale = Cloudscale(api_token="token") regions = cloudscale.region.get_all() assert regions[0]['slug'] == "rma" runner = CliRunner() result = runner.invoke(cli, [ 'region', '-a', 'token', 'list', ]) assert result.exit_code == 0 result = runner.invoke(cli, [ 'region', '-a', 'token', 'list', ]) assert result.exit_code > 0
def test_image_get_all(): responses.add(responses.GET, CLOUDSCALE_API_ENDPOINT + '/images', json=[IMAGE_RESP], status=200) responses.add(responses.GET, CLOUDSCALE_API_ENDPOINT + '/images', json=[IMAGE_RESP], status=200) responses.add(responses.GET, CLOUDSCALE_API_ENDPOINT + '/images', json={}, status=500) cloudscale = Cloudscale(api_token="token") images = cloudscale.image.get_all() assert images[0]['slug'] == "arch-18.06" assert images[0]['name'] == "Arch 18.06" runner = CliRunner() result = runner.invoke(cli, [ 'image', '-a', 'token', 'list', ]) assert result.exit_code == 0 result = runner.invoke(cli, [ 'image', '-a', 'token', 'list', ]) assert result.exit_code > 0
def test_network_update(): uuid = "2db69ba3-1864-4608-853a-0771b6885a3a" name = "my-network-name" responses.add( responses.PATCH, CLOUDSCALE_API_URL + '/networks/' + uuid, json=NETWORK_RESP, status=204) responses.add( responses.GET, CLOUDSCALE_API_URL + '/networks/' + uuid, json=NETWORK_RESP, status=200) responses.add( responses.PATCH, CLOUDSCALE_API_URL + '/networks/' + uuid, json=NETWORK_RESP, status=204) responses.add( responses.GET, CLOUDSCALE_API_URL + '/networks/' + uuid, json=NETWORK_RESP, status=200) responses.add( responses.PATCH, CLOUDSCALE_API_URL + '/networks/' + uuid, json={}, status=500) cloudscale = Cloudscale(api_token="token") network = cloudscale.network.update(uuid=uuid, name=name) assert network['name'] == name assert network['uuid'] == uuid
def __init__(self, cloud_resource_name=None, api_token=None, profile=None, debug=False, output="table", verbose=False): try: self._client = Cloudscale( api_token=api_token, profile=profile, debug=debug ) except Exception as e: click.echo(e, err=True) sys.exit(1) self._output = output self.cloud_resource_name = cloud_resource_name self.verbose = verbose self.headers = [] # Alternate key to look for the resource as 'name' self.resource_name_key = 'name' # Some resource have a different identifier name self.resource_uuid_name = 'UUID' # Usually we want to sort the table by the key used as name self.resource_table_sort_key = None self.response_transform_json = None
def test_server_get_all(): responses.add(responses.GET, CLOUDSCALE_API_ENDPOINT + '/servers', json=[SERVER_RESP], status=200) responses.add(responses.GET, CLOUDSCALE_API_ENDPOINT + '/servers', json=[SERVER_RESP], status=200) responses.add(responses.GET, CLOUDSCALE_API_ENDPOINT + '/servers', json={"detail": "Server error."}, status=500) cloudscale = Cloudscale(api_token="token") servers = cloudscale.server.get_all() assert servers[0]['name'] == "db-master" assert servers[0]['uuid'] == "47cec963-fcd2-482f-bdb6-24461b2d47b1" assert servers[0]['tags']['project'] == "gemini" runner = CliRunner() result = runner.invoke(cli, [ 'server', '-a', 'token', 'list', ]) assert result.exit_code == 0 result = runner.invoke(cli, [ 'server', '-a', 'token', 'list', ]) assert result.exit_code > 0
def test_subnet_get_all(): uuid = "33333333-1864-4608-853a-0771b6885a3a" responses.add(responses.GET, CLOUDSCALE_API_ENDPOINT + '/subnets', json=[SUBNET_RESP], status=200) responses.add(responses.GET, CLOUDSCALE_API_ENDPOINT + '/subnets', json=[SUBNET_RESP], status=200) responses.add(responses.GET, CLOUDSCALE_API_ENDPOINT + '/subnets', json={}, status=500) cloudscale = Cloudscale(api_token="token") subnets = cloudscale.subnet.get_all() assert subnets[0]['uuid'] == uuid runner = CliRunner() result = runner.invoke(cli, [ 'subnet', '-a', 'token', 'list', ]) assert result.exit_code == 0 result = runner.invoke(cli, [ 'subnet', '-a', 'token', 'list', ]) assert result.exit_code > 0
def test_server_groups_update(): uuid = "e3b63018-fad6-45f2-9f57-3ea0da726d8c" name = "load balancers" responses.add( responses.PATCH, CLOUDSCALE_API_URL + '/server-groups/' + uuid, json=SERVER_GROUP_RESP, status=204) responses.add( responses.GET, CLOUDSCALE_API_URL + '/server-groups/' + uuid, json=SERVER_GROUP_RESP, status=200) responses.add( responses.PATCH, CLOUDSCALE_API_URL + '/server-groups/' + uuid, json=SERVER_GROUP_RESP, status=204) responses.add( responses.GET, CLOUDSCALE_API_URL + '/server-groups/' + uuid, json=SERVER_GROUP_RESP, status=200) responses.add( responses.PATCH, CLOUDSCALE_API_URL + '/server-groups/' + uuid, json={}, status=500) cloudscale = Cloudscale(api_token="token") server_group = cloudscale.server_group.update(uuid=uuid, name=name) assert server_group['name'] == name assert server_group['uuid'] == uuid