From c63d402aa3dae2dbc2089ac730ecd73328cd33ce Mon Sep 17 00:00:00 2001 From: gabewillen Date: Mon, 25 Nov 2024 23:14:19 -0600 Subject: [PATCH 1/2] fixed and added a test case for Input validation "not working as expected #373" --- runpod/serverless/utils/rp_validator.py | 2 +- tests/test_serverless/test_utils/test_validate.py | 9 +++++++++ 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/runpod/serverless/utils/rp_validator.py b/runpod/serverless/utils/rp_validator.py index be9ad38a..ebb44c18 100644 --- a/runpod/serverless/utils/rp_validator.py +++ b/runpod/serverless/utils/rp_validator.py @@ -70,7 +70,7 @@ def _validate_input_against_schema(schema, validated_input, error_list): # Check for the correct type. is_instance = isinstance(validated_input[key], rules["type"]) - if validated_input[key] is not None and not is_instance: + if not is_instance: _add_error( error_list, f"{key} should be {rules['type']} type, not {type(validated_input[key])}.", diff --git a/tests/test_serverless/test_utils/test_validate.py b/tests/test_serverless/test_utils/test_validate.py index 65a10418..a1f2eea1 100644 --- a/tests/test_serverless/test_utils/test_validate.py +++ b/tests/test_serverless/test_utils/test_validate.py @@ -99,6 +99,15 @@ def test_validate_rules_not_dict(self): result = rp_validator.validate(self.raw_input, {"x": "not dict"}) self.assertIn("errors", result) + def test_validate_simple_input(self): + """ + Tests validate with simple input + """ + result = rp_validator.validate( + {"my_input": None}, {"my_input": {"type": str, "required": True}} + ) + self.assertIn("errors", result) + if __name__ == "__main__": unittest.main() From 4ded77dfaec922db0b4f14787f58b835f355f82f Mon Sep 17 00:00:00 2001 From: gabewillen Date: Mon, 25 Nov 2024 23:32:02 -0600 Subject: [PATCH 2/2] added an additional unit test for None --- tests/test_serverless/test_utils/test_validate.py | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/tests/test_serverless/test_utils/test_validate.py b/tests/test_serverless/test_utils/test_validate.py index a1f2eea1..60385130 100644 --- a/tests/test_serverless/test_utils/test_validate.py +++ b/tests/test_serverless/test_utils/test_validate.py @@ -108,6 +108,15 @@ def test_validate_simple_input(self): ) self.assertIn("errors", result) + def test_validate_none_type(self): + """ + Tests validate with None type + """ + result = rp_validator.validate( + {"my_input": None}, {"my_input": {"type": type(None), "required": True}} + ) + self.assertNotIn("errors", result) + if __name__ == "__main__": unittest.main()