示例#1
0
def test_none_condop():
    step = Step(cond_op=StepConditionOperator.NONE, conditions=[
        NonEmpty({"v": {"variable": "a"}}),
        NonEmpty({"v": {"variable": "b"}}),
    ], actions=[SetDebugFlag({})])
    context = Context.from_variables(a=False, b=False)
    step.execute(context)
    assert context.get("debug")
示例#2
0
def test_none_condop():
    step = Step(cond_op=StepConditionOperator.NONE,
                conditions=[
                    NonEmpty({"v": {
                        "variable": "a"
                    }}),
                    NonEmpty({"v": {
                        "variable": "b"
                    }}),
                ],
                actions=[SetDebugFlag({})])
    context = Context.from_variables(a=False, b=False)
    step.execute(context)
    assert context.get("debug")
示例#3
0
def test_condops(cond_op):
    step = Step(cond_op=cond_op, conditions=[
        NonEmpty({"v": {"variable": "a"}}),
        NonEmpty({"v": {"variable": "b"}}),
    ], actions=[SetDebugFlag({})])
    context = Context.from_variables(a=True, b=False)
    step.execute(context)
    if cond_op == StepConditionOperator.ALL:
        assert not context.get("debug")
    elif cond_op == StepConditionOperator.ANY:
        assert context.get("debug")
    elif cond_op == StepConditionOperator.NONE:
        assert not context.get("debug")
    else:
        raise ValueError("Unexpected condop %r" % cond_op)
示例#4
0
def test_run():
    event = get_initialized_test_event()
    step = Step(actions=[
        AddOrderLogEntry({
            "order": {
                "variable": "order"
            },
            "message": {
                "constant": "It Works."
            },
            "message_identifier": {
                "constant": "test_run"
            },
        })
    ],
                next=StepNext.STOP)
    script = Script(event_identifier=event.identifier, name="Test Script")
    script.set_steps([step])
    script.save()
    event.run()
    # The script is disabled by default, of course it won't run
    assert not event.variable_values["order"].log_entries.filter(
        identifier="test_run").exists()

    # Let's try that again.
    script.enabled = True
    script.save()
    event.run()
    assert event.variable_values["order"].log_entries.filter(
        identifier="test_run").exists()
    script.delete()
示例#5
0
 def get_steps(self):
     """
     :rtype Iterable[Step]
     """
     if getattr(self, "_steps", None) is None:
         from shoop.notify.script import Step
         self._steps = [Step.unserialize(data) for data in self._step_data]
     return self._steps
示例#6
0
 def get_steps(self):
     """
     :rtype Iterable[Step]
     """
     if getattr(self, "_steps", None) is None:
         from shoop.notify.script import Step
         self._steps = [Step.unserialize(data) for data in self._step_data]
     return self._steps
示例#7
0
def test_condops(cond_op):
    step = Step(cond_op=cond_op,
                conditions=[
                    NonEmpty({"v": {
                        "variable": "a"
                    }}),
                    NonEmpty({"v": {
                        "variable": "b"
                    }}),
                ],
                actions=[SetDebugFlag({})])
    context = Context.from_variables(a=True, b=False)
    step.execute(context)
    if cond_op == StepConditionOperator.ALL:
        assert not context.get("debug")
    elif cond_op == StepConditionOperator.ANY:
        assert context.get("debug")
    elif cond_op == StepConditionOperator.NONE:
        assert not context.get("debug")
    else:
        raise ValueError("Unexpected condop %r" % cond_op)
示例#8
0
def test_load_save():
    sc = Script(event_identifier=TestEvent.identifier, name="Test Script")
    assert force_text(sc) == "Test Script"
    sc.set_serialized_steps(TEST_STEP_DATA)
    sc.save()
    sc = Script.objects.get(pk=sc.pk)

    first_step = sc.get_steps()[0]
    first_step_data = TEST_STEP_DATA[0]
    step_from_data = Step.unserialize(first_step_data)
    data_from_step = first_step.serialize()

    assert data_from_step == first_step_data
    assert first_step == step_from_data
示例#9
0
def test_load_save():
    sc = Script(event_identifier=TestEvent.identifier, name="Test Script")
    assert force_text(sc) == "Test Script"
    sc.set_serialized_steps(TEST_STEP_DATA)
    sc.save()
    sc = Script.objects.get(pk=sc.pk)

    first_step = sc.get_steps()[0]
    first_step_data = TEST_STEP_DATA[0]
    step_from_data = Step.unserialize(first_step_data)
    data_from_step = first_step.serialize()

    assert data_from_step == first_step_data
    assert first_step == step_from_data
示例#10
0
def test_conditionless_step_executes():
    step = Step(actions=[SetDebugFlag({})])
    context = Context()
    step.execute(context)
    assert context.get("debug")
示例#11
0
def test_conditionless_step_executes():
    step = Step(actions=[SetDebugFlag({})])
    context = Context()
    step.execute(context)
    assert context.get("debug")