@@ -64,6 +64,11 @@ def parsed_module_lambda() -> _ModuleParseResult:
6464 return parse_module ("tests.fixtures.cluster.lambda" )
6565
6666
67+ @pytest .fixture (scope = "module" )
68+ def parsed_module_unnamed_lambda () -> _ModuleParseResult :
69+ return parse_module ("tests.fixtures.cluster.unnamed_lambda" )
70+
71+
6772@pytest .fixture
6873def module_test_cluster () -> ModuleTestCluster :
6974 return ModuleTestCluster (linenos = - 1 )
@@ -572,3 +577,27 @@ def test_analyse_module_lambda(parsed_module_lambda):
572577 assert lambda2 .function_name == "abc"
573578 lambda3 = cast ("GenericFunction" , objects [2 ])
574579 assert lambda3 .function_name == "salam_aleykum"
580+
581+
582+ def test_analyse_function_lambda_no_name ():
583+ """Test that __analyse_function returns early when no name for a lambda is found."""
584+ # Create a test cluster
585+ test_cluster = ModuleTestCluster (linenos = - 1 )
586+
587+ # Create a lambda function
588+ lambda_func = lambda x : x # noqa: E731
589+
590+ # Mock the _get_lambda_assigned_name function to return None
591+ with patch ("pynguin.analyses.module._get_lambda_assigned_name" , return_value = None ):
592+ # Call __analyse_function directly
593+ module .__analyse_function (
594+ func_name = "<lambda>" ,
595+ func = lambda_func ,
596+ type_inference_strategy = TypeInferenceStrategy .TYPE_HINTS ,
597+ module_tree = None ,
598+ test_cluster = test_cluster ,
599+ add_to_test = True ,
600+ )
601+
602+ # Verify that the lambda was not added to the test cluster
603+ assert test_cluster .num_accessible_objects_under_test () == 0
0 commit comments