Skip to content

Commit

Permalink
Merge pull request #68 from gregoil/fix_common_and_inputs_priority
Browse files Browse the repository at this point in the history
Fix common and inputs default value priority
  • Loading branch information
osherdp committed Jun 20, 2018
2 parents 1051d25 + f3adb7f commit 8b88d3c
Show file tree
Hide file tree
Showing 4 changed files with 34 additions and 9 deletions.
2 changes: 1 addition & 1 deletion setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@

from setuptools import setup, find_packages

__version__ = "3.0.0"
__version__ = "3.0.1"

result_handlers = [
"db = rotest.core.result.handlers.db_handler:DBHandler",
Expand Down
4 changes: 0 additions & 4 deletions src/rotest/core/block.py
Original file line number Diff line number Diff line change
Expand Up @@ -90,10 +90,6 @@ def __init__(self, indexer=count(), base_work_dir=ROTEST_WORK_DIR,

self.addCleanup(self._share_outputs)

for input_name, value in self.get_inputs().iteritems():
if value.is_optional():
setattr(self, input_name, value.default)

@classmethod
def get_name(cls, **parameters):
"""Return test name.
Expand Down
14 changes: 10 additions & 4 deletions src/rotest/core/flow_component.py
Original file line number Diff line number Diff line change
Expand Up @@ -248,14 +248,20 @@ def setup_method_wrapper(*args, **kwargs):
raise

try:
if not self.is_main:
# Validate all required inputs were passed
self._validate_inputs()

if not self.IS_COMPLEX:
self.share_data(override_previous=False,
**{input_name: value.default
for (input_name, value) in
self.get_inputs().iteritems()
if value.is_optional()})

for pipe_name, pipe_target in self._pipes.iteritems():
setattr(self, pipe_name, getattr(self, pipe_target))

if not self.is_main:
# Validate all required inputs were passed
self._validate_inputs()

setup_method(*args, **kwargs)
self.result.setupFinished(self)

Expand Down
23 changes: 23 additions & 0 deletions tests/core/test_flow.py
Original file line number Diff line number Diff line change
Expand Up @@ -1045,6 +1045,29 @@ class MainFlow(MockFlow):
self.assertEqual(self.result.testsRun, 1,
"Result didn't run the correct number of tests")

def test_default_inputs_priority(self):
"""Test that the priority of default inputs values are lowest."""
parameter1_name = 'field1'
parameter2_name = 'field2'

class FlowWithCommon(MockSubFlow):
common = {parameter1_name: "common_value"}

blocks = (create_reader_block(inject_name=parameter1_name,
inject_value="common_value",
default="default_value"),
create_reader_block(inject_name=parameter2_name,
inject_value="params_value",
default="default_value").params(
**{parameter2_name: "params_value"}))

test_flow = FlowWithCommon()
self.run_test(test_flow)
self.assertTrue(self.result.wasSuccessful(),
'Flow failed when it should have succeeded')

self.validate_blocks(test_flow, successes=2)

def test_critical_flow(self):
"""Validate behavior of flow in CRITICAL mode.
Expand Down

0 comments on commit 8b88d3c

Please sign in to comment.