Exemple #1
0
    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)
Exemple #2
0
 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")
Exemple #3
0
    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)
Exemple #4
0
    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)
Exemple #5
0
    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)
Exemple #6
0
 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')
Exemple #7
0
 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')
Exemple #8
0
    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')
Exemple #9
0
    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)
Exemple #10
0
    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')
Exemple #11
0
    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'])
Exemple #12
0
    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'])
Exemple #13
0
    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"]))