Files
manila-ui/manila_ui/tests/dashboards/project/share_snapshots/test_tables.py
Victoria Martinez de la Cruz 1ed6c85a86 Fix quotas retrieval for shares and snapshots tables
After refactoring manila-ui plugin to adapt
to the tabbed quotas interface in horizon,
we stopped accesing the usages data structure
which (in horizon side) carries quotas information.
In this patch set we perform quotas control by
querying manilaclient directly.

Change-Id: I2896d54fde0d5e3975afbb7274faadf2a1a81d7c
Closes-Bug: #1783232
Co-Authored-By: Tom Barron <tpb@dyncloud.net>
2018-08-06 22:25:27 -03:00

76 lines
2.5 KiB
Python

# Copyright (c) 2015 Mirantis, Inc.
# All rights reserved.
# Licensed under the Apache License, Version 2.0 (the "License"); you may
# not use this file except in compliance with the License. You may obtain
# a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
import ddt
from django.core.handlers import wsgi
import mock
from manila_ui.api import manila as api_manila
from manila_ui.dashboards.project.share_snapshots import tables
from manila_ui.tests.dashboards.project import test_data
from manila_ui.tests import helpers as base
@ddt.ddt
class CreateSnapshotTests(base.APITestCase):
def setUp(self):
super(self.__class__, self).setUp()
FAKE_ENVIRON = {'REQUEST_METHOD': 'GET', 'wsgi.input': 'fake_input'}
self.request = wsgi.WSGIRequest(FAKE_ENVIRON)
self.create_snapshot = tables.CreateShareSnapshot()
def _get_fake_share(self, **kwargs):
if 'status' not in kwargs.keys():
kwargs.update({'status': 'available'})
return type("Share", (object, ), kwargs)()
@ddt.data(True, False)
def test_allowed_with_snapshot_support_attr(self, snapshot_support):
self.mock_object(
api_manila, "tenant_absolute_limits",
mock.Mock(return_value=test_data.limits))
share = self._get_fake_share(snapshot_support=snapshot_support)
result = self.create_snapshot.allowed(self.request, share)
self.assertEqual(snapshot_support, result)
def test_allowed_no_snapshot_support_attr(self):
self.mock_object(
api_manila, "tenant_absolute_limits",
mock.Mock(return_value=test_data.limits))
share = self._get_fake_share()
result = self.create_snapshot.allowed(self.request, share)
self.assertNotIn('disabled', self.create_snapshot.classes)
self.assertTrue(result)
def test_allowed_no_snapshot_support_attr_no_quota(self):
self.mock_object(
api_manila, "tenant_absolute_limits",
mock.Mock(return_value=test_data.limits_negative))
share = self._get_fake_share()
result = self.create_snapshot.allowed(self.request, share)
self.assertIn('disabled', self.create_snapshot.classes)
self.assertTrue(result)