def _doTestAddImageGeneratesCorrectRequest(self, service_version, requested_source, expected_source): flag_values = copy.deepcopy(FLAGS) command = image_cmds.AddImage('addimage', flag_values) expected_project = 'test_project' expected_image = 'test_image' expected_description = 'test image' submitted_kernel = 'projects/test_project/kernels/test_kernel' expected_type = 'RAW' flag_values.project = expected_project flag_values.description = expected_description flag_values.preferred_kernel = submitted_kernel flag_values.service_version = service_version command.SetFlags(flag_values) command.SetApi(mock_api.MockApi()) expected_kernel = command.NormalizeGlobalResourceName( expected_project, 'kernels', submitted_kernel) result = command.Handle(expected_image, requested_source) self.assertEqual(result['project'], expected_project) self.assertEqual(result['body']['name'], expected_image) self.assertEqual(result['body']['description'], expected_description) self.assertEqual(result['body']['preferredKernel'], expected_kernel) self.assertEqual(result['body']['sourceType'], expected_type) self.assertEqual(result['body']['rawDisk']['source'], expected_source)
def _doTestAddDiskGeneratesCorrectRequest(self, service_version): flag_values = copy.deepcopy(FLAGS) command = disk_cmds.AddDisk('adddisk', flag_values) expected_project = 'test_project' expected_disk = 'test_disk' expected_description = 'test disk' submitted_zone = 'copernicus-moon-base' expected_size = 20 flag_values.service_version = service_version flag_values.zone = submitted_zone flag_values.project = expected_project flag_values.size_gb = expected_size flag_values.description = expected_description command.SetFlags(flag_values) command.SetApi(mock_api.MockApi()) command._credential = mock_api.MockCredential() results, exceptions = command.Handle(expected_disk) self.assertEqual(len(results['items']), 1) self.assertEqual(exceptions, []) result = results['items'][0] expected_zone = command.NormalizeResourceName(expected_project, 'zones', submitted_zone) self.assertEqual(result['project'], expected_project) self.assertEqual(result['body']['name'], expected_disk) self.assertEqual(result['body']['description'], expected_description) self.assertEqual(result['body']['sizeGb'], expected_size) self.assertEqual(result['body']['zone'], expected_zone)
def _DoTestDeleteDiskGeneratesCorrectRequest(self, service_version): flag_values = copy.deepcopy(FLAGS) command = disk_cmds.DeleteDisk('deletedisk', flag_values) expected_project = 'test_project' expected_disk = 'test_disk' flag_values.project = expected_project flag_values.zone = 'zone-a' command.SetFlags(flag_values) command.SetApi(mock_api.MockApi()) flag_values.service_version = service_version submitted_zone = 'copernicus-moon-base' if command._IsUsingAtLeastApiVersion('v1beta14'): flag_values.zone = submitted_zone command._credential = mock_api.MockCredential() results, exceptions = command.Handle(expected_disk) self.assertEqual(len(results['items']), 1) self.assertEqual(exceptions, []) result = results['items'][0] self.assertEqual(result['project'], expected_project) self.assertEqual(result['disk'], expected_disk) if command._IsUsingAtLeastApiVersion('v1beta14'): self.assertEqual(submitted_zone, result['zone']) else: self.assertFalse('zone' in result)
def _DoTestAddSnapshotGeneratesCorrectRequest(self, service_version): flag_values = copy.deepcopy(FLAGS) command = snapshot_cmds.AddSnapshot('addsnapshot', flag_values) expected_project = 'test_project' expected_snapshot = 'test_snapshot' expected_description = 'test snapshot' submitted_source_disk = 'disk1' submitted_zone = 'myzone' flag_values.service_version = service_version flag_values.source_disk = submitted_source_disk flag_values.project = expected_project flag_values.description = expected_description command.SetFlags(flag_values) command.SetApi(mock_api.MockApi()) if command._IsUsingAtLeastApiVersion('v1beta14'): flag_values.zone = submitted_zone expected_source_disk = command.NormalizePerZoneResourceName( expected_project, submitted_zone, 'disks', submitted_source_disk) result = command.Handle(expected_snapshot) self.assertEqual(result['project'], expected_project) self.assertEqual(result['body']['name'], expected_snapshot) self.assertEqual(result['body']['description'], expected_description) self.assertEqual(result['body']['sourceDisk'], expected_source_disk)
def _doTestAddNetworkGeneratesCorrectRequest(self, service_version): flag_values = copy.deepcopy(FLAGS) command = network_cmds.AddNetwork('addnetwork', flag_values) expected_project = 'test_project' expected_network = 'test-network' expected_range = '192.168.0.0/16' expected_gateway = '192.168.0.1' expected_description = 'test network' flag_values.project = expected_project flag_values.description = expected_description flag_values.range = expected_range flag_values.gateway = expected_gateway flag_values.service_version = service_version command.SetFlags(flag_values) command.SetApi(mock_api.MockApi()) result = command.Handle(expected_network) self.assertEqual(result['project'], expected_project) response_body = result['body'] self.assertEqual(response_body['name'], expected_network) self.assertEqual(response_body['description'], expected_description) self.assertEqual(response_body['IPv4Range'], expected_range) self.assertEqual(response_body['gatewayIPv4'], expected_gateway)
def _DoTestGetOperationGeneratesCorrectRequest(self, service_version): flag_values = copy.deepcopy(FLAGS) command = operation_cmds.GetOperation('getoperation', flag_values) expected_project = 'test_project' expected_operation = 'test_operation' flag_values.project = expected_project flag_values.service_version = service_version command.SetFlags(flag_values) command.SetApi(mock_api.MockApi()) if command._IsUsingAtLeastApiVersion('v1beta14'): submitted_zone = 'myzone' flag_values.zone = submitted_zone result = command.Handle(expected_operation) self.assertEqual(result['project'], expected_project) self.assertEqual(result['operation'], expected_operation) api = command._global_operations_api if command._IsUsingAtLeastApiVersion('v1beta14'): api = command._zone_operations_api self.assertEquals(1, len(api.requests)) request = api.requests[0] if command._IsUsingAtLeastApiVersion('v1beta14'): self.assertEqual(submitted_zone, request.request_payload['zone']) else: self.assertFalse('zone' in request.request_payload) self.assertEqual(expected_project, request.request_payload['project']) self.assertEqual(expected_operation, request.request_payload['operation'])
def _DoTestDeleteGlobalOperationGeneratesCorrectRequest( self, service_version): flag_values = copy.deepcopy(FLAGS) command = operation_cmds.DeleteOperation('deleteoperation', flag_values) expected_project = 'test_project' expected_operation = 'test_operation' flag_values.project = expected_project flag_values.service_version = service_version flag_values.zone = command_base.GLOBAL_ZONE_NAME command.SetFlags(flag_values) command.SetApi(mock_api.MockApi()) command._credential = mock_api.MockCredential() if not command._IsUsingAtLeastApiVersion('v1beta14'): return results, exceptions = command.Handle(expected_operation) self.assertEqual(exceptions, []) self.assertEqual(results, '') # Verify the request self.assertEquals(1, len(command._global_operations_api.requests)) request = command._global_operations_api.requests[0] self.assertEqual('delete', request.method_name) self.assertEqual(expected_project, request.request_payload['project']) self.assertEqual(expected_operation, request.request_payload['operation'])
def testDeprecate(self): flag_values = copy.deepcopy(FLAGS) command = image_cmds.Deprecate('deprecateimage', flag_values) expected_project = 'test_project' expected_image = 'test_image' expected_state = 'DEPRECATED' expected_replacement = 'replacement_image' expected_obsolete_timestamp = '1970-01-01T00:00:00Z' expected_deleted_timestamp = '1980-01-01T00:00:00.000Z' flag_values.project = expected_project flag_values.state = expected_state flag_values.replacement = expected_replacement flag_values.obsolete_on = expected_obsolete_timestamp flag_values.deleted_on = expected_deleted_timestamp command.SetFlags(flag_values) command.SetApi(mock_api.MockApi()) result = command.Handle(expected_image) self.assertEqual(result['project'], expected_project) self.assertEqual(result['image'], expected_image) self.assertEqual(result['body']['state'], expected_state) self.assertEqual(result['body']['replacement'], expected_replacement) self.assertEqual(result['body']['obsolete'], expected_obsolete_timestamp) self.assertEqual(result['body']['deleted'], expected_deleted_timestamp)
def testAddDiskRequiresZone(self): flag_values = copy.deepcopy(FLAGS) command = disk_cmds.AddDisk('adddisk', flag_values) expected_project = 'test_project' expected_disk = 'test_disk' expected_description = 'test disk' expected_size = 20 submitted_version = command_base.CURRENT_VERSION submitted_zone = 'us-east-a' flag_values.service_version = submitted_version flag_values.project = expected_project flag_values.size_gb = expected_size flag_values.description = expected_description command.SetFlags(flag_values) zones = {'items': [{'name': 'us-east-a'}, {'name': 'us-east-b'}, {'name': 'us-east-c'}, {'name': 'us-west-a'}]} class MockZonesApi(object): def list(self, **unused_kwargs): return mock_api.MockRequest(zones) api = mock_api.MockApi() api.zones = MockZonesApi command.SetApi(api) command._credential = mock_api.MockCredential() expected_zone = command.NormalizeTopLevelResourceName( expected_project, 'zones', submitted_zone) mock_output = mock_api.MockOutput() mock_input = mock_api.MockInput('1\n\r') oldin = sys.stdin sys.stdin = mock_input oldout = sys.stdout sys.stdout = mock_output results, exceptions = command.Handle(expected_disk) self.assertEqual(len(results['items']), 1) self.assertEqual(exceptions, []) result = results['items'][0] if command._IsUsingAtLeastApiVersion('v1beta14'): self.assertEqual(submitted_zone, result['zone']) self.assertFalse('zone' in result['body']) else: self.assertFalse('zone' in result) self.assertEqual(result['body']['zone'], expected_zone) sys.stdin = oldin sys.stdout = oldout
def testAddSnapshotRequiresSourceDisk(self): flag_values = copy.deepcopy(FLAGS) command = snapshot_cmds.AddSnapshot('addsnapshot', flag_values) expected_project = 'test_project' expected_snapshot = 'test_snapshot' expected_description = 'test snapshot' submitted_version = command_base.CURRENT_VERSION submitted_source_disk = 'disk1' flag_values.service_version = submitted_version flag_values.project = expected_project flag_values.description = expected_description command.SetFlags(flag_values) def GetDiskPath(disk_name): disk_path = 'projects/test_project/disks/%s' % (disk_name) if command._IsUsingAtLeastApiVersion('v1beta14'): disk_path = 'projects/test_project/zones/zone-a/disks/%s' % (disk_name) return disk_path disks = { 'items': [ {'name': GetDiskPath('disk1')}, {'name': GetDiskPath('disk2')}, {'name': GetDiskPath('disk3')}]} class MockDisksApi(object): def list(self, **unused_kwargs): return mock_api.MockRequest(disks) api = mock_api.MockApi() api.disks = MockDisksApi command.SetApi(api) expected_disk = command.NormalizePerZoneResourceName( expected_project, 'zone-a', 'disks', submitted_source_disk) mock_output = mock_api.MockOutput() mock_input = mock_api.MockInput('1\n\r') oldin = sys.stdin sys.stdin = mock_input oldout = sys.stdout sys.stdout = mock_output result = command.Handle(expected_snapshot) self.assertEqual(result['body']['sourceDisk'], expected_disk) sys.stdin = oldin sys.stdout = oldout
def _DoTestAddSnapshotWithoutZoneGeneratesCorrectRequest(self, service_version): flag_values = copy.deepcopy(FLAGS) command = snapshot_cmds.AddSnapshot('addsnapshot', flag_values) expected_project = 'test_project' expected_snapshot = 'test_snapshot' expected_description = 'test snapshot' submitted_source_disk = 'disk1' disk_zone = 'us-east-a' api_base = 'https://www.googleapis.com/compute/%s' % service_version disk_self_link = '%s/projects/%s/zones/%s/disks/%s' % ( api_base, expected_project, disk_zone, submitted_source_disk) flag_values.service_version = service_version flag_values.source_disk = submitted_source_disk flag_values.project = expected_project flag_values.description = expected_description zones = {'items': [{'name': disk_zone}]} disks = {'items': [{'name': 'disk1', 'selfLink': disk_self_link}]} class MockZonesApi(object): def list(self, **unused_kwargs): return mock_api.MockRequest(zones) class MockDisksApi(object): def list(self, **unused_kwargs): return mock_api.MockRequest(disks) api = mock_api.MockApi() api.zones = MockZonesApi api.disks = MockDisksApi command.SetFlags(flag_values) command.SetApi(api) expected_source_disk = command.NormalizePerZoneResourceName( expected_project, disk_zone, 'disks', submitted_source_disk) result = command.Handle(expected_snapshot) self.assertEqual(result['project'], expected_project) self.assertEqual(result['body']['name'], expected_snapshot) self.assertEqual(result['body']['description'], expected_description) self.assertEqual(result['body']['sourceDisk'], expected_source_disk)
def testListNetworksGeneratesCorrectRequest(self): flag_values = copy.deepcopy(FLAGS) command = network_cmds.ListNetworks('listnetworks', flag_values) expected_project = 'test_project' flag_values.project = expected_project command.SetFlags(flag_values) command.SetApi(mock_api.MockApi()) result = command.Handle() self.assertEqual(result['project'], expected_project)
def testGetProjectGeneratesCorrectRequest(self): flag_values = copy.deepcopy(FLAGS) command = project_cmds.GetProject('getproject', flag_values) expected_project = 'test_project' flag_values.project = expected_project command.SetFlags(flag_values) command.SetApi(mock_api.MockApi()) result = command.Handle() self.assertEqual(result['project'], expected_project)
def _DoTestAddDiskFromImageGeneratesCorrectRequest(self, service_version): flag_values = copy.deepcopy(FLAGS) command = disk_cmds.AddDisk('adddisk', flag_values) expected_project = 'test_project' expected_disk = 'test_disk' expected_description = 'test disk' expected_size_gb = 123 submitted_zone = 'copernicus-moon-base' submitted_source_image = 'image1' submitted_size_gb = 123 flag_values.zone = submitted_zone flag_values.project = expected_project flag_values.description = expected_description flag_values.source_image = submitted_source_image flag_values.size_gb = submitted_size_gb flag_values.service_version = service_version command.SetFlags(flag_values) command.SetApi(mock_api.MockApi()) command._credential = mock_api.MockCredential() results, exceptions = command.Handle(expected_disk) self.assertEqual(len(results['items']), 1) self.assertEqual(exceptions, []) result = results['items'][0] expected_zone = command.NormalizeTopLevelResourceName( expected_project, 'zones', submitted_zone) expected_source_image = command.NormalizeGlobalResourceName( expected_project, 'images', submitted_source_image) self.assertEqual(result['project'], expected_project) self.assertEqual(result['body']['name'], expected_disk) self.assertEqual(result['body']['description'], expected_description) self.assertEqual(result['body']['sizeGb'], expected_size_gb) self.assertEqual(result['sourceImage'], expected_source_image) if command._IsUsingAtLeastApiVersion('v1beta14'): self.assertEqual(submitted_zone, result['zone']) self.assertFalse('zone' in result['body']) else: self.assertEqual(result['body']['zone'], expected_zone) self.assertFalse('zone' in result)
def testGetMachineTypeGeneratesCorrectRequest(self): flag_values = copy.deepcopy(FLAGS) command = machine_type_cmds.GetMachineType('getmachinetype', flag_values) expected_machine_type = 'test_machine_type' flag_values.service_version = command_base.CURRENT_VERSION command.SetFlags(flag_values) command.SetApi(mock_api.MockApi()) result = command.Handle(expected_machine_type) self.assertEqual(result['machineType'], expected_machine_type)
def testDeleteMultipleOperations(self): flag_values = copy.deepcopy(FLAGS) command = operation_cmds.DeleteOperation('deleteoperation', flag_values) expected_project = 'test_project' expected_operations = ['test-operation-%02d' % x for x in xrange(100)] flag_values.project = expected_project command.SetFlags(flag_values) command.SetApi(mock_api.MockApi()) command._credential = mock_api.MockCredential() results, exceptions = command.Handle(*expected_operations) self.assertEqual(exceptions, []) self.assertEqual(results, '')
def testGetImageGeneratesCorrectRequest(self): flag_values = copy.deepcopy(FLAGS) command = image_cmds.GetImage('getimage', flag_values) expected_project = 'test_project' expected_image = 'test_image' flag_values.project = expected_project command.SetFlags(flag_values) command.SetApi(mock_api.MockApi()) result = command.Handle(expected_image) self.assertEqual(result['project'], expected_project) self.assertEqual(result['image'], expected_image)
def testGetNetworkGeneratesCorrectRequest(self): flag_values = copy.deepcopy(FLAGS) command = network_cmds.GetNetwork('getnetwork', flag_values) expected_project = 'test_project' expected_network = 'test_network' flag_values.project = expected_project command.SetFlags(flag_values) command.SetApi(mock_api.MockApi()) result = command.Handle(expected_network) self.assertEqual(result['project'], expected_project) self.assertEqual(result['network'], expected_network)
def testGetKernelGeneratesCorrectRequest(self): flag_values = copy.deepcopy(FLAGS) command = kernel_cmds.GetKernel('getkernel', flag_values) expected_project = 'test_project' expected_kernel = 'test_kernel' flag_values.project = expected_project command.SetFlags(flag_values) command.SetApi(mock_api.MockApi()) result = command.Handle(expected_kernel) self.assertEqual(result['project'], expected_project) self.assertEqual(result['kernel'], expected_kernel)
def testListOperationsGeneratesCorrectRequest(self): flag_values = copy.deepcopy(FLAGS) command = operation_cmds.ListOperations('listoperations', flag_values) expected_project = 'test_project' service_version = 'v1beta12' flag_values.project = expected_project flag_values.service_version = service_version command.SetFlags(flag_values) command.SetApi(mock_api.MockApi()) result = command.Handle() self.assertEqual(result['project'], expected_project)
def _DoTestGetSnapshotGeneratesCorrectRequest(self, service_version): flag_values = copy.deepcopy(FLAGS) command = snapshot_cmds.GetSnapshot('getsnapshot', flag_values) expected_project = 'test_project' expected_snapshot = 'test_snapshot' flag_values.project = expected_project flag_values.service_version = service_version command.SetFlags(flag_values) command.SetApi(mock_api.MockApi()) result = command.Handle(expected_snapshot) self.assertEqual(result['project'], expected_project) self.assertEqual(result['snapshot'], expected_snapshot)
def testGetDiskGeneratesCorrectRequest(self): flag_values = copy.deepcopy(FLAGS) command = disk_cmds.GetDisk('getdisk', flag_values) expected_project = 'test_project' expected_disk = 'test_disk' flag_values.project = expected_project command.SetFlags(flag_values) command.SetApi(mock_api.MockApi()) command._credential = mock_api.MockCredential() result = command.Handle(expected_disk) self.assertEqual(result['project'], expected_project) self.assertEqual(result['disk'], expected_disk)
def testAddtFirewallsWithTagsGeneratesCorrectRequest(self): flag_values = copy.deepcopy(FLAGS) command = firewall_cmds.AddFirewall('addfirewall', flag_values) expected_project = 'test_project' expected_firewall = 'test_firewall' submitted_network = 'test_network' expected_description = 'test firewall' expected_source_tags = ['a', 'b'] expected_target_tags = ['c', 'd'] flag_values.service_version = 'v1beta13' flag_values.project = expected_project flag_values.description = expected_description flag_values.network = submitted_network flag_values.allowed = [':22'] flag_values.allowed_tag_sources = expected_source_tags flag_values.target_tags = expected_target_tags * 2 # Create duplicates command.SetFlags(flag_values) command.SetApi(mock_api.MockApi()) expected_network = command.NormalizeGlobalResourceName( expected_project, 'networks', submitted_network) result = command.Handle(expected_firewall) self.assertEqual(result['project'], expected_project) response_body = result['body'] self.assertEqual(response_body['name'], expected_firewall) self.assertEqual(response_body['network'], expected_network) self.assertEqual(response_body['description'], expected_description) allowed = response_body['allowed'] self.assertEqual(len(allowed), 2) used_protocols = set( [allowed[0]['IPProtocol'], allowed[1]['IPProtocol']]) self.assertEqual(used_protocols, set(['6', '17'])) self.assertEqual(allowed[0]['ports'], allowed[1]['ports']) self.assertEqual(allowed[0]['ports'], ['22']) self.assertTrue('sourceTags' in response_body) self.assertTrue('targetTags' in response_body) self.assertEqual(response_body['sourceTags'], expected_source_tags) self.assertEqual(response_body['targetTags'], expected_target_tags)
def testGetZoneGeneratesCorrectRequest(self): flag_values = copy.deepcopy(FLAGS) command = zone_cmds.GetZone('getzone', flag_values) expected_jurisdiction = 'test_jurisdiction' expected_region = 'test_region' expected_zone = 'z' submitted_full_zone = '%s-%s-%s' % (expected_jurisdiction, expected_region, expected_zone) flag_values.service_version = command_base.CURRENT_VERSION command.SetFlags(flag_values) command.SetApi(mock_api.MockApi()) result = command.Handle(submitted_full_zone) self.assertEqual(result['zone'], submitted_full_zone)
def testSetCommonInstanceMetadataChecksForOverwrites(self): flag_values = copy.deepcopy(FLAGS) command = project_cmds.SetCommonInstanceMetadata( 'setcommoninstancemetadata', flag_values) expected_project = 'test_project' flag_values.project = expected_project flag_values.service_version = 'v1beta12' command.SetFlags(flag_values) command.SetApi(mock_api.MockApi()) command._projects_api.get = mock_api.CommandExecutor({ 'commonInstanceMetadata': [{ 'key': 'sshKeys', 'value': 'foo:bar' }] }) self.assertRaises(command_base.CommandError, command.Handle)
def testSetCommonInstanceMetadataGeneratesCorrectRequest(self): class SetCommonInstanceMetadata(object): def __call__(self, project, body): self._project = project self._body = body return self def execute(self): return {'project': self._project, 'body': self._body} flag_values = copy.deepcopy(FLAGS) command = project_cmds.SetCommonInstanceMetadata( 'setcommoninstancemetadata', flag_values) expected_project = 'test_project' flag_values.project = expected_project flag_values.service_version = 'v1beta12' with tempfile.NamedTemporaryFile() as metadata_file: metadata_file.write('foo:bar') metadata_file.flush() flag_values.metadata_from_file = [ 'sshKeys:%s' % metadata_file.name ] command.SetFlags(flag_values) command.SetApi(mock_api.MockApi()) command._projects_api.get = mock_api.CommandExecutor( {'commonInstanceMetadata': [{ 'key': 'sshKeys', 'value': '' }]}) command._projects_api.setCommonInstanceMetadata = ( SetCommonInstanceMetadata()) result = command.Handle() self.assertEquals(expected_project, result['project']) self.assertEquals( { 'kind': 'compute#metadata', 'items': [{ 'key': 'sshKeys', 'value': 'foo:bar' }] }, result['body'])
def testDeleteOperationGeneratesCorrectRequest(self): flag_values = copy.deepcopy(FLAGS) command = operation_cmds.DeleteOperation('deleteoperation', flag_values) expected_project = 'test_project' expected_operation = 'test_operation' service_version = 'v1beta12' flag_values.project = expected_project flag_values.service_version = service_version command.SetFlags(flag_values) command.SetApi(mock_api.MockApi()) command._credential = mock_api.MockCredential() results, exceptions = command.Handle(expected_operation) self.assertEqual(exceptions, []) self.assertEqual(results, '')
def testAddDiskDefaultSizeGb(self): flag_values = copy.deepcopy(FLAGS) command = disk_cmds.AddDisk('adddisk', flag_values) flag_values.zone = 'copernicus-moon-base' flag_values.project = 'test_project' command.SetFlags(flag_values) command.SetApi(mock_api.MockApi()) command._credential = mock_api.MockCredential() results, exceptions = command.Handle('disk1') self.assertEqual(len(results['items']), 1) self.assertEqual(exceptions, []) result = results['items'][0] # We did not set the size, make sure it defaults to 10GB. self.assertEqual(10, result['body']['sizeGb'])
def _doAddFirewallGeneratesCorrectRequest(self, service_version, allowed_ip_source): flag_values = copy.deepcopy(FLAGS) command = firewall_cmds.AddFirewall('addfirewall', flag_values) expected_project = 'test_project' expected_firewall = 'test_firewall' submitted_network = 'test_network' expected_description = 'test firewall' flag_values.service_version = service_version flag_values.project = expected_project flag_values.description = expected_description flag_values.network = submitted_network flag_values.allowed = [':22'] if allowed_ip_source: flag_values.allowed_ip_sources.append(allowed_ip_source) command.SetFlags(flag_values) command.SetApi(mock_api.MockApi()) expected_network = command.NormalizeGlobalResourceName( expected_project, 'networks', submitted_network) result = command.Handle(expected_firewall) self.assertEqual(result['project'], expected_project) response_body = result['body'] self.assertEqual(response_body['name'], expected_firewall) self.assertEqual(response_body['network'], expected_network) self.assertEqual(response_body['description'], expected_description) self.assertEqual(response_body['sourceRanges'], [allowed_ip_source or '0.0.0.0/0']) allowed = response_body['allowed'] self.assertEqual(len(allowed), 2) used_protocols = set([x['IPProtocol'] for x in allowed]) self.assertEqual(used_protocols, set(['6', '17'])) self.assertEqual(allowed[0]['ports'], allowed[1]['ports']) self.assertFalse('sourceTags' in response_body, response_body) self.assertFalse('targetTags' in response_body, response_body)
def testDeleteImageGeneratesCorrectRequest(self): flag_values = copy.deepcopy(FLAGS) command = image_cmds.DeleteImage('deleteimage', flag_values) expected_project = 'test_project' expected_image = 'test_image' flag_values.project = expected_project command.SetFlags(flag_values) command.SetApi(mock_api.MockApi()) command._credential = mock_api.MockCredential() results, exceptions = command.Handle(expected_image) self.assertEqual(exceptions, []) self.assertEqual(len(results['items']), 1) result = results['items'][0] self.assertEqual(result['project'], expected_project) self.assertEqual(result['image'], expected_image)