コード例 #1
0
 def a_pipeline():
     pass_solid.with_hooks(hook_defs={pagerduty_on_failure("info")})()
     pass_solid.alias("solid_with_hook").with_hooks(
         hook_defs={pagerduty_on_failure("info")})()
     fail_solid.alias("fail_solid_without_hook")()
     fail_solid.with_hooks(hook_defs={
         pagerduty_on_failure(severity="info", summary_fn=my_summary_fn)
     })()
コード例 #2
0
ファイル: test_hooks.py プロジェクト: keyz/dagster
 def a_job():
     pass_op.with_hooks(hook_defs={pagerduty_on_failure("info")})()
     pass_op.alias("op_with_hook").with_hooks(
         hook_defs={pagerduty_on_failure("info")})()
     fail_op.alias("fail_op_without_hook")()
     fail_op.with_hooks(hook_defs={
         pagerduty_on_failure(severity="info", summary_fn=my_summary_fn)
     })()
コード例 #3
0
ファイル: test_hooks.py プロジェクト: keyz/dagster
def test_failure_hook_decorator():
    @op
    def pass_op(_):
        pass

    @op
    def fail_op(_):
        raise SomeUserException()

    @job(
        resource_defs={"pagerduty": pagerduty_resource},
        hooks={
            pagerduty_on_failure(severity="info",
                                 dagit_base_url="localhost:3000")
        },
    )
    def a_job():
        pass_op()
        fail_op()
        fail_op.alias("another_fail_op")()

    with responses.RequestsMock() as rsps:
        rsps.add(
            rsps.POST,
            "https://events.pagerduty.com/v2/enqueue/",
            status=202,
            json={
                "status": "success",
                "message": "Event processed"
            },
        )
        result = a_job.execute_in_process(
            run_config={
                "resources": {
                    "pagerduty": {
                        "config": {
                            "routing_key": "0123456789abcdef0123456789abcdef"
                        }
                    }
                }
            },
            raise_on_error=False,
        )
        assert not result.success
        assert len(rsps.calls) == 2