コード例 #1
0
def test_stepper_skip(fixture_isodate_now):  # pylint: disable=unused-argument
    stepper = Stepper(
        {
            "StepOK": StepOK,
            "StepError": StepError,
            "StepWithDetails": StepWithDetails,
            "StepWithCondition": StepWithCondition,
        }
    )
    shared_storage = {}
    stepper.add_step(StepOK("1", (), {}, shared_storage))
    stepper.add_step(
        StepWithCondition("1", (), {"condition_step_name": "StepOK:1"}, shared_storage)
    )
    stepper.run()
    stepper_dump1 = stepper.dump()
    expected_output1 = {
        "steps": [
            {
                "name": "StepOK",
                "step_args": [],
                "step_kwargs": {},
                "uid": "1",
                "details": {},
                "stats": {
                    "started": "isodate_now_1",
                    "finished": "isodate_now_2",
                    "skip": False,
                    "skip_reason": "",
                    "skipped": False,
                    "state": "finished",
                },
                "results": {
                    "results": {"value": "result-of-useless-step"},
                    "errors": {},
                },
            },
            {
                "name": "StepWithCondition",
                "step_args": [],
                "step_kwargs": {"condition_step_name": "StepOK:1"},
                "uid": "1",
                "details": {},
                "stats": {
                    "started": "isodate_now_3",
                    "finished": "isodate_now_4",
                    "skip": True,
                    "skip_reason": "",
                    "skipped": True,
                    "state": "finished",
                },
                "results": {"results": {}, "errors": {}},
            },
        ],
        "shared_results": {},
    }
    assert stepper_dump1 == expected_output1
コード例 #2
0
def test_stepper_on_error(fixture_isodate_now):  # pylint: disable=unused-argument
    stepper = Stepper(
        {"StepOK": StepOK, "StepError": StepError, "StepWithDetails": StepWithDetails}
    )
    shared_storage = {}
    stepper.add_step(StepOK("1", (), {}, shared_storage))
    stepper.add_step(StepError("1", (), {}, shared_storage))
    on_error_clbk = mock.MagicMock()
    with pytest.raises(ValueError):
        stepper.run(on_error=on_error_clbk)
    assert len(on_error_clbk.mock_calls) > 0
コード例 #3
0
def test_stepper_ok():
    stepper = Stepper(
        {"StepOK": StepOK, "StepError": StepError, "StepWithDetails": StepWithDetails}
    )
    shared_storage = {}
    stepper.add_step(StepOK("1", (), {}, shared_storage))
    stepper.add_step(StepOK("2", (), {}, shared_storage))
    stepper.run()
