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")
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")
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)
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()
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
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)
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
def test_conditionless_step_executes(): step = Step(actions=[SetDebugFlag({})]) context = Context() step.execute(context) assert context.get("debug")