Increase unit test coverage for muranodashboard Packages Tables
and Packages API. In addition, renamed and moved the following test files for better organization in the unit test directory: - test_tables -> environments/test_tables - test_packages -> packages/test_api Lastly, updated packages/test_views to fix single failing test in py27-mitaka-ubuntu-xenial. Implements bp: murano-unit-test-coverage Change-Id: I57813b0c68b4538616f6ecf03d2b92d535556645
This commit is contained in:
parent
30c88ac981
commit
6faf4f31f5
|
@ -19,10 +19,10 @@ from muranodashboard.api import packages
|
|||
from openstack_dashboard.test import helpers
|
||||
|
||||
|
||||
class TestPackages(helpers.APITestCase):
|
||||
class TestPackagesAPI(helpers.APITestCase):
|
||||
|
||||
def setUp(self):
|
||||
super(TestPackages, self).setUp()
|
||||
super(TestPackagesAPI, self).setUp()
|
||||
|
||||
self.packages = ['foo', 'bar', 'baz']
|
||||
self.mock_client = mock.Mock(spec=client)
|
||||
|
@ -39,8 +39,7 @@ class TestPackages(helpers.APITestCase):
|
|||
|
||||
self.assertEqual(self.packages, package_list)
|
||||
self.assertFalse(more)
|
||||
self.mock_client.packages.filter.assert_called_once_with(
|
||||
limit=100)
|
||||
self.mock_client.packages.filter.assert_called_once_with(limit=100)
|
||||
|
||||
def test_package_list_with_paginate(self):
|
||||
package_list, more = packages.package_list(self.mock_request,
|
||||
|
@ -50,8 +49,7 @@ class TestPackages(helpers.APITestCase):
|
|||
# Only one package should be returned.
|
||||
self.assertEqual(self.packages[:1], package_list)
|
||||
self.assertTrue(more)
|
||||
self.mock_client.packages.filter.assert_called_once_with(
|
||||
limit=2)
|
||||
self.mock_client.packages.filter.assert_called_once_with(limit=2)
|
||||
self.mock_client.packages.filter.reset_mock()
|
||||
|
||||
package_list, more = packages.package_list(self.mock_request,
|
||||
|
@ -61,8 +59,7 @@ class TestPackages(helpers.APITestCase):
|
|||
# Only two packages should be returned.
|
||||
self.assertEqual(self.packages[:2], package_list)
|
||||
self.assertTrue(more)
|
||||
self.mock_client.packages.filter.assert_called_once_with(
|
||||
limit=3)
|
||||
self.mock_client.packages.filter.assert_called_once_with(limit=3)
|
||||
|
||||
def test_package_list_with_filters(self):
|
||||
package_list, more = packages.package_list(self.mock_request,
|
||||
|
@ -117,3 +114,82 @@ class TestPackages(helpers.APITestCase):
|
|||
loader = packages.make_loader_cls()
|
||||
self.assertIsNotNone(loader)
|
||||
self.assertIn("Loader", str(loader))
|
||||
|
||||
@mock.patch('muranodashboard.common.cache._load_from_file',
|
||||
return_value=None)
|
||||
@mock.patch('muranodashboard.common.cache._save_to_file')
|
||||
def test_get_app_ui(self, *args):
|
||||
mock_get_ui = packages.api.muranoclient().packages.get_ui
|
||||
mock_get_ui.return_value = 'foo_ui'
|
||||
|
||||
ui = packages.get_app_ui(None, 'foo_app_id')
|
||||
mock_args = [arg for arg in mock_get_ui.call_args]
|
||||
|
||||
self.assertEqual(ui, 'foo_ui')
|
||||
mock_get_ui.assert_called_once_with('foo_app_id', mock.ANY)
|
||||
self.assertEqual('Loader', mock_args[0][1].__name__)
|
||||
|
||||
@mock.patch('muranodashboard.common.cache._load_from_file',
|
||||
return_value=None)
|
||||
@mock.patch('muranodashboard.common.cache._save_to_file')
|
||||
def test_get_app_logo(self, *args):
|
||||
mock_get_app_logo = packages.api.muranoclient().packages.get_logo
|
||||
mock_get_app_logo.return_value = 'foo_app_logo'
|
||||
|
||||
app_logo = packages.get_app_logo(None, 'foo_app_id')
|
||||
|
||||
self.assertEqual(app_logo, 'foo_app_logo')
|
||||
mock_get_app_logo.assert_called_once_with('foo_app_id')
|
||||
|
||||
@mock.patch('muranodashboard.common.cache._load_from_file',
|
||||
return_value=None)
|
||||
@mock.patch('muranodashboard.common.cache._save_to_file')
|
||||
def test_get_app_supplier_logo(self, *args):
|
||||
mock_get_supplier_logo = packages.api.muranoclient().packages.\
|
||||
get_supplier_logo
|
||||
mock_get_supplier_logo.return_value = 'foo_app_supplier_logo'
|
||||
|
||||
app_supplier_logo = packages.get_app_supplier_logo(None, 'foo_app_id')
|
||||
|
||||
self.assertEqual(app_supplier_logo, 'foo_app_supplier_logo')
|
||||
mock_get_supplier_logo.assert_called_once_with('foo_app_id')
|
||||
|
||||
@mock.patch('muranodashboard.common.cache._load_from_file',
|
||||
return_value=None)
|
||||
@mock.patch('muranodashboard.common.cache._save_to_file')
|
||||
def test_get_app_fqn(self, *args):
|
||||
mock_app = mock.Mock(fully_qualified_name='foo_app_fqn')
|
||||
mock_get_app = packages.api.muranoclient().packages.get
|
||||
mock_get_app.return_value = mock_app
|
||||
|
||||
app_fqn = packages.get_app_fqn(None, 'foo_app_id')
|
||||
|
||||
self.assertEqual(app_fqn, 'foo_app_fqn')
|
||||
mock_get_app.assert_called_once_with('foo_app_id')
|
||||
|
||||
@mock.patch('muranodashboard.common.cache._load_from_file',
|
||||
return_value=None)
|
||||
@mock.patch('muranodashboard.common.cache._save_to_file')
|
||||
def test_get_service_name(self, *args):
|
||||
mock_app = mock.Mock()
|
||||
mock_app.configure_mock(name='foo_app_name')
|
||||
mock_get_app = packages.api.muranoclient().packages.get
|
||||
mock_get_app.return_value = mock_app
|
||||
|
||||
app_service_name = packages.get_service_name(None, 'foo_app_id')
|
||||
|
||||
self.assertEqual(app_service_name, 'foo_app_name')
|
||||
mock_get_app.assert_called_once_with('foo_app_id')
|
||||
|
||||
@mock.patch('muranodashboard.common.cache._load_from_file',
|
||||
return_value=None)
|
||||
@mock.patch('muranodashboard.common.cache._save_to_file')
|
||||
def test_get_package_details(self, *args):
|
||||
mock_app = mock.Mock()
|
||||
mock_get_app = packages.api.muranoclient().packages.get
|
||||
mock_get_app.return_value = mock_app
|
||||
|
||||
app_details = packages.get_package_details(None, 'foo_app_id')
|
||||
|
||||
self.assertEqual(app_details, mock_app)
|
||||
mock_get_app.assert_called_once_with('foo_app_id')
|
|
@ -0,0 +1,351 @@
|
|||
# Copyright (c) 2016 AT&T Inc.
|
||||
#
|
||||
# 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 mock
|
||||
import testtools
|
||||
|
||||
from django.utils.translation import ugettext_lazy as _
|
||||
|
||||
from muranoclient.common import exceptions as exc
|
||||
from muranodashboard.packages import tables
|
||||
|
||||
|
||||
class TestImportPackage(testtools.TestCase):
|
||||
|
||||
def setUp(self):
|
||||
super(TestImportPackage, self).setUp()
|
||||
|
||||
self.import_package = tables.ImportPackage()
|
||||
|
||||
self.assertEqual('upload_package', self.import_package.name)
|
||||
self.assertEqual('Import Package',
|
||||
self.import_package.verbose_name)
|
||||
self.assertEqual('horizon:app-catalog:packages:upload',
|
||||
self.import_package.url)
|
||||
self.assertEqual(('ajax-modal',), self.import_package.classes)
|
||||
self.assertEqual('plus', self.import_package.icon)
|
||||
self.assertEqual((('murano', 'upload_package'),),
|
||||
self.import_package.policy_rules)
|
||||
|
||||
@mock.patch.object(tables, 'api')
|
||||
def test_allowed(self, mock_api):
|
||||
mock_api.muranoclient().packages.categories.return_value = ['foo_cat']
|
||||
self.assertTrue(self.import_package.allowed(None, None))
|
||||
|
||||
mock_api.muranoclient().packages.categories.return_value = None
|
||||
self.assertFalse(self.import_package.allowed(None, None))
|
||||
|
||||
|
||||
class TestDownloadPackage(testtools.TestCase):
|
||||
|
||||
def setUp(self):
|
||||
super(TestDownloadPackage, self).setUp()
|
||||
|
||||
self.download_package = tables.DownloadPackage()
|
||||
|
||||
self.assertEqual('download_package', self.download_package.name)
|
||||
self.assertEqual('Download Package',
|
||||
self.download_package.verbose_name)
|
||||
self.assertEqual((('murano', 'download_package'),),
|
||||
self.download_package.policy_rules)
|
||||
self.assertEqual('horizon:app-catalog:packages:download',
|
||||
self.download_package.url)
|
||||
|
||||
def test_allowed(self):
|
||||
self.assertTrue(self.download_package.allowed(None, None))
|
||||
|
||||
@mock.patch.object(tables, 'reverse')
|
||||
def test_get_link_url(self, mock_reverse):
|
||||
mock_reverse.return_value = 'foo_reverse_url'
|
||||
mock_app = mock.Mock(id='foo_app_id')
|
||||
mock_app.configure_mock(name='FOO APP')
|
||||
|
||||
result = self.download_package.get_link_url(mock_app)
|
||||
|
||||
self.assertEqual('foo_reverse_url', result)
|
||||
mock_reverse.assert_called_once_with(
|
||||
'horizon:app-catalog:packages:download',
|
||||
args=('foo-app', 'foo_app_id'))
|
||||
|
||||
|
||||
class TestToggleEnabled(testtools.TestCase):
|
||||
|
||||
def setUp(self):
|
||||
super(TestToggleEnabled, self).setUp()
|
||||
|
||||
self.mock_request = mock.Mock()
|
||||
self.toggle_enabled = tables.ToggleEnabled()
|
||||
self.toggle_enabled.request = self.mock_request
|
||||
|
||||
self.assertEqual('toggle_enabled', self.toggle_enabled.name)
|
||||
self.assertEqual('Toggle Enabled', self.toggle_enabled.verbose_name)
|
||||
self.assertEqual('toggle-on', self.toggle_enabled.icon)
|
||||
self.assertEqual((('murano', 'modify_package'),),
|
||||
self.toggle_enabled.policy_rules)
|
||||
|
||||
def test_action_present(self):
|
||||
self.assertEqual('Toggle Active',
|
||||
tables.ToggleEnabled.action_present(1))
|
||||
self.assertEqual('Toggle Active',
|
||||
tables.ToggleEnabled.action_present(2))
|
||||
|
||||
def test_action_past(self):
|
||||
self.assertEqual('Toggled Active',
|
||||
tables.ToggleEnabled.action_past(1))
|
||||
self.assertEqual('Toggled Active',
|
||||
tables.ToggleEnabled.action_past(2))
|
||||
|
||||
@mock.patch.object(tables, 'LOG')
|
||||
@mock.patch.object(tables, 'api')
|
||||
def test_action(self, mock_api, mock_log):
|
||||
self.toggle_enabled.action(self.mock_request, 'foo_package_id')
|
||||
|
||||
mock_api.muranoclient().packages.toggle_active.assert_called_once_with(
|
||||
'foo_package_id')
|
||||
mock_log.debug.assert_called_once_with('Toggle Active for package '
|
||||
'foo_package_id.')
|
||||
|
||||
@mock.patch.object(tables, 'reverse')
|
||||
@mock.patch.object(tables, 'messages')
|
||||
@mock.patch.object(tables, 'exceptions')
|
||||
@mock.patch.object(tables, 'LOG')
|
||||
@mock.patch.object(tables, 'api')
|
||||
def test_action_except_http_forbidden(self, mock_api, mock_log, mock_exc,
|
||||
mock_messages, mock_reverse):
|
||||
mock_api.muranoclient().packages.toggle_active.side_effect = \
|
||||
exc.HTTPForbidden
|
||||
mock_reverse.return_value = 'foo_reverse_url'
|
||||
expected_msg = _('You are not allowed to perform this operation')
|
||||
|
||||
self.toggle_enabled.action(self.mock_request, 'foo_package_id')
|
||||
|
||||
mock_api.muranoclient().packages.toggle_active.assert_called_once_with(
|
||||
'foo_package_id')
|
||||
mock_log.exception.assert_called_once_with(expected_msg)
|
||||
mock_messages.error.assert_called_once_with(self.mock_request,
|
||||
expected_msg)
|
||||
mock_exc.handle.assert_called_once_with(self.mock_request,
|
||||
expected_msg,
|
||||
redirect='foo_reverse_url')
|
||||
mock_reverse.assert_called_once_with(
|
||||
'horizon:app-catalog:packages:index')
|
||||
|
||||
|
||||
class TestTogglePublicEnabled(testtools.TestCase):
|
||||
|
||||
def setUp(self):
|
||||
super(TestTogglePublicEnabled, self).setUp()
|
||||
|
||||
self.mock_request = mock.Mock()
|
||||
self.toggle_public_enabled = tables.TogglePublicEnabled()
|
||||
self.toggle_public_enabled.request = self.mock_request
|
||||
|
||||
self.assertEqual('toggle_public_enabled',
|
||||
self.toggle_public_enabled.name)
|
||||
self.assertEqual('share-alt', self.toggle_public_enabled.icon)
|
||||
self.assertEqual((('murano', 'publicize_package'),),
|
||||
self.toggle_public_enabled.policy_rules)
|
||||
|
||||
def test_action_present(self):
|
||||
self.assertEqual('Toggle Public',
|
||||
tables.TogglePublicEnabled.action_present(1))
|
||||
self.assertEqual('Toggle Public',
|
||||
tables.TogglePublicEnabled.action_present(2))
|
||||
|
||||
def test_action_past(self):
|
||||
self.assertEqual('Toggled Public',
|
||||
tables.TogglePublicEnabled.action_past(1))
|
||||
self.assertEqual('Toggled Public',
|
||||
tables.TogglePublicEnabled.action_past(2))
|
||||
|
||||
@mock.patch.object(tables, 'LOG')
|
||||
@mock.patch.object(tables, 'api')
|
||||
def test_action(self, mock_api, mock_log):
|
||||
self.toggle_public_enabled.action(self.mock_request, 'foo_package_id')
|
||||
|
||||
mock_api.muranoclient().packages.toggle_public.assert_called_once_with(
|
||||
'foo_package_id')
|
||||
mock_log.debug.assert_called_once_with(
|
||||
'Toggle Public for package foo_package_id.')
|
||||
|
||||
@mock.patch.object(tables, 'reverse')
|
||||
@mock.patch.object(tables, 'messages')
|
||||
@mock.patch.object(tables, 'exceptions')
|
||||
@mock.patch.object(tables, 'LOG')
|
||||
@mock.patch.object(tables, 'api')
|
||||
def test_action_except_http_forbidden(self, mock_api, mock_log, mock_exc,
|
||||
mock_messages, mock_reverse):
|
||||
mock_api.muranoclient().packages.toggle_public.side_effect = \
|
||||
exc.HTTPForbidden
|
||||
mock_reverse.return_value = 'foo_reverse_url'
|
||||
expected_msg = _('You are not allowed to perform this operation')
|
||||
|
||||
self.toggle_public_enabled.action(self.mock_request, 'foo_package_id')
|
||||
|
||||
mock_api.muranoclient().packages.toggle_public.assert_called_once_with(
|
||||
'foo_package_id')
|
||||
mock_log.exception.assert_called_once_with(expected_msg)
|
||||
mock_messages.error.assert_called_once_with(self.mock_request,
|
||||
expected_msg)
|
||||
mock_exc.handle.assert_called_once_with(self.mock_request,
|
||||
expected_msg,
|
||||
redirect='foo_reverse_url')
|
||||
mock_reverse.assert_called_once_with(
|
||||
'horizon:app-catalog:packages:index')
|
||||
|
||||
@mock.patch.object(tables, 'reverse')
|
||||
@mock.patch.object(tables, 'messages')
|
||||
@mock.patch.object(tables, 'exceptions')
|
||||
@mock.patch.object(tables, 'LOG')
|
||||
@mock.patch.object(tables, 'api')
|
||||
def test_action_except_http_conflict(self, mock_api, mock_log, mock_exc,
|
||||
mock_messages, mock_reverse):
|
||||
mock_api.muranoclient().packages.toggle_public.side_effect = \
|
||||
exc.HTTPConflict
|
||||
mock_reverse.return_value = 'foo_reverse_url'
|
||||
expected_msg = _('Package or Class with the same name is already made '
|
||||
'public')
|
||||
|
||||
self.toggle_public_enabled.action(self.mock_request, 'foo_package_id')
|
||||
|
||||
mock_api.muranoclient().packages.toggle_public.assert_called_once_with(
|
||||
'foo_package_id')
|
||||
mock_log.exception.assert_called_once_with(expected_msg)
|
||||
mock_messages.error.assert_called_once_with(self.mock_request,
|
||||
expected_msg)
|
||||
mock_exc.handle.assert_called_once_with(self.mock_request,
|
||||
expected_msg,
|
||||
redirect='foo_reverse_url')
|
||||
mock_reverse.assert_called_once_with(
|
||||
'horizon:app-catalog:packages:index')
|
||||
|
||||
|
||||
class TestDeletePackage(testtools.TestCase):
|
||||
|
||||
def setUp(self):
|
||||
super(TestDeletePackage, self).setUp()
|
||||
|
||||
self.mock_request = mock.Mock()
|
||||
self.delete_package = tables.DeletePackage()
|
||||
self.delete_package.request = self.mock_request
|
||||
|
||||
self.assertEqual('delete_package', self.delete_package.name)
|
||||
self.assertEqual((('murano', 'delete_package'),),
|
||||
self.delete_package.policy_rules)
|
||||
|
||||
def test_action_present(self):
|
||||
self.assertEqual('Delete Package',
|
||||
tables.DeletePackage.action_present(1))
|
||||
self.assertEqual('Delete Packages',
|
||||
tables.DeletePackage.action_present(2))
|
||||
|
||||
def test_action_past(self):
|
||||
self.assertEqual('Deleted Package',
|
||||
tables.DeletePackage.action_past(1))
|
||||
self.assertEqual('Deleted Packages',
|
||||
tables.DeletePackage.action_past(2))
|
||||
|
||||
@mock.patch.object(tables, 'LOG')
|
||||
@mock.patch.object(tables, 'api')
|
||||
def test_delete(self, mock_api, mock_log):
|
||||
|
||||
self.delete_package.delete(self.mock_request, 'foo_package_id')
|
||||
|
||||
mock_api.muranoclient().packages.delete.assert_called_once_with(
|
||||
'foo_package_id')
|
||||
mock_log.exception.assert_not_called()
|
||||
|
||||
@mock.patch.object(tables, 'reverse')
|
||||
@mock.patch.object(tables, 'exceptions')
|
||||
@mock.patch.object(tables, 'LOG')
|
||||
@mock.patch.object(tables, 'api')
|
||||
def test_delete_except_http_not_found(self, mock_api, mock_log, mock_exc,
|
||||
mock_reverse):
|
||||
mock_api.muranoclient().packages.delete.side_effect = exc.HTTPNotFound
|
||||
mock_reverse.return_value = 'foo_reverse_url'
|
||||
expected_msg = _('Package with id foo_package_id is not found')
|
||||
|
||||
self.delete_package.delete(self.mock_request, 'foo_package_id')
|
||||
|
||||
mock_api.muranoclient().packages.delete.assert_called_once_with(
|
||||
'foo_package_id')
|
||||
mock_log.exception.assert_called_once_with(expected_msg)
|
||||
mock_exc.handle.assert_called_once_with(self.mock_request,
|
||||
expected_msg,
|
||||
redirect='foo_reverse_url')
|
||||
mock_reverse.assert_called_once_with(
|
||||
'horizon:app-catalog:packages:index')
|
||||
|
||||
@mock.patch.object(tables, 'reverse')
|
||||
@mock.patch.object(tables, 'exceptions')
|
||||
@mock.patch.object(tables, 'LOG')
|
||||
@mock.patch.object(tables, 'api')
|
||||
def test_delete_except_http_forbidden(self, mock_api, mock_log, mock_exc,
|
||||
mock_reverse):
|
||||
mock_api.muranoclient().packages.delete.side_effect = exc.HTTPForbidden
|
||||
mock_reverse.return_value = 'foo_reverse_url'
|
||||
expected_msg = _('You are not allowed to delete this package')
|
||||
|
||||
self.delete_package.delete(self.mock_request, 'foo_package_id')
|
||||
|
||||
mock_api.muranoclient().packages.delete.assert_called_once_with(
|
||||
'foo_package_id')
|
||||
mock_log.exception.assert_called_once_with(expected_msg)
|
||||
mock_exc.handle.assert_called_once_with(self.mock_request,
|
||||
expected_msg,
|
||||
redirect='foo_reverse_url')
|
||||
mock_reverse.assert_called_once_with(
|
||||
'horizon:app-catalog:packages:index')
|
||||
|
||||
@mock.patch.object(tables, 'reverse')
|
||||
@mock.patch.object(tables, 'exceptions')
|
||||
@mock.patch.object(tables, 'LOG')
|
||||
@mock.patch.object(tables, 'api')
|
||||
def test_delete_except_exception(self, mock_api, mock_log, mock_exc,
|
||||
mock_reverse):
|
||||
mock_api.muranoclient().packages.delete.side_effect = Exception
|
||||
mock_reverse.return_value = 'foo_reverse_url'
|
||||
expected_log_msg = _('Unable to delete package in murano-api server')
|
||||
|
||||
self.delete_package.delete(self.mock_request, 'foo_package_id')
|
||||
|
||||
mock_api.muranoclient().packages.delete.assert_called_once_with(
|
||||
'foo_package_id')
|
||||
mock_log.exception.assert_called_once_with(expected_log_msg)
|
||||
mock_exc.handle.assert_called_once_with(self.mock_request,
|
||||
_('Unable to remove package.'),
|
||||
redirect='foo_reverse_url')
|
||||
mock_reverse.assert_called_once_with(
|
||||
'horizon:app-catalog:packages:index')
|
||||
|
||||
|
||||
class TestModifyPackage(testtools.TestCase):
|
||||
|
||||
def setUp(self):
|
||||
super(TestModifyPackage, self).setUp()
|
||||
|
||||
self.modify_package = tables.ModifyPackage()
|
||||
|
||||
self.assertEqual('modify_package', self.modify_package.name)
|
||||
self.assertEqual(_('Modify Package'),
|
||||
self.modify_package.verbose_name)
|
||||
self.assertEqual('horizon:app-catalog:packages:modify',
|
||||
self.modify_package.url)
|
||||
self.assertEqual(('ajax-modal',), self.modify_package.classes)
|
||||
self.assertEqual('edit', self.modify_package.icon)
|
||||
self.assertEqual((('murano', 'modify_package'),),
|
||||
self.modify_package.policy_rules)
|
||||
|
||||
def test_allowed(self):
|
||||
self.assertTrue(self.modify_package.allowed(None, None))
|
|
@ -319,7 +319,8 @@ class TestImportPackageWizard(helpers.APITestCase):
|
|||
@mock.patch.object(views, 'exceptions')
|
||||
@mock.patch.object(views, 'glance')
|
||||
@mock.patch.object(views, 'reverse')
|
||||
def test_done(self, mock_reverse, mock_glance, mock_exc):
|
||||
@mock.patch.object(views, 'api')
|
||||
def test_done(self, mock_api, mock_reverse, mock_glance, mock_exc):
|
||||
mock_storage = mock.MagicMock()
|
||||
mock_storage.get_step_data().__getitem__.return_value =\
|
||||
mock.Mock(id='test_package_id')
|
||||
|
@ -333,6 +334,16 @@ class TestImportPackageWizard(helpers.APITestCase):
|
|||
|
||||
self.import_pkg_wizard.done({})
|
||||
|
||||
expected_api_mock_calls = [
|
||||
mock.call('test_dep_pkg_id',
|
||||
{'enabled': False, 'is_public': True}),
|
||||
mock.call('test_package_id',
|
||||
{'enabled': False, 'is_public': True,
|
||||
'tags': ['foo', 'bar', 'baz', 'qux']}),
|
||||
]
|
||||
|
||||
mock_api.muranoclient().packages.update.assert_has_calls(
|
||||
expected_api_mock_calls)
|
||||
mock_reverse.assert_called_once_with(
|
||||
'horizon:app-catalog:packages:index')
|
||||
mock_glance.glanceclient().images.update.assert_called_once_with(
|
||||
|
@ -340,6 +351,7 @@ class TestImportPackageWizard(helpers.APITestCase):
|
|||
mock_storage.get_step_data.assert_any_call('upload')
|
||||
mock_storage.get_step_data().get.assert_any_call('dependencies', [])
|
||||
mock_storage.get_step_data().get.assert_any_call('images', [])
|
||||
mock_exc.handle.assert_not_called()
|
||||
|
||||
@mock.patch.object(views, 'reverse')
|
||||
@mock.patch.object(views, 'glance')
|
||||
|
|
Loading…
Reference in New Issue