def test_attachments_column_without_server_cache(self): _volume = volume_fakes.FakeVolume.create_one_volume() server_id = _volume.attachments[0]['server_id'] device = _volume.attachments[0]['device'] col = volume.AttachmentsColumn(_volume.attachments, {}) self.assertEqual('Attached to %s on %s ' % (server_id, device), col.human_readable()) self.assertEqual(_volume.attachments, col.machine_readable())
def test_attachments_column_with_server_cache(self): _volume = volume_fakes.FakeVolume.create_one_volume() server_id = _volume.attachments[0]['server_id'] device = _volume.attachments[0]['device'] fake_server = mock.Mock() fake_server.name = 'fake-server-name' server_cache = {server_id: fake_server} col = volume.AttachmentsColumn(_volume.attachments, server_cache) self.assertEqual( 'Attached to %s on %s ' % ('fake-server-name', device), col.human_readable()) self.assertEqual(_volume.attachments, col.machine_readable())
def test_volume_list_long(self): arglist = [ '--long', ] verifylist = [ ('long', True), ('all_projects', False), ('name', None), ('status', None), ('limit', None), ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) columns, data = self.cmd.take_action(parsed_args) collist = ( 'ID', 'Name', 'Status', 'Size', 'Type', 'Bootable', 'Attached to', 'Properties', ) self.assertEqual(collist, columns) datalist = (( self._volume.id, self._volume.display_name, self._volume.status, self._volume.size, self._volume.volume_type, self._volume.bootable, volume.AttachmentsColumn(self._volume.attachments), format_columns.DictColumn(self._volume.metadata), ), ) self.assertListItemEqual(datalist, tuple(data))
class TestVolumeList(TestVolume): _volume = volume_fakes.FakeVolume.create_one_volume() columns = ( 'ID', 'Name', 'Status', 'Size', 'Attached to', ) datalist = (( _volume.id, _volume.display_name, _volume.status, _volume.size, volume.AttachmentsColumn(_volume.attachments), ), ) def setUp(self): super(TestVolumeList, self).setUp() self.volumes_mock.list.return_value = [self._volume] # Get the command object to test self.cmd = volume.ListVolume(self.app, None) def test_volume_list_no_options(self): arglist = [] verifylist = [ ('long', False), ('all_projects', False), ('name', None), ('status', None), ('limit', None), ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) columns, data = self.cmd.take_action(parsed_args) self.assertEqual(self.columns, columns) self.assertListItemEqual(self.datalist, tuple(data)) def test_volume_list_name(self): arglist = [ '--name', self._volume.display_name, ] verifylist = [ ('long', False), ('all_projects', False), ('name', self._volume.display_name), ('status', None), ('limit', None), ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) columns, data = self.cmd.take_action(parsed_args) self.assertEqual(self.columns, tuple(columns)) self.assertListItemEqual(self.datalist, tuple(data)) def test_volume_list_status(self): arglist = [ '--status', self._volume.status, ] verifylist = [ ('long', False), ('all_projects', False), ('name', None), ('status', self._volume.status), ('limit', None), ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) columns, data = self.cmd.take_action(parsed_args) self.assertEqual(self.columns, tuple(columns)) self.assertListItemEqual(self.datalist, tuple(data)) def test_volume_list_all_projects(self): arglist = [ '--all-projects', ] verifylist = [ ('long', False), ('all_projects', True), ('name', None), ('status', None), ('limit', None), ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) columns, data = self.cmd.take_action(parsed_args) self.assertEqual(self.columns, tuple(columns)) self.assertListItemEqual(self.datalist, tuple(data)) def test_volume_list_long(self): arglist = [ '--long', ] verifylist = [ ('long', True), ('all_projects', False), ('name', None), ('status', None), ('limit', None), ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) columns, data = self.cmd.take_action(parsed_args) collist = ( 'ID', 'Name', 'Status', 'Size', 'Type', 'Bootable', 'Attached to', 'Properties', ) self.assertEqual(collist, columns) datalist = (( self._volume.id, self._volume.display_name, self._volume.status, self._volume.size, self._volume.volume_type, self._volume.bootable, volume.AttachmentsColumn(self._volume.attachments), format_columns.DictColumn(self._volume.metadata), ), ) self.assertListItemEqual(datalist, tuple(data)) def test_volume_list_with_limit(self): arglist = [ '--limit', '2', ] verifylist = [ ('long', False), ('all_projects', False), ('name', None), ('status', None), ('limit', 2), ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) columns, data = self.cmd.take_action(parsed_args) self.volumes_mock.list.assert_called_once_with(limit=2, search_opts={ 'status': None, 'display_name': None, 'all_tenants': False, }) self.assertEqual(self.columns, columns) self.assertListItemEqual(self.datalist, tuple(data)) def test_volume_list_negative_limit(self): arglist = [ "--limit", "-2", ] verifylist = [ ("limit", -2), ] self.assertRaises(argparse.ArgumentTypeError, self.check_parser, self.cmd, arglist, verifylist) def test_volume_list_backward_compatibility(self): arglist = [ '-c', 'Display Name', ] verifylist = [ ('columns', ['Display Name']), ('long', False), ('all_projects', False), ('name', None), ('status', None), ('limit', None), ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) columns, data = self.cmd.take_action(parsed_args) self.assertIn('Display Name', columns) self.assertNotIn('Name', columns) for each_volume in data: self.assertIn(self._volume.display_name, each_volume)