Пример #1
0
    def test_JobStatusPortletService(self):
        config = dict()
        config['env'] = "test_env"
        job = {
            "job_description":
            "job_description",
            'view_name':
            "view_name",
            'job_repository':
            "tre-jenkins",
            'job_config_list': [{
                'job_name': "job_name",
                'job_repository': "tre-jenkins",
            }]
        }
        config["job"] = job
        jobStatusPortlet = Portlet(
            serviceClass=
            "env_health_dashboard.portlet_services.JobStatusPortletService")
        envPortlet = PortletAssignment(portlet=jobStatusPortlet, config=config)
        service = portlet_services.JobStatusPortletService(envPortlet)

        service.alexandria_services = MagicMock()
        service.alexandria_services.get_job_status = MagicMock(
            return_value="SUCCESS")
        service.execute()

        self.assertEqual(service.job['link'],
                         SFLY_TRE_JENKINS + "/view/view_name")
        self.assertEqual(service.status_dict['description'], "job_description")
        self.assertEqual(service.status_dict['status'].status['description'],
                         "All OK")

        job = {
            "job_description":
            "job_description",
            'job_name':
            "job_name",
            'job_repository':
            "tre-jenkins",
            'job_config_list': [{
                'job_name': "job_name",
                'job_repository': "tre-jenkins",
            }]
        }
        config["job"] = job
        jobStatusPortlet = Portlet(
            serviceClass=
            "env_health_dashboard.portlet_services.JobStatusPortletService")
        envPortlet = PortletAssignment(portlet=jobStatusPortlet, config=config)
        service = portlet_services.JobStatusPortletService(envPortlet)

        service.alexandria_services = MagicMock()
        service.alexandria_services.get_job_status = MagicMock(
            return_value="SUCCESS")
        service.execute()

        self.assertEqual(service.job['link'],
                         SFLY_TRE_JENKINS + "/job/job_name")
Пример #2
0
    def test_QueueStatusPortletService(self):
        config = dict()
        config['env'] = "test_env"
        config['job_name'] = 'queue_job_name'
        config['job_repository'] = 'tre-jenkins'
        queueStatusPortlet = Portlet(
            serviceClass=
            "env_health_dashboard.portlet_services.QueueStatusPortletService")
        envPortlet = PortletAssignment(portlet=queueStatusPortlet,
                                       config=config)
        service = portlet_services.QueueStatusPortletService(envPortlet)

        service.alexandria_services = MagicMock()
        service.alexandria_services.get_job_status = MagicMock(
            return_value="SUCCESS")
        service.execute()

        self.assertEqual(service.link,
                         SFLY_TRE_JENKINS + "/job/queue_job_name")
        self.assertEqual(service.queue_status.status['description'],
                         "Test Job Queue: Enabled")

        service.alexandria_services.get_job_status = MagicMock(
            return_value="FAILED")
        service.execute()

        self.assertEqual(service.queue_status.status['description'],
                         "Test Job Queue: Disabled")
Пример #3
0
    def test_LastDeployTimePortletService(self):
        config = dict()
        config["server"] = "{SFLY_CHINA_JENKINS}"
        config["jobname"] = "Test Job"
        nextDeployTimePortlet = Portlet(
            serviceClass=
            "env_health_dashboard.portlet_services.NextDeployTimePortletService"
        )
        envPortlet = PortletAssignment(title="Next scheduled deployment",
                                       portlet=nextDeployTimePortlet,
                                       config=config)
        service = portlet_services.LastDeployTimePortletService(envPortlet)
        date_object_utc = datetime.strptime("2014/03/19 22:27:46",
                                            "%Y/%m/%d %H:%M:%S")
        utc_object = date_object_utc.replace(tzinfo=tz.tzutc())

        mocked_jenkins = MagicMock()
        portlet_services._get_jenkins = MagicMock(return_value=mocked_jenkins)
        mocked_jenkins.get_last_build_timestamp = MagicMock(
            return_value=utc_object)
        service.execute()

        portlet_services._get_jenkins.assert_called_with(SFLY_CHINA_JENKINS)
        mocked_jenkins.get_last_build_timestamp.assert_called_with('Test Job')
        self.assertEqual(service.textContent, "2014/03/19 15:27 (PDT)")
