Spaces:
Configuration error
Configuration error
Updated tests to reflect new job call loading logic
Browse files- tests/test_gradio.py +48 -4
tests/test_gradio.py
CHANGED
|
@@ -10,8 +10,11 @@ from functions import gradio
|
|
| 10 |
class TestProcessInputs(unittest.TestCase):
|
| 11 |
"""Test cases for the process_inputs function."""
|
| 12 |
|
| 13 |
-
|
| 14 |
-
|
|
|
|
|
|
|
|
|
|
| 15 |
|
| 16 |
with patch('functions.gradio.get_github_repositories') as mock_github:
|
| 17 |
mock_github.return_value = {"status": "success", "metadata": {"username": "gperdrizet"}}
|
|
@@ -25,6 +28,25 @@ class TestProcessInputs(unittest.TestCase):
|
|
| 25 |
self.assertIn("ℹ️ No additional instructions provided", result)
|
| 26 |
self.assertIn("❌ Cannot generate resume: No valid LinkedIn data extracted", result)
|
| 27 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 28 |
def test_all_inputs_provided_success(self):
|
| 29 |
"""Test when all inputs are provided and successful."""
|
| 30 |
|
|
@@ -151,8 +173,11 @@ class TestProcessInputs(unittest.TestCase):
|
|
| 151 |
# Verify write_resume was NOT called since no LinkedIn data
|
| 152 |
mock_write_resume.assert_not_called()
|
| 153 |
|
| 154 |
-
|
| 155 |
-
|
|
|
|
|
|
|
|
|
|
| 156 |
|
| 157 |
with patch('functions.gradio.get_github_repositories') as mock_github:
|
| 158 |
mock_github.return_value = {"status": "success", "metadata": {"username": "gperdrizet"}}
|
|
@@ -166,6 +191,25 @@ class TestProcessInputs(unittest.TestCase):
|
|
| 166 |
self.assertIn("ℹ️ No additional instructions provided", result)
|
| 167 |
self.assertIn("❌ Cannot generate resume: No valid LinkedIn data extracted", result)
|
| 168 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 169 |
@patch('functions.gradio.write_resume')
|
| 170 |
@patch('functions.gradio.summarize_job_call')
|
| 171 |
def test_job_post_with_content(self, mock_summarize, mock_write_resume):
|
|
|
|
| 10 |
class TestProcessInputs(unittest.TestCase):
|
| 11 |
"""Test cases for the process_inputs function."""
|
| 12 |
|
| 13 |
+
@patch('functions.gradio.load_default_job_call')
|
| 14 |
+
def test_no_inputs_provided(self, mock_load_default):
|
| 15 |
+
"""Test when no inputs are provided and default job is available."""
|
| 16 |
+
# Mock default job call loading to return content
|
| 17 |
+
mock_load_default.return_value = "Default job content from sample_job.txt"
|
| 18 |
|
| 19 |
with patch('functions.gradio.get_github_repositories') as mock_github:
|
| 20 |
mock_github.return_value = {"status": "success", "metadata": {"username": "gperdrizet"}}
|
|
|
|
| 28 |
self.assertIn("ℹ️ No additional instructions provided", result)
|
| 29 |
self.assertIn("❌ Cannot generate resume: No valid LinkedIn data extracted", result)
|
| 30 |
|
| 31 |
+
@patch('functions.gradio.load_default_job_call')
|
| 32 |
+
def test_no_inputs_no_default_job(self, mock_load_default):
|
| 33 |
+
"""Test when no inputs are provided and no default job is available."""
|
| 34 |
+
# Mock default job call loading to return None (no default available)
|
| 35 |
+
mock_load_default.return_value = None
|
| 36 |
+
|
| 37 |
+
with patch('functions.gradio.get_github_repositories') as mock_github:
|
| 38 |
+
mock_github.return_value = {"status": "success", "metadata": {"username": "gperdrizet"}}
|
| 39 |
+
|
| 40 |
+
result = gradio.process_inputs(None, "", "", "")
|
| 41 |
+
|
| 42 |
+
self.assertIn("❌ No LinkedIn resume PDF file uploaded", result)
|
| 43 |
+
self.assertIn("✅ Using default GitHub Profile URL", result)
|
| 44 |
+
self.assertIn("ℹ️ No job post provided, attempting to use default", result)
|
| 45 |
+
self.assertIn("ℹ️ No default job post available, proceeding without job post", result)
|
| 46 |
+
self.assertIn("ℹ️ Proceeding without job post analysis", result)
|
| 47 |
+
self.assertIn("ℹ️ No additional instructions provided", result)
|
| 48 |
+
self.assertIn("❌ Cannot generate resume: No valid LinkedIn data extracted", result)
|
| 49 |
+
|
| 50 |
def test_all_inputs_provided_success(self):
|
| 51 |
"""Test when all inputs are provided and successful."""
|
| 52 |
|
|
|
|
| 173 |
# Verify write_resume was NOT called since no LinkedIn data
|
| 174 |
mock_write_resume.assert_not_called()
|
| 175 |
|
| 176 |
+
@patch('functions.gradio.load_default_job_call')
|
| 177 |
+
def test_whitespace_only_inputs(self, mock_load_default):
|
| 178 |
+
"""Test inputs with only whitespace and default job available."""
|
| 179 |
+
# Mock default job call loading to return content
|
| 180 |
+
mock_load_default.return_value = "Default job content from sample_job.txt"
|
| 181 |
|
| 182 |
with patch('functions.gradio.get_github_repositories') as mock_github:
|
| 183 |
mock_github.return_value = {"status": "success", "metadata": {"username": "gperdrizet"}}
|
|
|
|
| 191 |
self.assertIn("ℹ️ No additional instructions provided", result)
|
| 192 |
self.assertIn("❌ Cannot generate resume: No valid LinkedIn data extracted", result)
|
| 193 |
|
| 194 |
+
@patch('functions.gradio.load_default_job_call')
|
| 195 |
+
def test_whitespace_only_inputs_no_default(self, mock_load_default):
|
| 196 |
+
"""Test inputs with only whitespace and no default job available."""
|
| 197 |
+
# Mock default job call loading to return None
|
| 198 |
+
mock_load_default.return_value = None
|
| 199 |
+
|
| 200 |
+
with patch('functions.gradio.get_github_repositories') as mock_github:
|
| 201 |
+
mock_github.return_value = {"status": "success", "metadata": {"username": "gperdrizet"}}
|
| 202 |
+
|
| 203 |
+
result = gradio.process_inputs(None, " ", " ", " ")
|
| 204 |
+
|
| 205 |
+
self.assertIn("❌ No LinkedIn resume PDF file uploaded", result)
|
| 206 |
+
self.assertIn("✅ Using default GitHub Profile URL", result)
|
| 207 |
+
self.assertIn("ℹ️ No job post provided, attempting to use default", result)
|
| 208 |
+
self.assertIn("ℹ️ No default job post available, proceeding without job post", result)
|
| 209 |
+
self.assertIn("ℹ️ Proceeding without job post analysis", result)
|
| 210 |
+
self.assertIn("ℹ️ No additional instructions provided", result)
|
| 211 |
+
self.assertIn("❌ Cannot generate resume: No valid LinkedIn data extracted", result)
|
| 212 |
+
|
| 213 |
@patch('functions.gradio.write_resume')
|
| 214 |
@patch('functions.gradio.summarize_job_call')
|
| 215 |
def test_job_post_with_content(self, mock_summarize, mock_write_resume):
|