'Save off the current context of the job and change to the given one.
In practice method just changes the resultdir, but it may become more
extensive in the future. The expected use case is for when a child
job needs to be executed in some sort of nested context (for example
the way parallel_simple does). The original context can be restored
with a pop_execution_context call.
:param resultdir: The new resultdir, relative to the current one.'

def push_execution_context(self, resultdir):

    new_dir = self._job_directory(os.path.join(self.resultdir, resultdir), True)
    self._execution_contexts.append(self._resultdir)
    self._resultdir = new_dir
