def test_get_jobs_by_status_exceptions(self):
        """
        Tests getting a DatabaseError reading a job by status
        """
        mock_ssm_get_parameter(2)
        database.single_query = Mock(side_effect=[requests_db.BadRequestError(
            'A status must be provided')])
        status = None
        try:
            requests_db.get_jobs_by_status(status)
            self.fail("expected BadRequestError")
        except requests_db.BadRequestError as err:
            self.assertEqual('A status must be provided', str(err))

        status = "error"
        err_msg = 'Database Error. could not connect to server'
        database.single_query = Mock(side_effect=[DbError(
            err_msg)])
        os.environ["DATABASE_HOST"] = "unknown.cr.usgs.gov"
        try:
            requests_db.get_jobs_by_status(status)
            self.fail("expected DatabaseError")
        except requests_db.DatabaseError as err:
            database.single_query.assert_called_once()
            self.assertEqual(err_msg, str(err))
    def test_get_jobs_by_status_max_days(self):
        """
        Tests reading by status for limited days
        """
        exp_request_ids = [REQUEST_ID1, REQUEST_ID2, REQUEST_ID3]
        _, exp_result = create_select_requests(exp_request_ids)
        status = "noexist"
        mock_ssm_get_parameter(2)
        database.single_query = Mock(side_effect=[[], exp_result])
        result = requests_db.get_jobs_by_status(status)
        self.assertEqual([], result)
        database.single_query.assert_called_once()

        status = "complete"
        expected = result_to_json(exp_result)
        result = requests_db.get_jobs_by_status(status, 5)
        self.assertEqual(expected, result)
        database.single_query.assert_called()
示例#3
0
    def test_get_jobs_by_status_max_days(self):
        """
        Tests reading by status
        """
        self.create_test_requests()
        boto3.client = Mock()
        mock_ssm_get_parameter(2)
        status = "noexist"
        result = requests_db.get_jobs_by_status(status)
        self.assertEqual([], result)

        status = "complete"
        result = requests_db.get_jobs_by_status(status, 5)
        exp_ids = [REQUEST_ID3, REQUEST_ID2, REQUEST_ID1]
        idx = 0
        for job in result:
            self.assertEqual(exp_ids[idx], job["request_id"])
            idx = idx + 1
    def test_get_jobs_by_status(self):
        """
        Tests reading by status
        """
        exp_request_ids = [REQUEST_ID1, REQUEST_ID2, REQUEST_ID3]
        _, exp_result_2 = create_select_requests(exp_request_ids)
        status = "noexist"
        exp_result_1 = []
        mock_secretsmanager_get_parameter(2)
        database.single_query = Mock(side_effect=[exp_result_1, exp_result_2])
        result = requests_db.get_jobs_by_status(status)
        self.assertEqual(exp_result_1, result)
        database.single_query.assert_called_once()

        status = "complete"
        expected = result_to_json(exp_result_2)
        result = requests_db.get_jobs_by_status(status)
        self.assertEqual(expected, result)
        database.single_query.assert_called()