def test_instance_usage_exception(self): now = self.override_times() exception = api_exceptions.ApiException('apiException', message='apiException') self.mox.StubOutWithMock(api, 'usage_get') api.usage_get( IsA(http.HttpRequest), self.TEST_TENANT, datetime.datetime(now.year, now.month, 1, now.hour, now.minute, now.second), now).AndRaise(exception) self.mox.StubOutWithMock(messages, 'error') messages.error(IsA(http.HttpRequest), IsA(basestring)) self.mox.ReplayAll() res = self.client.get( reverse('horizon:nova:instances_and_volumes:instances:usage')) self.assertTemplateUsed( res, 'nova/instances_and_volumes/instances/usage.html') self.assertEqual(res.context['usage'], {}) self.reset_times()
def test_instance_usage_exception(self): now = self.override_times() exception = api_exceptions.ApiException('apiException', message='apiException') self.mox.StubOutWithMock(api, 'usage_get') api.usage_get(IsA(http.HttpRequest), self.TEST_TENANT, datetime.datetime(now.year, now.month, 1, now.hour, now.minute, now.second), now).AndRaise(exception) self.mox.StubOutWithMock(messages, 'error') messages.error(IsA(http.HttpRequest), IsA(str)) self.mox.ReplayAll() res = self.client.get(reverse('dash_usage', args=[self.TEST_TENANT])) self.assertTemplateUsed(res, 'django_openstack/dash/instances/usage.html') self.assertEqual(res.context['usage'], {}) self.mox.VerifyAll() self.reset_times()
def test_instance_update_post_api_exception(self): INSTANCE_ID = self.servers[0].id NAME = 'myname' formData = { 'method': 'UpdateInstance', 'instance': INSTANCE_ID, 'name': NAME, 'tenant_id': self.TEST_TENANT } self.mox.StubOutWithMock(api, 'server_get') api.server_get(IsA(http.HttpRequest), unicode(INSTANCE_ID)).AndReturn(self.servers[0]) exception = api_exceptions.ApiException('apiException') self.mox.StubOutWithMock(api, 'server_update') api.server_update(IsA(http.HttpRequest), str(INSTANCE_ID), NAME).\ AndRaise(exception) self.mox.ReplayAll() res = self.client.post( reverse('horizon:nova:instances_and_volumes:instances:update', args=[INSTANCE_ID]), formData) self.assertRedirectsNoFollow( res, reverse('horizon:nova:instances_and_volumes:instances:index'))
def test_terminate_instance_exception(self): formData = { 'method': 'TerminateInstance', 'instance': self.servers[0].id, } self.mox.StubOutWithMock(api, 'server_get') api.server_get(IsA(http.HttpRequest), str(self.servers[0].id)).AndReturn(self.servers[0]) exception = api_exceptions.ApiException('ApiException', message='apiException') self.mox.StubOutWithMock(api, 'server_delete') api.server_delete(IsA(http.HttpRequest), self.servers[0]).AndRaise(exception) self.mox.StubOutWithMock(messages, 'error') messages.error(IsA(http.HttpRequest), IsA(unicode)) self.mox.ReplayAll() res = self.client.post( reverse('horizon:nova:instances_and_volumes:instances:index'), formData) self.assertRedirectsNoFollow( res, reverse('horizon:nova:instances_and_volumes:instances:index'))
def test_launch_keypairlist_error(self): IMAGE_ID = '2' self.mox.StubOutWithMock(api, 'image_get_meta') api.image_get_meta(IsA(http.HttpRequest), IMAGE_ID).AndReturn(self.visibleImage) self.mox.StubOutWithMock(api, 'tenant_quota_get') api.tenant_quota_get(IsA(http.HttpRequest), self.TEST_TENANT).AndReturn(FakeQuota) self.mox.StubOutWithMock(api, 'flavor_list') api.flavor_list(IsA(http.HttpRequest)).AndReturn(self.flavors) exception = api_exceptions.ApiException('apiException') self.mox.StubOutWithMock(api, 'keypair_list') api.keypair_list(IsA(http.HttpRequest)).AndRaise(exception) self.mox.StubOutWithMock(api, 'security_group_list') api.security_group_list(IsA(http.HttpRequest)).AndReturn( self.security_groups) self.mox.ReplayAll() res = self.client.get(reverse('horizon:nova:images:launch', args=[IMAGE_ID])) self.assertTemplateUsed(res, 'nova/images/launch.html') form = res.context['form'] form_keyfield = form.fields['key_name'] self.assertEqual(len(form_keyfield.choices), 0)
def test_create_snapshot_post_exception(self): SNAPSHOT_NAME = 'snappy' new_snapshot = self.mox.CreateMock(api.Image) new_snapshot.name = SNAPSHOT_NAME formData = { 'method': 'CreateSnapshot', 'tenant_id': self.TEST_TENANT, 'instance_id': self.good_server.id, 'name': SNAPSHOT_NAME } self.mox.StubOutWithMock(api, 'snapshot_create') exception = api_exceptions.ApiException('apiException', message='apiException') api.snapshot_create(IsA(http.HttpRequest), str(self.good_server.id), SNAPSHOT_NAME).\ AndRaise(exception) self.mox.ReplayAll() res = self.client.post( reverse('horizon:nova:snapshots:create', args=[self.good_server.id]), formData) self.assertRedirectsNoFollow( res, reverse('horizon:nova:snapshots:create', args=[self.good_server.id]))
def test_instance_update_post_api_exception(self): INSTANCE_ID = self.servers[0].id NAME = 'myname' DESC = 'mydesc' formData = {'method': 'UpdateInstance', 'instance': INSTANCE_ID, 'name': NAME, 'tenant_id': self.TEST_TENANT, 'description': DESC} self.mox.StubOutWithMock(api, 'server_get') api.server_get(IsA(http.HttpRequest), unicode(INSTANCE_ID)).AndReturn(self.servers[0]) exception = api_exceptions.ApiException('apiException') self.mox.StubOutWithMock(api, 'server_update') api.server_update(IsA(http.HttpRequest), str(INSTANCE_ID), NAME, DESC).\ AndRaise(exception) self.mox.ReplayAll() res = self.client.post(reverse('dash_instances_update', args=[self.TEST_TENANT, INSTANCE_ID]), formData) self.assertRedirectsNoFollow(res, reverse('dash_instances', args=[self.TEST_TENANT])) self.mox.VerifyAll()
def test_launch_form_apiexception(self): FLAVOR_ID = self.flavors[0].id IMAGE_ID = '1' KEY_NAME = self.keypairs[0].name SERVER_NAME = 'serverName' USER_DATA = 'userData' form_data = {'method': 'LaunchForm', 'flavor': FLAVOR_ID, 'image_id': IMAGE_ID, 'key_name': KEY_NAME, 'name': SERVER_NAME, 'tenant_id': self.TEST_TENANT, 'user_data': USER_DATA, 'security_groups': 'default', } self.mox.StubOutWithMock(api, 'image_get_meta') api.image_get_meta(IgnoreArg(), IMAGE_ID).AndReturn(self.visibleImage) self.mox.StubOutWithMock(api, 'tenant_quota_get') api.tenant_quota_get(IsA(http.HttpRequest), self.TEST_TENANT).AndReturn(FakeQuota) self.mox.StubOutWithMock(api, 'flavor_list') api.flavor_list(IgnoreArg()).AndReturn(self.flavors) self.mox.StubOutWithMock(api, 'keypair_list') api.keypair_list(IgnoreArg()).AndReturn(self.keypairs) self.mox.StubOutWithMock(api, 'security_group_list') api.security_group_list(IsA(http.HttpRequest)).AndReturn( self.security_groups) # called again by the form api.image_get_meta(IgnoreArg(), IMAGE_ID).AndReturn(self.visibleImage) self.mox.StubOutWithMock(api, 'flavor_get') api.flavor_get(IgnoreArg(), IsA(unicode)).AndReturn(self.flavors[0]) self.mox.StubOutWithMock(api, 'server_create') exception = api_exceptions.ApiException('apiException') api.server_create(IsA(http.HttpRequest), SERVER_NAME, self.visibleImage, self.flavors[0], KEY_NAME, USER_DATA, self.security_groups).AndRaise(exception) self.mox.StubOutWithMock(messages, 'error') messages.error(IsA(http.HttpRequest), IsA(basestring)) self.mox.ReplayAll() url = reverse('horizon:nova:images:launch', args=[IMAGE_ID]) res = self.client.post(url, form_data) self.assertTemplateUsed(res, 'nova/images/launch.html')
def test_index_server_list_exception(self): self.mox.StubOutWithMock(api, 'server_list') exception = api_exceptions.ApiException('apiException') api.server_list(IsA(http.HttpRequest)).AndRaise(exception) self.mox.ReplayAll() res = self.client.get(reverse('horizon:nova:instances:index')) self.assertTemplateUsed(res, 'nova/instances/index.html') self.assertEqual(len(res.context['instances']), 0)
def test_create_get_server_exception(self): self.mox.StubOutWithMock(api, 'server_get') exception = api_exceptions.ApiException('apiException') api.server_get(IsA(http.HttpRequest), str(self.good_server.id)).AndRaise(exception) self.mox.ReplayAll() res = self.client.get( reverse('horizon:nova:snapshots:create', args=[self.good_server.id])) self.assertRedirectsNoFollow(res, reverse('horizon:nova:instances:index'))
def test_instance_update_get_server_get_exception(self): INSTANCE_ID = self.servers[0].id exception = api_exceptions.ApiException('apiException') self.mox.StubOutWithMock(api, 'server_get') api.server_get(IsA(http.HttpRequest), unicode(INSTANCE_ID)).AndRaise(exception) self.mox.ReplayAll() res = self.client.get(reverse('horizon:nova:instances:update', args=[INSTANCE_ID])) self.assertRedirectsNoFollow(res, reverse('horizon:nova:instances:index'))
def test_enable_disable_user_exception(self): OTHER_USER_ID = '5' formData = {'action': 'users__enable__%s' % OTHER_USER_ID} self.mox.StubOutWithMock(api.keystone, 'user_update_enabled') api_exception = api_exceptions.ApiException('apiException', message='apiException') api.keystone.user_update_enabled(IgnoreArg(), OTHER_USER_ID, True) \ .AndRaise(api_exception) self.mox.ReplayAll() res = self.client.post(USERS_INDEX_URL, formData) self.assertRedirects(res, USERS_INDEX_URL)
def test_index_server_list_exception(self): self.mox.StubOutWithMock(api, 'server_list') exception = api_exceptions.ApiException('apiException') api.server_list(IsA(http.HttpRequest)).AndRaise(exception) self.mox.ReplayAll() res = self.client.get(reverse('dash_instances', args=[self.TEST_TENANT])) self.assertTemplateUsed(res, 'django_openstack/dash/instances/index.html') self.assertEqual(len(res.context['instances']), 0) self.mox.VerifyAll()
def test_login_exception(self): form_data = {'method': 'Login', 'password': self.PASSWORD, 'username': self.TEST_USER} self.mox.StubOutWithMock(api, 'token_create') api_exception = api_exceptions.ApiException('apiException', message='apiException') api.token_create(IsA(http.HttpRequest), "", self.TEST_USER, self.PASSWORD).AndRaise(api_exception) self.mox.ReplayAll() res = self.client.post(reverse('horizon:auth_login'), form_data) self.assertTemplateUsed(res, 'splash.html')
def test_create_get_server_exception(self): self.mox.StubOutWithMock(api, 'server_get') exception = api_exceptions.ApiException('apiException') api.server_get(IsA(http.HttpRequest), str(self.good_server.id)).AndRaise(exception) self.mox.ReplayAll() res = self.client.get( reverse('dash_snapshots_create', args=[self.TEST_TENANT, self.good_server.id])) self.assertRedirectsNoFollow( res, reverse('dash_instances', args=[self.TEST_TENANT])) self.mox.VerifyAll()
def test_instance_vnc_exception(self): INSTANCE_ID = self.servers[0].id exception = api_exceptions.ApiException('apiException', message='apiException') self.mox.StubOutWithMock(api, 'console_create') api.console_create(IsA(http.HttpRequest), unicode(INSTANCE_ID), 'vnc').AndRaise(exception) self.mox.ReplayAll() res = self.client.get( reverse('horizon:nova:instances_and_volumes:instances:vnc', args=[INSTANCE_ID])) self.assertRedirectsNoFollow( res, reverse('horizon:nova:instances_and_volumes:instances:index'))
def test_enable_disable_user_exception(self): OTHER_USER = '******' formData = { 'method': 'UserEnableDisableForm', 'id': OTHER_USER, 'enabled': 'enable' } self.mox.StubOutWithMock(api, 'user_update_enabled') api_exception = api_exceptions.ApiException('apiException', message='apiException') api.user_update_enabled(IgnoreArg(), OTHER_USER, True).AndRaise(api_exception) self.mox.ReplayAll() res = self.client.post(USERS_INDEX_URL, formData) self.assertRedirectsNoFollow(res, USERS_INDEX_URL)
def test_download_metadata_api_error(self): IMAGE_ID = '1' self.mox.StubOutWithMock(api, 'image_get_meta') exception = api_exceptions.ApiException('ApiError') api.image_get_meta(IsA(http.HttpRequest), IMAGE_ID).AndRaise(exception) self.mox.StubOutWithMock(messages, 'error') messages.error(IsA(http.HttpRequest), IsA(str)) self.mox.ReplayAll() res = self.client.get( reverse('dash_metadata_download', args=[self.TEST_TENANT, IMAGE_ID])) self.assertRedirectsNoFollow( res, reverse('dash_images_metadata', args=[self.TEST_TENANT])) self.mox.VerifyAll()
def test_instance_vnc_exception(self): INSTANCE_ID = self.servers[0].id exception = api_exceptions.ApiException('apiException', message='apiException') self.mox.StubOutWithMock(api, 'console_create') api.console_create(IsA(http.HttpRequest), unicode(INSTANCE_ID), 'vnc').AndRaise(exception) self.mox.ReplayAll() res = self.client.get(reverse('dash_instances_vnc', args=[self.TEST_TENANT, INSTANCE_ID])) self.assertRedirectsNoFollow(res, reverse('dash_instances', args=[self.TEST_TENANT])) self.mox.VerifyAll()
def test_instance_console_exception(self): INSTANCE_ID = self.servers[0].id exception = api_exceptions.ApiException('apiException', message='apiException') self.mox.StubOutWithMock(api, 'console_create') api.console_create(IgnoreArg(), unicode(INSTANCE_ID), IgnoreArg()).AndRaise(exception) self.mox.StubOutWithMock(messages, 'error') messages.error(IgnoreArg(), IsA(unicode)) self.mox.ReplayAll() res = self.client.get( reverse('horizon:nova:instances_and_volumes:instances:console', args=[INSTANCE_ID])) self.assertRedirectsNoFollow( res, reverse('horizon:nova:instances_and_volumes:instances:index'))
def test_reboot_instance_exception(self): formData = {'method': 'RebootInstance', 'instance': self.servers[0].id, } self.mox.StubOutWithMock(api, 'server_reboot') exception = api_exceptions.ApiException('ApiException', message='apiException') api.server_reboot(IsA(http.HttpRequest), unicode(self.servers[0].id)).AndRaise(exception) self.mox.StubOutWithMock(messages, 'error') messages.error(IsA(http.HttpRequest), IsA(basestring)) self.mox.ReplayAll() res = self.client.post(reverse('horizon:nova:instances:index'), formData) self.assertRedirectsNoFollow(res, reverse('horizon:nova:instances:index'))
def test_launch_flavorlist_error(self): IMAGE_ID = '1' self.mox.StubOutWithMock(api, 'image_get') api.image_get(IsA(http.HttpRequest), IMAGE_ID).AndReturn(self.visibleImage) self.mox.StubOutWithMock(api, 'token_get_tenant') api.token_get_tenant(IsA(http.HttpRequest), self.TEST_TENANT).AndReturn(self.TEST_TENANT) self.mox.StubOutWithMock(api, 'tenant_quota_get') api.tenant_quota_get(IsA(http.HttpRequest), self.TEST_TENANT).AndReturn(FakeQuota) exception = api_exceptions.ApiException('apiException') self.mox.StubOutWithMock(api, 'flavor_list') api.flavor_list(IsA(http.HttpRequest)).AndRaise(exception) self.mox.StubOutWithMock(api, 'keypair_list') api.keypair_list(IsA(http.HttpRequest)).AndReturn(self.keypairs) self.mox.StubOutWithMock(api, 'security_group_list') api.security_group_list(IsA(http.HttpRequest)).AndReturn( self.security_groups) self.mox.ReplayAll() res = self.client.get( reverse('dash_images_launch', args=[self.TEST_TENANT, IMAGE_ID])) self.assertTemplateUsed(res, 'django_openstack/dash/images/launch.html') form = res.context['form'] form_flavorfield = form.fields['flavor'] self.assertIn('m1.tiny', form_flavorfield.choices[0][1]) self.mox.VerifyAll()
def test_instance_console_exception(self): INSTANCE_ID = self.servers[0].id exception = api_exceptions.ApiException('apiException', message='apiException') self.mox.StubOutWithMock(api, 'console_create') api.console_create(IgnoreArg(), unicode(INSTANCE_ID), IgnoreArg()).AndRaise(exception) self.mox.StubOutWithMock(messages, 'error') messages.error(IgnoreArg(), IsA(unicode)) self.mox.ReplayAll() res = self.client.get(reverse('dash_instances_console', args=[self.TEST_TENANT, INSTANCE_ID])) self.assertRedirectsNoFollow(res, reverse('dash_instances', args=[self.TEST_TENANT])) self.mox.VerifyAll()
def test_reboot_instance_exception(self): formData = {'method': 'RebootInstance', 'instance': self.servers[0].id, } self.mox.StubOutWithMock(api, 'server_reboot') exception = api_exceptions.ApiException('ApiException', message='apiException') api.server_reboot(IsA(http.HttpRequest), unicode(self.servers[0].id)).AndRaise(exception) self.mox.StubOutWithMock(messages, 'error') messages.error(IsA(http.HttpRequest), IsA(str)) self.mox.ReplayAll() res = self.client.post(reverse('dash_instances', args=[self.TEST_TENANT]), formData) self.assertRedirectsNoFollow(res, reverse('dash_instances', args=[self.TEST_TENANT])) self.mox.VerifyAll()