From 42db66fd623263216ab7c27b4ad7f7ebc0d3d8fe Mon Sep 17 00:00:00 2001 From: KKGanguly Date: Tue, 26 Nov 2024 23:40:57 -0500 Subject: [PATCH 1/3] added gemini query test --- tests/test_gemini_query.py | 45 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 tests/test_gemini_query.py diff --git a/tests/test_gemini_query.py b/tests/test_gemini_query.py new file mode 100644 index 0000000..7f2c9d9 --- /dev/null +++ b/tests/test_gemini_query.py @@ -0,0 +1,45 @@ +import unittest +from unittest.mock import patch, MagicMock +import os +from app.routes import query_gemini_model + + +class TestQueryGeminiModel(unittest.TestCase): + + @patch('app.routes.query_gemini') # Mock get_gemini_feedback + @patch('app.routes.dict_to_csv') # Mock dict_to_csv + @patch('app.routes.get_all_jobs') # Mock get_all_jobs + def test_query_gemini_model_success(self, mock_get_all_jobs, mock_dict_to_csv, mock_get_gemini_feedback): + """ + Test query_gemini_model when the response is successfully fetched from Gemini. + """ + # Arrange + mock_get_all_jobs.return_value = [{'id': 1, 'title': 'Job 1'}, {'id': 2, 'title': 'Job 2'}] + mock_get_gemini_feedback.return_value = "This is the Gemini response." + + # Act + result = query_gemini_model("Test user message") + + # Assert + mock_get_all_jobs.assert_called_once() # Ensure get_all_jobs was called + mock_dict_to_csv.assert_called_once() # Ensure dict_to_csv was called + mock_get_gemini_feedback.assert_called_once_with(os.path.join("tmp", "reviews", "tmp_review.txt"), "Test user message") + + @patch('app.routes.query_gemini') # Mock get_gemini_feedback + @patch('app.routes.dict_to_csv') # Mock dict_to_csv + @patch('app.routes.get_all_jobs') # Mock get_all_jobs + def test_query_gemini_model_no_response(self, mock_get_all_jobs, mock_dict_to_csv, mock_get_gemini_feedback): + """ + Test query_gemini_model when the response from Gemini is None. + """ + # Arrange + mock_get_all_jobs.return_value = [{'id': 1, 'title': 'Job 1'}, {'id': 2, 'title': 'Job 2'}] + mock_get_gemini_feedback.return_value = None + + # Act + result = query_gemini_model("Test user message") + + # Assert + mock_get_all_jobs.assert_called_once() # Ensure get_all_jobs was called + mock_dict_to_csv.assert_called_once() # Ensure dict_to_csv was called + mock_get_gemini_feedback.assert_called_once_with(os.path.join("tmp", "reviews", "tmp_review.txt"), "Test user message") From c039bda3e731b5801dc7ff71c3fa23aceecceae8 Mon Sep 17 00:00:00 2001 From: Kishan Kumar Ganguly Date: Tue, 26 Nov 2024 23:43:43 -0500 Subject: [PATCH 2/3] Update routes.py --- app/routes.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/app/routes.py b/app/routes.py index 229b7f3..15ae277 100644 --- a/app/routes.py +++ b/app/routes.py @@ -822,11 +822,14 @@ def query_gemini_model(user_message): job_reviews = get_all_jobs() dict_to_csv(job_reviews, tmp_csv_file_for_gemini) - response_text = get_gemini_feedback(tmp_csv_file_for_gemini, user_message) + response_text = query_gemini(tmp_csv_file_for_gemini, user_message) if response_text is None: return "Error: Couldn't fetch response from Gemini." else: return response_text + +def query_gemini(tmp_csv_file_for_gemini, user_message): + return get_gemini_feedback(tmp_csv_file_for_gemini, user_message) # Function to chunk large review texts def chunk_text(text, chunk_size=1500): From b7b8a00f696797d86684d8aa45482275cfab1ffa Mon Sep 17 00:00:00 2001 From: Kishan Kumar Ganguly Date: Tue, 26 Nov 2024 23:57:16 -0500 Subject: [PATCH 3/3] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index d1b47e8..64a2add 100644 --- a/README.md +++ b/README.md @@ -28,7 +28,7 @@ New Badges ![GitHub closed issues](https://img.shields.io/github/issues-closed-raw/TeamBenign/PackReview_v4?style=plastic) - +[![Manual Build](https://img.shields.io/github/actions/workflow/status/TeamBenign/PackReview_v4/codecov.yml)](https://github.com/TeamBenign/PackReview_v4/actions) ![GitHub code size in bytes](https://img.shields.io/github/languages/code-size/TeamBenign/PackReview_v4) ## Pre-requisites