def test_edit_tags(self): image = self.registered_images.first() self.mock_image_get.return_value = image self.mock_image_update.return_value = True self.mock_image_tags_update.return_value = True edit_tags_url = reverse( 'horizon:project:data_processing.clusters:edit_tags', args=[image.id]) res = self.client.post( edit_tags_url, { 'image_id': image.id, 'user_name': image.username, 'description': image.description, 'tags_list': '{"0": "mytag"}' }) self.mock_image_update.assert_called_once_with(IsHttpRequest(), image.id, image.username, image.description) self.mock_image_tags_update.assert_called_once_with( IsHttpRequest(), image.id, {"0": "mytag"}) self.assertNoFormErrors(res) self.assertRedirectsNoFollow(res, SUCCESS_URL) self.assertMessageCount(success=1)
def test_launch_cluster_get_nodata(self): self.mock_cluster_template_list.return_value = [] self.mock_image_list.return_value = [] url = reverse( 'horizon:project:data_processing.clusters:configure-cluster') res = self.client.get("%s?plugin_name=shoes&hadoop_version=1.1" % url) self.mock_cluster_template_list.assert_called_once_with( IsHttpRequest()) self.mock_image_list.assert_called_once_with(IsHttpRequest()) self.assertContains(res, "No Images Available") self.assertContains(res, "No Templates Available")
def test_unregister(self): image = self.images.first() self.mock_image_list.return_value = self.images.list() self.mock_image_unregister.return_value = None form_data = {'action': 'image_registry__unregister__%s' % image.id} res = self.client.post(INDEX_URL, form_data) self.mock_image_list.assert_called_once_with(IsHttpRequest()) self.mock_image_unregister.assert_called_once_with( IsHttpRequest(), image.id) self.assertNoFormErrors(res) self.assertRedirectsNoFollow(res, INDEX_URL) self.assertMessageCount(success=1)
def test_delete(self): cluster = self.clusters.first() self.mock_cluster_list.return_value = self.clusters.list() self.mock_cluster_delete.return_value = None form_data = {'action': 'clusters__delete__%s' % cluster.id} res = self.client.post(INDEX_URL, form_data) self.mock_cluster_list.assert_called_once_with(IsHttpRequest(), {}) self.mock_cluster_delete.assert_called_once_with( IsHttpRequest(), cluster.id) self.assertNoFormErrors(res) self.assertRedirectsNoFollow(res, INDEX_URL) self.assertMessageCount(success=1)
def test_delete(self): job_exec = self.job_executions.first() self.mock_job_execution_list.return_value = self.job_executions.list() self.mock_job_execution_delete.return_value = None form_data = {'action': 'jobs__delete__%s' % job_exec.id} res = self.client.post(INDEX_URL, form_data) self.mock_job_execution_list.assert_called_once_with( IsHttpRequest(), {}) self.mock_job_execution_delete.assert_called_once_with( IsHttpRequest(), job_exec.id) self.assertNoFormErrors(res) self.assertRedirectsNoFollow(res, INDEX_URL) self.assertMessageCount(success=1)
def test_index(self): self.mock_plugin_list.return_value = self.plugins.list() res = self.client.get(INDEX_URL) self.mock_plugin_list.assert_called_once_with(IsHttpRequest()) self.assertTemplateUsed(res, 'data_plugins/plugins.html') self.assertContains(res, 'vanilla') self.assertContains(res, 'plugin')
def test_index(self): self.mock_cluster_list.return_value = self.clusters.list() res = self.client.get(INDEX_URL) self.mock_cluster_list.assert_called_once_with(IsHttpRequest(), {}) self.assertTemplateUsed(res, 'clusters/index.html') self.assertContains(res, 'Clusters') self.assertContains(res, 'Name')
def test_index(self): self.mock_image_list.return_value = self.images.list() res = self.client.get(INDEX_URL) self.mock_image_list.assert_called_once_with(IsHttpRequest()) self.assertTemplateUsed(res, 'clusters/index.html') self.assertContains(res, 'Image Registry') self.assertContains(res, 'Image') self.assertContains(res, 'Tags')
def test_register(self): image = self.images.first() image_id = image.id test_username = '******' test_description = 'mydescription' self.mock_image_get.return_value = image self.mock_image_list_detailed.return_value = (self.images.list(), False, False) self.mock_image_update.return_value = True self.mock_image_tags_update.return_value = True self.mock_image_list.return_value = [] res = self.client.post( REGISTER_URL, { 'image_id': image_id, 'user_name': test_username, 'description': test_description, 'tags_list': '{}' }) self.mock_image_list_detailed.assert_called_once_with(IsHttpRequest(), filters={ 'owner': self.user.id, 'status': 'active' }) self.mock_image_update.assert_called_once_with(IsHttpRequest(), image_id, test_username, test_description) self.mock_image_tags_update.assert_called_once_with( IsHttpRequest(), image_id, {}) self.mock_image_list.assert_called_once_with(IsHttpRequest()) self.assertNoFormErrors(res) self.assertRedirectsNoFollow(res, SUCCESS_URL) self.assertMessageCount(success=1)
def test_index(self): self.mock_job_execution_list.return_value = \ self.job_executions.list() res = self.client.get(INDEX_URL) self.mock_job_execution_list.assert_called_once_with( IsHttpRequest(), {}) self.assertEqual("cluster-1", (res.context_data["tab_group"]._tabs["jobs_tab"]. _tables["jobs"].data[0].cluster_name)) self.assertEqual("job-1", (res.context_data["tab_group"]._tabs["jobs_tab"]. _tables["jobs"].data[0].job_name)) self.assertTemplateUsed(res, 'jobs/index.html') self.assertContains(res, 'Jobs')
def test_health_checks_tab_sc1(self): cluster = self.clusters.list()[-1] self.mock_cluster_get.return_value = cluster url = reverse('horizon:project:data_processing.clusters:verifications', args=["cl2"]) res = self.client.get(url) data = jsonutils.loads(res.content) self.mock_cluster_get.assert_called_once_with(IsHttpRequest(), "cl2") self.assertFalse(data['need_update']) check0 = data['checks'][0] check1 = data['checks'][1] self.assertEqual('success', check0['label']) self.assertEqual('danger', check1['label']) self.assertEqual('GREEN', check0['status']) self.assertEqual('RED', check1['status']) self.assertEqual('0:07:40', check0['duration'])
def test_health_checks_tab_sc2(self): cluster = self.clusters.list()[0] cl1_id = 'ec9a0d28-5cfb-4028-a0b5-40afe23f1533' self.mock_cluster_get.return_value = cluster url = reverse('horizon:project:data_processing.clusters:verifications', args=[cl1_id]) res = self.client.get(url) data = jsonutils.loads(res.content) self.mock_cluster_get.assert_called_once_with(IsHttpRequest(), cl1_id) self.assertTrue(data['need_update']) check0 = data['checks'][0] check1 = data['checks'][1] self.assertEqual('info', check0['label']) self.assertEqual('danger', check1['label']) self.assertEqual('CHECKING', check0['status']) self.assertEqual('RED', check1['status']) self.assertEqual('Houston, we have a problem', check1['description'])
def test_event_log_tab(self): cluster = self.clusters.list()[-1] self.mock_cluster_get.return_value = cluster url = reverse('horizon:project:data_processing.clusters:events', args=["cl2"]) res = self.client.get(url) data = jsonutils.loads(res.content) self.mock_cluster_get.assert_called_once_with(IsHttpRequest(), "cl2", show_progress=True) self.assertIn("provision_steps", data) self.assertEqual(data["need_update"], False) step_0 = data["provision_steps"][0] self.assertEqual(2, step_0["completed"]) self.assertEqual(2, len(step_0["events"])) for evt in step_0["events"]: self.assertEqual(True, evt["successful"]) step_1 = data["provision_steps"][1] self.assertEqual(3, step_1["completed"]) self.assertEqual(0, len(step_1["events"]))