Пример #4
0
 def test_multiprocess(self):
     delayPortlet = Portlet(
         serviceClass=
         "env_health_dashboard.portlet_services.DelayPortletService")
     envPortlet = [
         PortletAssignment(title="Delay Portlet One",
                           portlet=delayPortlet,
                           config=0),
         PortletAssignment(title="Delay Portlet Two",
                           portlet=delayPortlet,
                           config=1)
     ]
     services = views.initialize_services(envPortlet)
     self.assertEqual(services[0].title, "Delay Portlet One")
     self.assertEqual(services[1].title, "Delay Portlet Two")
     self.assertEqual(services[0].error, "")
     self.assertEqual(services[1].error, "")
Пример #5
0
 def test_multiprocess_with_timeout_error(self):
     delayPortlet = Portlet(
         serviceClass=
         "env_health_dashboard.portlet_services.DelayPortletService")
     envPortlet = [
         PortletAssignment(title="Delay Portlet One",
                           portlet=delayPortlet,
                           config=0),
         PortletAssignment(title="Delay Portlet With Error",
                           portlet=delayPortlet,
                           config=6)
     ]
     services = views.initialize_services(envPortlet)
     self.assertEqual(services[0].title, "Delay Portlet One")
     self.assertEqual(services[1].title, "Delay Portlet With Error")
     self.assertEqual(services[0].error, "")
     errorPosition = services[1].error.find("An exception has occurred:")
     self.assertNotEquals(-1, errorPosition)
Пример #6
0
    def test_ChangelistPortletService_With_Different_Version(self):
        config = dict()
        config['env'] = "foxtrot"
        changelistStatusPortlet = Portlet(
            serviceClass=
            "env_health_dashboard.portlet_services.ChangelistPortletService")
        envPortlet = PortletAssignment(portlet=changelistStatusPortlet,
                                       config=config)
        service = portlet_services.ChangelistPortletService(envPortlet)

        test_env_list = {
            "pool_1": [
                {
                    "host": "host_1_of_pool_1.com"
                },
                {
                    "host": "host_2_of_pool_1.com"
                },
            ],
            "pool_2": [
                {
                    "host": "host_1_of_pool_2.com"
                },
                {
                    "host": "host_2_of_pool_2.com"
                },
            ]
        }
        service.ackbar_service = MagicMock()
        service.ackbar_service.get_server_list_from_env = MagicMock(
            return_value=test_env_list)
        server_version = {"key_1": "host1, host2", "key_2": "host3"}
        mocked_version_service = VersionService(test_env_list)
        mocked_version_service._get_server_version = MagicMock(
            return_value=server_version)
        service._get_version_service = MagicMock(
            return_value=mocked_version_service)
        service.execute()

        self.assertEqual(len(service.pool_server_version_dict), 2)
        self.assertEqual(service.pool_server_version_dict["key_1"], {
            'pools': '',
            'hosts': ' host1, host1'
        })
        self.assertEqual(service.pool_server_version_dict["key_2"], {
            'pools': '',
            'hosts': ' host3, host3'
        })
Пример #7
0
    def test_ChangelistPortletService_With_Unknown_Version(self):
        config = dict()
        config['env'] = "foxtrot"
        changelistStatusPortlet = Portlet(
            serviceClass=
            "env_health_dashboard.portlet_services.ChangelistPortletService")
        envPortlet = PortletAssignment(portlet=changelistStatusPortlet,
                                       config=config)
        service = portlet_services.ChangelistPortletService(envPortlet)

        test_env_list = {
            "pool_1": [
                {
                    "host": "host_1_of_pool_1.com"
                },
                {
                    "host": "host_2_of_pool_1.com"
                },
            ],
            "pool_2": [
                {
                    "host": "host_1_of_pool_2.com"
                },
                {
                    "host": "host_2_of_pool_2.com"
                },
            ]
        }
        service.ackbar_service = MagicMock()
        service.ackbar_service.get_server_list_from_env = MagicMock(
            return_value=test_env_list)
        mocked_version_service = VersionService(test_env_list)
        mocked_version_service._get_url_content = MagicMock(return_value="")
        service._get_version_service = MagicMock(
            return_value=mocked_version_service)
        service.execute()

        self.assertEqual(len(service.pool_server_version_dict), 1)
        self.assertEqual(service.pool_server_version_dict["unknown"], {
            'pools': ' pool_2, pool_1',
            'hosts': ''
        })
