@@ -508,34 +508,37 @@ def test_base_config_does_not_override_when_value_in_environment(
508508 assert config .require_generic_test_arguments_property is None
509509
510510
511- def test_table_mutability_config_full_refresh_string_coercion (
512- profiles_file , dbt_project_file
511+ @pytest .mark .parametrize (
512+ "input_value,expected" ,
513+ [
514+ ("True" , True ),
515+ ("true" , True ),
516+ ("False" , False ),
517+ ("false" , False ),
518+ (True , True ),
519+ (False , False ),
520+ (None , None ),
521+ ],
522+ )
523+ def test_table_mutability_config_full_refresh_coercion (
524+ profiles_file , dbt_project_file , input_value , expected
513525):
514- """Test that full_refresh string values are coerced to booleans."""
526+ """Test that full_refresh values are coerced to booleans."""
515527 config = RunTaskConfig (
516528 profiles_dir = profiles_file .parent ,
517529 project_dir = dbt_project_file .parent ,
518- full_refresh = "True" ,
530+ full_refresh = input_value ,
519531 )
520- assert config .full_refresh is True
532+ assert config .full_refresh is expected
521533
522- config = RunTaskConfig (
523- profiles_dir = profiles_file .parent ,
524- project_dir = dbt_project_file .parent ,
525- full_refresh = "False" ,
526- )
527- assert config .full_refresh is False
528534
529- config = RunTaskConfig (
530- profiles_dir = profiles_file .parent ,
531- project_dir = dbt_project_file .parent ,
532- full_refresh = None ,
533- )
534- assert config .full_refresh is None
535-
536- config = RunTaskConfig (
537- profiles_dir = profiles_file .parent ,
538- project_dir = dbt_project_file .parent ,
539- full_refresh = True ,
540- )
541- assert config .full_refresh is True
535+ def test_table_mutability_config_full_refresh_invalid_string (
536+ profiles_file , dbt_project_file
537+ ):
538+ """Test that invalid full_refresh strings raise a ValueError."""
539+ with pytest .raises (ValueError , match = "Invalid value for full_refresh" ):
540+ RunTaskConfig (
541+ profiles_dir = profiles_file .parent ,
542+ project_dir = dbt_project_file .parent ,
543+ full_refresh = "treu" ,
544+ )
0 commit comments