| Index: recipe_engine/simulation_test.py
|
| diff --git a/recipe_engine/simulation_test.py b/recipe_engine/simulation_test.py
|
| index 09f1d8c0aff008e098bf4f1f51c074f1bef083cb..4927739eb62f2055d2b92667ac10937e320823b8 100644
|
| --- a/recipe_engine/simulation_test.py
|
| +++ b/recipe_engine/simulation_test.py
|
| @@ -4,12 +4,15 @@
|
|
|
| """Provides simulator test coverage for individual recipes."""
|
|
|
| +import StringIO
|
| +import contextlib
|
| import logging
|
| import re
|
| import os
|
| import sys
|
|
|
| from . import env
|
| +from . import stream
|
| import expect_tests
|
|
|
| # This variable must be set in the dynamic scope of the functions in this file.
|
| @@ -17,6 +20,25 @@ import expect_tests
|
| # doesn't know how to serialize it.
|
| _UNIVERSE = None
|
|
|
| +
|
| +class SimulationAnnotatorStreamEngine(stream.AnnotatorStreamEngine):
|
| +
|
| + def __init__(self):
|
| + self._step_buffer_map = {}
|
| + super(SimulationAnnotatorStreamEngine, self).__init__(
|
| + self.step_buffer(None))
|
| +
|
| + def step_buffer(self, step_name):
|
| + return self._step_buffer_map.setdefault(step_name, StringIO.StringIO())
|
| +
|
| + def _new_step_stream(self, step_name, allow_subannotations, nest_level):
|
| + return self._create_step_stream(
|
| + step_name,
|
| + self.step_buffer(step_name),
|
| + allow_subannotations,
|
| + nest_level)
|
| +
|
| +
|
| def RunRecipe(test_data):
|
| from . import config_types
|
| from . import loader
|
| @@ -25,8 +47,14 @@ def RunRecipe(test_data):
|
| from . import stream
|
|
|
| config_types.ResetTostringFns()
|
| - with stream.StreamEngineInvariants() as stream_engine:
|
| - step_runner = step_runner.SimulationStepRunner(stream_engine, test_data)
|
| +
|
| + annotator = SimulationAnnotatorStreamEngine()
|
| + stream_engine = stream.ProductStreamEngine(
|
| + stream.StreamEngineInvariants(),
|
| + annotator)
|
| + with stream_engine:
|
| + step_runner = step_runner.SimulationStepRunner(stream_engine, test_data,
|
| + annotator)
|
|
|
| engine = run.RecipeEngine(step_runner, test_data.properties, _UNIVERSE)
|
| recipe_script = _UNIVERSE.load_recipe(test_data.properties['recipe'])
|
|
|