Пример #1
0
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
Пример #2
0
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
Пример #3
0
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)}
Пример #4
0
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)}