Convert admin.info tests into mock
Partially-Implements: blueprint mock-framework-in-unit-tests Change-Id: If5bc1e2e6471e0d4cf8adfbe6bc82103cafda158
This commit is contained in:

committed by
Akihiro Motoki

parent
ec14dd91bd
commit
324dce500e
@@ -12,10 +12,9 @@
|
|||||||
# License for the specific language governing permissions and limitations
|
# License for the specific language governing permissions and limitations
|
||||||
# under the License.
|
# under the License.
|
||||||
|
|
||||||
from django import http
|
import mock
|
||||||
|
|
||||||
from django.urls import reverse
|
from django.urls import reverse
|
||||||
from mox3.mox import IgnoreArg
|
|
||||||
from mox3.mox import IsA
|
|
||||||
|
|
||||||
from openstack_dashboard import api
|
from openstack_dashboard import api
|
||||||
from openstack_dashboard.test import helpers as test
|
from openstack_dashboard.test import helpers as test
|
||||||
@@ -25,35 +24,44 @@ INDEX_URL = reverse('horizon:admin:info:index')
|
|||||||
|
|
||||||
class SystemInfoViewTests(test.BaseAdminViewTests):
|
class SystemInfoViewTests(test.BaseAdminViewTests):
|
||||||
|
|
||||||
@test.create_stubs({api.base: ('is_service_enabled',),
|
@test.create_mocks({api.base: ['is_service_enabled'],
|
||||||
api.nova: ('service_list',),
|
api.nova: [('service_list', 'nova_service_list')],
|
||||||
api.neutron: ('agent_list', 'is_extension_supported'),
|
api.neutron: ['agent_list', 'is_extension_supported'],
|
||||||
api.cinder: ('service_list',),
|
api.cinder: [('service_list', 'cinder_service_list')],
|
||||||
})
|
})
|
||||||
def _test_base_index(self):
|
def _test_base_index(self):
|
||||||
api.base.is_service_enabled(IsA(http.HttpRequest), IgnoreArg()) \
|
self.mock_is_service_enabled.return_value = True
|
||||||
.MultipleTimes().AndReturn(True)
|
self.mock_nova_service_list.return_value = self.services.list()
|
||||||
|
|
||||||
services = self.services.list()
|
extensions = {
|
||||||
api.nova.service_list(IsA(http.HttpRequest)).AndReturn(services)
|
'agent': True,
|
||||||
|
'availability_zone': False
|
||||||
|
}
|
||||||
|
|
||||||
api.neutron.is_extension_supported(IsA(http.HttpRequest),
|
def _is_extension_supported(request, ext):
|
||||||
'agent').AndReturn(True)
|
return extensions[ext]
|
||||||
agents = self.agents.list()
|
|
||||||
api.neutron.agent_list(IsA(http.HttpRequest)).AndReturn(agents)
|
|
||||||
api.neutron.is_extension_supported(IsA(http.HttpRequest),
|
|
||||||
"availability_zone")\
|
|
||||||
.AndReturn(False)
|
|
||||||
|
|
||||||
cinder_services = self.cinder_services.list()
|
self.mock_is_extension_supported.side_effect = _is_extension_supported
|
||||||
api.cinder.service_list(IsA(http.HttpRequest)).\
|
self.mock_agent_list.return_value = self.agents.list()
|
||||||
AndReturn(cinder_services)
|
self.mock_cinder_service_list.return_value = \
|
||||||
|
self.cinder_services.list()
|
||||||
self.mox.ReplayAll()
|
|
||||||
|
|
||||||
res = self.client.get(INDEX_URL)
|
res = self.client.get(INDEX_URL)
|
||||||
self.assertTemplateUsed(res, 'admin/info/index.html')
|
self.assertTemplateUsed(res, 'admin/info/index.html')
|
||||||
|
|
||||||
|
self.mock_is_service_enabled.assert_called_once_with(
|
||||||
|
test.IsHttpRequest(), 'network')
|
||||||
|
self.mock_nova_service_list.assert_called_once_with(
|
||||||
|
test.IsHttpRequest())
|
||||||
|
self.mock_is_extension_supported.assert_has_calls([
|
||||||
|
mock.call(test.IsHttpRequest(), 'agent'),
|
||||||
|
mock.call(test.IsHttpRequest(), 'availability_zone')])
|
||||||
|
self.assertEqual(2, self.mock_is_extension_supported.call_count)
|
||||||
|
self.mock_agent_list.assert_called_once_with(
|
||||||
|
test.IsHttpRequest())
|
||||||
|
self.mock_cinder_service_list.assert_called_once_with(
|
||||||
|
test.IsHttpRequest())
|
||||||
|
|
||||||
return res
|
return res
|
||||||
|
|
||||||
def test_index(self):
|
def test_index(self):
|
||||||
@@ -62,7 +70,6 @@ class SystemInfoViewTests(test.BaseAdminViewTests):
|
|||||||
self.assertIn("region", services_tab._tables['services'].data[0])
|
self.assertIn("region", services_tab._tables['services'].data[0])
|
||||||
self.assertIn("endpoints",
|
self.assertIn("endpoints",
|
||||||
services_tab._tables['services'].data[0])
|
services_tab._tables['services'].data[0])
|
||||||
self.mox.VerifyAll()
|
|
||||||
|
|
||||||
def test_neutron_index(self):
|
def test_neutron_index(self):
|
||||||
res = self._test_base_index()
|
res = self._test_base_index()
|
||||||
@@ -72,8 +79,6 @@ class SystemInfoViewTests(test.BaseAdminViewTests):
|
|||||||
[agent.__repr__() for agent in self.agents.list()]
|
[agent.__repr__() for agent in self.agents.list()]
|
||||||
)
|
)
|
||||||
|
|
||||||
self.mox.VerifyAll()
|
|
||||||
|
|
||||||
def test_cinder_index(self):
|
def test_cinder_index(self):
|
||||||
res = self._test_base_index()
|
res = self._test_base_index()
|
||||||
cinder_services_tab = res.context['tab_group'].\
|
cinder_services_tab = res.context['tab_group'].\
|
||||||
@@ -82,5 +87,3 @@ class SystemInfoViewTests(test.BaseAdminViewTests):
|
|||||||
cinder_services_tab._tables['cinder_services'].data,
|
cinder_services_tab._tables['cinder_services'].data,
|
||||||
[service.__repr__() for service in self.cinder_services.list()]
|
[service.__repr__() for service in self.cinder_services.list()]
|
||||||
)
|
)
|
||||||
|
|
||||||
self.mox.VerifyAll()
|
|
||||||
|
Reference in New Issue
Block a user