Esempio n. 1
0
    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())
Esempio n. 2
0
    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())
Esempio n. 3
0
    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))
Esempio n. 4
0
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)