Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(43)

Unified Diff: recipe_engine/simulation_test.py

Issue 2245113002: Track step nesting in StreamEngine. (Closed) Base URL: https://github.com/luci/recipes-py@emit-initial-properties
Patch Set: Created 4 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: recipe_engine/simulation_test.py
diff --git a/recipe_engine/simulation_test.py b/recipe_engine/simulation_test.py
index 09f1d8c0aff008e098bf4f1f51c074f1bef083cb..4c71435b10739d366e99483186875c3f1a9c55a1 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,23 @@ import expect_tests
# doesn't know how to serialize it.
_UNIVERSE = None
+
+class SimulationAnnotatorStreamEngine(stream.AnnotatorStreamEngine):
dnj 2016/08/15 17:33:53 Now that the annotator stream engine tracks state,
+
+ 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=False,
+ nested=False):
+ return self._create_step_stream(step_name, self.step_buffer(step_name),
+ allow_subannotations, nested)
+
+
def RunRecipe(test_data):
from . import config_types
from . import loader
@@ -25,8 +45,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()
dnj 2016/08/15 17:33:53 We pass the annotator directly to the stream engin
+ 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'])
« no previous file with comments | « recipe_engine/run.py ('k') | recipe_engine/step_runner.py » ('j') | recipe_engine/step_runner.py » ('J')

Powered by Google App Engine
This is Rietveld 408576698