예제 #1
0
    def test_no_location_or_file(self, mock_image_list):
        mock_image_list.side_effect = [
            [self.images.list(), False, False],
            [self.images.list(), False, False]
        ]

        image_calls = [
            mock.call(test.IsA(dict), filters={'disk_format': 'aki'}),
            mock.call(test.IsA(dict), filters={'disk_format': 'ari'})
        ]

        post = {
            'name': u'Ubuntu 11.10',
            'source_type': u'file',
            'description': u'Login with admin/admin',
            'disk_format': u'qcow2',
            'architecture': u'x86-64',
            'minimum_disk': 15,
            'minimum_ram': 512,
            'is_public': 1}
        files = {}
        form = forms.CreateImageForm(post, files)

        self.assertFalse(form.is_valid())
        mock_image_list.assert_has_calls(image_calls)
예제 #2
0
    def test_image_upload_disabled(self, mock_image_list):
        mock_image_list.side_effect = [[self.images.list(), False, False],
                                       [self.images.list(), False, False]]

        image_calls = [
            mock.call(test.IsA(dict), filters={'disk_format': 'aki'}),
            mock.call(test.IsA(dict), filters={'disk_format': 'ari'})
        ]

        form = forms.CreateImageForm({})

        self.assertEqual(
            isinstance(form.fields['image_file'].widget, HiddenInput), True)
        source_type_dict = dict(form.fields['source_type'].choices)
        self.assertNotIn('file', source_type_dict)
        mock_image_list.assert_has_calls(image_calls)
예제 #3
0
    def test_absolute_limits_with_negative_values(self, mock_cinderclient):
        values = {"maxTotalVolumes": -1, "totalVolumesUsed": -1}
        expected_results = {
            "maxTotalVolumes": float("inf"),
            "totalVolumesUsed": 0
        }

        class AbsoluteLimit(object):
            def __init__(self, absolute):
                self.absolute = absolute

        class FakeLimit(object):
            def __init__(self, name, value):
                self.name = name
                self.value = value

        fake_limits = [FakeLimit(k, v) for k, v in values.items()]

        cinderclient = mock_cinderclient.return_value
        mock_limit = cinderclient.limits.get
        mock_limit.return_value = AbsoluteLimit(fake_limits)

        ret_val = api.cinder.tenant_absolute_limits(self.request)

        for key in expected_results:
            self.assertEqual(expected_results[key], ret_val[key])

        mock_limit.assert_called_once()
        mock_cinderclient.assert_called_once_with(self.request,
                                                  ['limits_project_id_query'],
                                                  message=test.IsA(str))
예제 #4
0
    def test_swift_upload_object(self, mock_swiftclient):
        container = self.containers.first()
        obj = self.objects.first()
        fake_name = 'fake_object.jpg'

        class FakeFile(object):
            def __init__(self):
                self.name = fake_name
                self.data = obj.data
                self.size = len(obj.data)

        headers = {'X-Object-Meta-Orig-Filename': fake_name}

        swift_api = mock_swiftclient.return_value
        test_file = FakeFile()
        swift_api.put_object.return_value = None

        api.swift.swift_upload_object(self.request,
                                      container.name,
                                      obj.name,
                                      test_file)

        swift_api.put_object.assert_called_once_with(
            container.name,
            obj.name,
            test.IsA(FakeFile),
            content_length=test_file.size,
            headers=headers)
예제 #5
0
파일: tests.py 프로젝트: zhuangjl/horizon
    def test_image_create_post_upload_v2(self):
        temp_file = tempfile.NamedTemporaryFile()
        temp_file.write(b'123')
        temp_file.flush()
        temp_file.seek(0)

        data = {'source_type': u'file', 'image_file': temp_file}

        api_data = {'data': test.IsA(InMemoryUploadedFile)}
        self._test_image_create(data, api_data)
예제 #6
0
파일: tests.py 프로젝트: stackhpc/horizon
    def test_image_create_post_upload_v2(self, mock_schemas_list):
        mock_schemas_list.return_value = self.image_schemas.first()
        temp_file = tempfile.NamedTemporaryFile()
        temp_file.write(b'123')
        temp_file.flush()
        temp_file.seek(0)

        data = {'source_type': 'file', 'image_file': temp_file}

        api_data = {'data': test.IsA(InMemoryUploadedFile)}
        self._test_image_create(data, api_data)
예제 #7
0
파일: tests.py 프로젝트: zhuangjl/horizon
    def test_image_create_post_with_kernel_ramdisk_v2(self):
        temp_file = tempfile.NamedTemporaryFile()
        temp_file.write(b'123')
        temp_file.flush()
        temp_file.seek(0)

        data = {
            'source_type': u'file',
            'image_file': temp_file,
            'kernel_id': '007e7d55-fe1e-4c5c-bf08-44b4a496482e',
            'ramdisk_id': '007e7d55-fe1e-4c5c-bf08-44b4a496482a'
        }

        api_data = {'data': test.IsA(InMemoryUploadedFile)}
        self._test_image_create(data, api_data)