Beispiel #1
0
def test_execute_isolated_solids_with_bad_solid_names():
    with pytest.raises(DagsterInvariantViolationError,
                       match='but that solid was not found'):
        execute_solids_within_pipeline(PipelineDefinition([]), [],
                                       {'foo': {
                                           'bar': 'baz'
                                       }})
Beispiel #2
0
def test_subset_with_mode_definitions():

    called = {"a": 0, "b": 0}

    @resource
    def resource_a():
        return 1

    @solid(required_resource_keys={"a"})
    def requires_a(context):
        called["a"] += 1
        assert context.resources.a == 1

    @resource
    def resource_b():
        return 2

    @solid(required_resource_keys={"b"})
    def requires_b(context):
        called["b"] += 1
        assert context.resources.b == 2

    pipeline_def = PipelineDefinition(
        name="subset_test",
        solid_defs=[requires_a, requires_b],
        mode_defs=[
            ModeDefinition(resource_defs={
                "a": resource_a,
                "b": resource_b
            })
        ],
    )

    assert execute_pipeline(pipeline_def).success is True

    assert called == {"a": 1, "b": 1}

    assert (execute_solids_within_pipeline(
        pipeline_def, solid_names={"requires_a"})["requires_a"].success is
            True)

    assert called == {"a": 2, "b": 1}
Beispiel #3
0
def test_subset_with_mode_definitions():

    called = {'a': 0, 'b': 0}

    @resource
    def resource_a(_init_context):
        return 1

    @solid(required_resource_keys={'a'})
    def requires_a(context):
        called['a'] += 1
        assert context.resources.a == 1

    @resource
    def resource_b(_init_context):
        return 2

    @solid(required_resource_keys={'b'})
    def requires_b(context):
        called['b'] += 1
        assert context.resources.b == 2

    pipeline_def = PipelineDefinition(
        name='subset_test',
        solid_defs=[requires_a, requires_b],
        mode_defs=[
            ModeDefinition(resource_defs={
                'a': resource_a,
                'b': resource_b
            })
        ],
    )

    assert execute_pipeline(pipeline_def).success is True

    assert called == {'a': 1, 'b': 1}

    assert (execute_solids_within_pipeline(
        pipeline_def, solid_names=['requires_a'])['requires_a'].success is
            True)

    assert called == {'a': 2, 'b': 1}