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()
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()