def steps_with_child_steps(self, steps):
     with steps.start('test step one') as step:
         # start more steps
         with step.start('substep one') as sstep:
             # there's no limit to step nesting
             with sstep.start('subsubstep one') as sstep:
                 with sstep.start('subsubsubstep one') as sstep:
                     with sstep.start('running out of indentation') as sstep:
                         with sstep.start('definitely gone too far...'):
                             pass
         with step.start('substep two') as substep:
             pass
     with steps.start('test step two') as step:
         # cal another function from library, pass in the step
         local_library.function_supporting_step(step)
    def steps_with_child_steps(self, steps):
        '''Steps With Child Steps

        Steps can have child steps. This is done by calling step.start() again
        during an existing step. This can be useful when passing the current
        step object into a function, and further dividing that function into
        smaller steps.
        '''

        with steps.start('test step one') as step:
            # start more steps
            with step.start('substep one') as sstep:
                # there's no limit to step nesting
                with sstep.start('subsubstep one') as sstep:
                    with sstep.start('subsubsubstep one') as sstep:
                        with sstep.start('running out of indentation') as sstep:
                            with sstep.start('definitely gone too far...'):
                                pass
            with step.start('substep two') as substep:
                pass
        with steps.start('test step two') as step:
            # call another function, pass in the step
            local_library.function_supporting_step(step)