def test_optional_solid_with_optional_scalar_config(): def _assert_config_none(context, value): assert context.solid_config is value pipeline_def = PipelineDefinition( name='some_pipeline', solid_defs=[ SolidDefinition( name='int_config_solid', config_field=Field(Int, is_optional=True), input_defs=[], output_defs=[], compute_fn=lambda context, _inputs: _assert_config_none(context, 234), ) ], ) env_type = create_environment_type(pipeline_def) assert env_type.fields['solids'].is_optional is True solids_type = env_type.fields['solids'].config_type assert solids_type.fields['int_config_solid'].is_optional is True solids_default_obj = construct_solid_dictionary(throwing_evaluate_config_value(solids_type, {})) assert solids_default_obj['int_config_solid'].config is None env_obj = EnvironmentConfig.from_dict(throwing_evaluate_config_value(env_type, {})) assert env_obj.solids['int_config_solid'].config is None
def test_solid_dictionary_type(): pipeline_def = define_test_solids_config_pipeline() solid_dict_type = define_solid_dictionary_cls( 'foobar', pipeline_def.solids, pipeline_def.dependency_structure, pipeline_def.name).inst() value = construct_solid_dictionary( throwing_evaluate_config_value( solid_dict_type, { 'int_config_solid': { 'config': 1 }, 'string_config_solid': { 'config': 'bar' } }, )) assert set(['int_config_solid', 'string_config_solid']) == set(value.keys()) assert value == { 'int_config_solid': SolidConfig(1), 'string_config_solid': SolidConfig('bar') } assert solid_dict_type.type_attributes.is_system_config for specific_solid_config_field in solid_dict_type.fields.values(): specific_solid_config_type = specific_solid_config_field.config_type assert specific_solid_config_type.type_attributes.is_system_config user_config_field = specific_solid_config_field.config_type.fields[ 'config'] assert user_config_field.config_type.type_attributes.is_system_config is False
def test_solid_dictionary_some_no_config(): pipeline_def = PipelineDefinition( solid_defs=[ SolidDefinition( name='int_config_solid', config_field=Field(Int), input_defs=[], output_defs=[], compute_fn=lambda *args: None, ), SolidDefinition( name='no_config_solid', input_defs=[], output_defs=[], compute_fn=lambda *args: None ), ] ) solid_dict_type = define_solid_dictionary_cls( 'foobar', pipeline_def.solids, pipeline_def.dependency_structure, pipeline_def.name ).inst() value = construct_solid_dictionary( throwing_evaluate_config_value(solid_dict_type, {'int_config_solid': {'config': 1}}) ) assert set(['int_config_solid']) == set(value.keys()) assert value == {'int_config_solid': SolidConfig(1)}
def test_solid_dictionary_some_no_config(): @solid(name='int_config_solid', config_field=Field(Int), input_defs=[], output_defs=[]) def int_config_solid(_): return None @solid(name='no_config_solid', input_defs=[], output_defs=[]) def no_config_solid(_): return None @pipeline def pipeline_def(): int_config_solid() no_config_solid() solid_dict_type = define_solid_dictionary_cls( 'foobar', pipeline_def.solids, pipeline_def.dependency_structure, pipeline_def.name).inst() value = construct_solid_dictionary( throwing_evaluate_config_value(solid_dict_type, {'int_config_solid': { 'config': 1 }})) assert set(['int_config_solid']) == set(value.keys()) assert value == {'int_config_solid': SolidConfig(1)}