Пример #8
0
    def test_BrandPortletService(self):
        config = dict()
        config["brand"] = "sfly"
        config["jobs"] = "jobs"
        brandPortlet = Portlet(
            serviceClass=
            "env_health_dashboard.portlet_services.brandPortletService")
        envPortlet = PortletAssignment(portlet=brandPortlet, config=config)
        service = portlet_services.BrandPortletService(envPortlet)

        env_list_config = [
            {
                'job_name': "job1_name",
                'job_repository': "job1_repository",
            },
            {
                'job_name': "job2_name",
                'job_repository': "job2_repository",
            },
        ]
        queue_config = {
            'job_name': "job_queue_name",
            'job_repository': "job_queue_repository",
        }
        service._get_env_status_config_list_from_env = MagicMock(
            return_value=env_list_config)
        service._get_job_status_config_list_from_env = MagicMock(
            return_value=env_list_config)
        service._get_queue_status_config_list_from_env = MagicMock(
            return_value=queue_config)
        service.alexandria_services = MagicMock()
        service.alexandria_services.get_job_status = MagicMock(
            return_value="SUCCESS")
        service.execute()

        env_check_list = service.env_check_list
        self.assertEqual(len(env_check_list), 5)
        for each_check in env_check_list:
            self.assertEqual(each_check['env_status'].status['description'],
                             "All OK")
            self.assertEqual(each_check['job_status'].status['description'],
                             "All OK")
            self.assertEqual(each_check['web_sanity'].status['description'],
                             "All OK")
            self.assertEqual(
                each_check['test_job_queue'].status['description'],
                "Test Job Queue: Enabled")

        service.alexandria_services.get_job_status = MagicMock(
            side_effect=Exception('Exception!'))
        service.execute()
        env_check_list = service.env_check_list
        self.assertEqual(len(env_check_list), 5)
        for each_check in env_check_list:
            self.assertEqual(each_check['env_status'].status['description'],
                             'Failed to get status')
            self.assertEqual(each_check['job_status'].status['description'],
                             'Failed to get status')
            self.assertEqual(each_check['web_sanity'].status['description'],
                             'Failed to get status')
            self.assertEqual(
                each_check['test_job_queue'].status['description'],
                'Test Job Queue: Non-supported feature')
Пример #9
0
    def test_EnvStatusPortletService(self):
        config = dict()
        config['env'] = "test_env"
        job = {
            "job_description":
            "job_description",
            'view_name':
            "view_name",
            'job_repository':
            "tre-jenkins",
            'job_config_list': [
                {
                    'job_name': 'Env_Health_Check-Test',
                    'job_repository': "tre-jenkins",
                },
                {
                    'job_name': 'Env_Availability_Check-Test',
                    'job_repository': "tre-jenkins",
                },
            ]
        }
        config["job"] = job
        envStatusPortlet = Portlet(
            serviceClass=
            "env_health_dashboard.portlet_services.EnvStatusPortletService")
        envPortlet = PortletAssignment(portlet=envStatusPortlet, config=config)
        service = portlet_services.EnvStatusPortletService(envPortlet)

        service.alexandria_services = MagicMock()
        service.alexandria_services.get_job_status = MagicMock(
            return_value="SUCCESS")
        service.execute()

        self.assertEqual(service.env, "test_env")
        self.assertEqual(service.status_dict['description'], "job_description")
        self.assertEqual(service.status_dict['status'].status['description'],
                         "All OK")

        failure_test_result = \
            [
                {
                    "url": "http://job_repository/job/jobname/jobnumber/testReport/healthchecks.testify/AdminServerTest/test_name",
                    "job_repository": "job_repository",
                    "test_name": "env--pool--server--test_name",
                    "class_name": "class_name",
                    "module_name": "module_name",
                    "error_message": "error_msg",
                    "job_name": "Env_Availability_Check-Test",
                    "last_build_number": "build_number"
                }
            ]
        service.alexandria_services.get_job_status = MagicMock(
            return_value="FAILED")
        service.alexandria_services.get_last_job_test_result_failures = MagicMock(
            return_value=failure_test_result)
        service.execute()

        self.assertEqual(service.env, "test_env")
        self.assertEqual(len(service.status_dict['failure_job_list']), 2)
        self.assertEqual(
            len(service.status_dict['env_status_failure_job_list']), 2)
        self.assertEqual(service.status_dict['status'].status['description'],
                         "Critical failures detected; testing may be impeded")
        failure_job = service.status_dict['env_status_failure_job_list'][0]
        failure_test_list = failure_job['env_status_failure_test_list']
        self.assertEqual(failure_job['link'],
                         SFLY_TRE_JENKINS + "/job/Env_Health_Check-Test")
        self.assertEqual(failure_test_list[0]['test_result_description'],
                         "pool-server")
        self.assertEqual(
            failure_test_list[0]['test_result_level_url'],
            "http://job_repository/job/jobname/jobnumber/testReport/healthchecks.testify/AdminServerTest/"
        )