コード例 #4
0
def test_stepper_rerun(fixture_isodate_now):  # pylint: disable=unused-argument
    stepper = Stepper(
        {
            "StepOKCounter": StepOKCounter,
            "StepError": StepError,
            "StepError2": StepError2,
            "StepWithDetails": StepWithDetails,
        }
    )
    shared_storage = {}
    stepper.add_step(StepOKCounter("1", (), {}, shared_storage))
    stepper.add_step(StepError2("1", (2,), {}, shared_storage))
    stepper.add_step(StepWithDetails("1", ("item1", "item2"), {}, shared_storage))
    with pytest.raises(ValueError):
        stepper.run()
    stepper_dump1 = stepper.dump()
    stepper.run()
    stepper_dump2 = stepper.dump()
    expected_output1 = {
        "steps": [
            {
                "name": "StepOKCounter",
                "step_args": [],
                "step_kwargs": {},
                "uid": "1",
                "details": {"counter": 1},
                "stats": {
                    "started": "isodate_now_1",
                    "finished": "isodate_now_2",
                    "skip": False,
                    "skip_reason": "",
                    "skipped": False,
                    "state": "finished",
                },
                "results": {"results": {}, "errors": {}},
            },
            {
                "name": "StepError2",
                "step_args": [2],
                "step_kwargs": {},
                "uid": "1",
                "details": {"counter": 1},
                "stats": {
                    "started": "isodate_now_3",
                    "finished": "isodate_now_4",
                    "skip": False,
                    "skip_reason": "",
                    "skipped": False,
                    "state": "error",
                },
                "results": {"results": {}, "errors": {}},
            },
            {
                "name": "StepWithDetails",
                "step_args": ["item1", "item2"],
                "step_kwargs": {},
                "uid": "1",
                "details": {"items": ["ready", "ready"]},
                "stats": {
                    "started": None,
                    "finished": None,
                    "skip": False,
                    "skip_reason": "",
                    "skipped": None,
                    "state": "ready",
                },
                "results": {"results": {}, "errors": {}},
            },
        ],
        "shared_results": {},
    }
    assert stepper_dump1 == expected_output1
    expected_output2 = {
        "steps": [
            {
                "name": "StepOKCounter",
                "step_args": [],
                "step_kwargs": {},
                "uid": "1",
                "details": {"counter": 1},
                "stats": {
                    "started": None,
                    "finished": "isodate_now_5",
                    "skip": False,
                    "skip_reason": "",
                    "skipped": False,
                    "state": "finished",
                },
                "results": {"results": {}, "errors": {}},
            },
            {
                "name": "StepError2",
                "step_args": [2],
                "step_kwargs": {},
                "uid": "1",
                "details": {"counter": 2},
                "stats": {
                    "started": None,
                    "finished": "isodate_now_6",
                    "skip": False,
                    "skip_reason": "",
                    "skipped": False,
                    "state": "finished",
                },
                "results": {"results": {}, "errors": {}},
            },
            {
                "name": "StepWithDetails",
                "step_args": ["item1", "item2"],
                "step_kwargs": {},
                "uid": "1",
                "details": {"items": ["done", "done"]},
                "stats": {
                    "started": "isodate_now_7",
                    "finished": "isodate_now_8",
                    "skip": False,
                    "skip_reason": "",
                    "skipped": False,
                    "state": "finished",
                },
                "results": {"results": {}, "errors": {}},
            },
        ],
        "shared_results": {},
    }
    assert stepper_dump2 == expected_output2
コード例 #5
0
def test_stepper_load_started(fixture_isodate_now):  # pylint: disable=unused-argument
    stepper = Stepper(
        {"StepOK": StepOK, "StepError": StepError, "StepWithDetails": StepWithDetails}
    )
    shared_storage = {}
    stepper.add_step(StepOK("1", (), {}, shared_storage))
    stepper.add_step(StepWithDetails("1", ("item1", "item2"), {}, shared_storage))
    stepper.add_step(StepError("1", (), {}, shared_storage))
    with pytest.raises(ValueError):
        stepper.run()
    stepper_dump1 = stepper.dump()
    stepper2 = Stepper(
        {"StepOK": StepOK, "StepError": StepError, "StepWithDetails": StepWithDetails}
    )
    stepper2.load(stepper_dump1)
    stepper_dump2 = stepper2.dump()
    assert stepper_dump1 == stepper_dump2
