Please add a docstring explaining what this function does.  It's especially important to include an explanation and the type for each of these arguments.

Also, is it possible to replace any of these with sensible defaults?  If so, keyword arguments are a good way to achieve this.  Ideally, each test should be able to specify the pre-conditions that are specific to the particular test case.

Finally, your stub implementation for `is_closed` is fairly complicated.  This makes it difficult to verify that the test is working as expected.  One option for simplifying thing would be to make this helper method accept a dictionary like:
```
{ 'submission': (True, "start", TODAY, TOMORROW) }
```
and then your stub implementation would just do:
```
return stub_values.get(step_name, sensible_default)
```
Any step that gets left out would cause `is_closed` to return a default value.  Since the test logic is simpler, it's easier to verify and maintain.