diff --git a/CHANGELOG.md b/CHANGELOG.md index 982869b7..6a5cc038 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,11 @@ # Change Log +## Release (Patch) 1.2.3 (10/4/23) + +### Bug Fix + +- Job outputs that were not dictionaries, bool, or str were swallowed by the serverless worker. This has been fixed. + ## Release 1.2.2 (10/4/23) ### Added diff --git a/runpod/serverless/modules/rp_job.py b/runpod/serverless/modules/rp_job.py index 3b12452a..4bf7b55c 100644 --- a/runpod/serverless/modules/rp_job.py +++ b/runpod/serverless/modules/rp_job.py @@ -129,9 +129,11 @@ async def run_job(handler: Callable, job: Dict[str, Any]) -> Dict[str, Any]: elif isinstance(job_output, bool): run_result = {"output": job_output} - elif isinstance(job_output, str): + else: run_result = {"output": job_output} + + if run_result.get("output") == {}: run_result.pop("output") diff --git a/tests/test_serverless/test_modules/test_job.py b/tests/test_serverless/test_modules/test_job.py index 1eaa0611..5674a3cc 100644 --- a/tests/test_serverless/test_modules/test_job.py +++ b/tests/test_serverless/test_modules/test_job.py @@ -177,12 +177,19 @@ async def test_simple_job(self): Tests the run_job function ''' mock_handler = Mock() - mock_handler.return_value = "test" + mock_handler.return_value = "test" job_result = await rp_job.run_job(mock_handler, self.sample_job) - assert job_result == {"output": "test"} + mock_handler.return_value = ['test1', 'test2'] + job_result_list = await rp_job.run_job(mock_handler, self.sample_job) + assert job_result_list == {"output":["test1", "test2"]} + + mock_handler.return_value = 123 + job_result_int = await rp_job.run_job(mock_handler, self.sample_job) + assert job_result_int == {"output": 123} + async def test_job_with_errors(self): ''' Tests the run_job function with errors