コード例 #6
0
def test_stepper_with_details(fixture_isodate_now):  # pylint: disable=unused-argument
    stepper = Stepper(
        {"StepOK": StepOK, "StepError": StepError, "StepWithDetails": StepWithDetails}
    )
    shared_storage = {}
    stepper.add_step(StepOK("1", (), {}, shared_storage))
    stepper.add_step(StepWithDetails("1", ("item1", "item2"), {}, shared_storage))
    stepper_dump1 = stepper.dump()
    stepper.run()
    stepper_dump2 = stepper.dump()
    expected_output1 = {
        "steps": [
            {
                "name": "StepOK",
                "step_args": [],
                "step_kwargs": {},
                "uid": "1",
                "details": {},
                "stats": {
                    "started": None,
                    "finished": None,
                    "skip": False,
                    "skip_reason": "",
                    "skipped": None,
                    "state": "ready",
                },
                "results": {
                    "results": {"value": "result-of-useless-step"},
                    "errors": {},
                },
            },
            {
                "name": "StepWithDetails",
                "step_args": ["item1", "item2"],
                "step_kwargs": {},
                "uid": "1",
                "details": {"items": ["ready", "ready"]},
                "stats": {
                    "started": None,
                    "finished": None,
                    "skip": False,
                    "skip_reason": "",
                    "skipped": None,
                    "state": "ready",
                },
                "results": {"results": {}, "errors": {}},
            },
        ],
        "shared_results": {},
    }
    assert stepper_dump1 == expected_output1
    expected_output2 = {
        "steps": [
            {
                "name": "StepOK",
                "step_args": [],
                "step_kwargs": {},
                "uid": "1",
                "details": {},
                "stats": {
                    "started": "isodate_now_1",
                    "finished": "isodate_now_2",
                    "skip": False,
                    "skip_reason": "",
                    "skipped": False,
                    "state": "finished",
                },
                "results": {
                    "results": {"value": "result-of-useless-step"},
                    "errors": {},
                },
            },
            {
                "name": "StepWithDetails",
                "step_args": ["item1", "item2"],
                "step_kwargs": {},
                "uid": "1",
                "details": {"items": ["done", "done"]},
                "stats": {
                    "started": "isodate_now_3",
                    "finished": "isodate_now_4",
                    "skip": False,
                    "skip_reason": "",
                    "skipped": False,
                    "state": "finished",
                },
                "results": {"results": {}, "errors": {}},
            },
        ],
        "shared_results": {},
    }
    assert stepper_dump2 == expected_output2
コード例 #7
0
def test_stepper_ok_dump(fixture_isodate_now):  # pylint: disable=unused-argument
    stepper = Stepper(
        {"StepOK": StepOK, "StepError": StepError, "StepWithDetails": StepWithDetails}
    )
    shared_storage = {}
    stepper.add_step(StepOK("1", (Secret("password"),), {}, shared_storage))
    stepper.add_step(StepOK("2", ("foo param",), {}, shared_storage))
    stepper_dump1 = stepper.dump()
    stepper.run()
    stepper_dump2 = stepper.dump()
    expected_output1 = {
        "steps": [
            {
                "name": "StepOK",
                "step_args": ["*CENSORED*"],
                "step_kwargs": {},
                "uid": "1",
                "details": {},
                "stats": {
                    "started": None,
                    "skip": False,
                    "skip_reason": "",
                    "finished": None,
                    "skipped": None,
                    "state": "ready",
                },
                "results": {
                    "results": {"value": "result-of-useless-step"},
                    "errors": {},
                },
            },
            {
                "name": "StepOK",
                "step_args": ["foo param"],
                "step_kwargs": {},
                "uid": "2",
                "details": {},
                "stats": {
                    "started": None,
                    "skip": False,
                    "skip_reason": "",
                    "finished": None,
                    "skipped": None,
                    "state": "ready",
                },
                "results": {
                    "results": {"value": "result-of-useless-step"},
                    "errors": {},
                },
            },
        ],
        "shared_results": {},
    }
    assert stepper_dump1 == expected_output1
    expected_output2 = {
        "steps": [
            {
                "name": "StepOK",
                "step_args": ["*CENSORED*"],
                "step_kwargs": {},
                "uid": "1",
                "details": {},
                "stats": {
                    "started": "isodate_now_1",
                    "finished": "isodate_now_2",
                    "skip": False,
                    "skip_reason": "",
                    "skipped": False,
                    "state": "finished",
                },
                "results": {
                    "results": {"value": "result-of-useless-step"},
                    "errors": {},
                },
            },
            {
                "name": "StepOK",
                "step_args": ["foo param"],
                "step_kwargs": {},
                "uid": "2",
                "details": {},
                "stats": {
                    "started": "isodate_now_3",
                    "finished": "isodate_now_4",
                    "skip": False,
                    "skip_reason": "",
                    "skipped": False,
                    "state": "finished",
                },
                "results": {
                    "results": {"value": "result-of-useless-step"},
                    "errors": {},
                },
            },
        ],
        "shared_results": {},
    }
    assert stepper_dump2 == expected_output2