def test_get_children_in_next_step(self): next_steps = [NextStep(name='name1'), NextStep(name='name2')] step = Step(app='HelloWorld', action='helloWorld', next_steps=next_steps) self.assertDictEqual(step.get_children(['name1']), next_steps[0].as_json(with_children=False)) self.assertDictEqual(step.get_children(['name2']), next_steps[1].as_json(with_children=False))
def test_get_children_next_not_found(self): next_steps = [NextStep(name='name1'), NextStep(name='name2')] error_steps = [NextStep(name='error1'), NextStep(name='error2')] step = Step(app='HelloWorld', action='helloWorld', next_steps=next_steps, errors=error_steps) self.assertIsNone(step.get_children(['invalid']))
def test_get_children_duplicate_in_both_next_steps_and_error(self): next_steps = [NextStep(name='name1'), NextStep(name='name2')] error_steps = [NextStep(name='name1'), NextStep(name='error2')] step = Step(app='HelloWorld', action='helloWorld', next_steps=next_steps, errors=error_steps) self.assertDictEqual(step.get_children(['name1']), next_steps[0].as_json(with_children=False))
def test_get_children(self): step = Step() names = ['step1', 'step2', 'step3'] for name in names: self.assertIsNone(step.get_children([name])) self.assertDictEqual(step.get_children([]), step.as_json(with_children=False)) next_steps = [ NextStep(name='name1'), NextStep(name='name2'), NextStep(name='name3') ] names = ['name1', 'name2', 'name3'] step = Step(next_steps=next_steps) for i, name in enumerate(names): self.assertDictEqual(step.get_children([name]), next_steps[i].as_json()) step = Step(errors=next_steps) for i, name in enumerate(names): self.assertDictEqual(step.get_children([name]), next_steps[i].as_json()) errors = [ NextStep(name='name1'), NextStep(name='error1'), NextStep(name='error2'), NextStep(name='name2') ] next_names = list(names) error_names = ['error1', 'error2'] all_names = list(next_names) all_names.extend(error_names) step = Step(next_steps=next_steps, errors=errors) for i, name in enumerate(all_names): if not name.startswith('error'): self.assertDictEqual(step.get_children([name]), next_steps[i].as_json()) else: self.assertDictEqual(step.get_children([name]), errors[i - 2].as_json()) flags = [Flag(), Flag(action='action1'), Flag(action='action2')] next_steps = [NextStep(name='name1', flags=flags)] names = ['', 'action1', 'action2'] step = Step(next_steps=next_steps) ancestries = [[name, 'name1'] for name in names] for i, ancestry in enumerate(ancestries): self.assertDictEqual(step.get_children(ancestry), flags[i].as_json())
def test_get_children_no_ancestry(self): step = Step(app='HelloWorld', action='helloWorld') self.assertDictEqual(step.get_children([]), step.as_json(with_children=False))