diff --git a/test/unit/tools/test_select_parameters.py b/test/unit/tools/test_select_parameters.py index 17bc2d86f27..0e18010975b 100644 --- a/test/unit/tools/test_select_parameters.py +++ b/test/unit/tools/test_select_parameters.py @@ -7,31 +7,42 @@ from .test_parameter_parsing import BaseParameterTestCase class SelectToolParameterTestCase( BaseParameterTestCase ): - def test_dep_dummy_datasets_need_late_validation( self ): + def test_validated_values( self ): self.options_xml = '''''' - assert self.param.need_late_validation( self.trans, { "input_bam": basic.DummyDataset() } ) + try: + self.param.from_html("42", self.trans, { "input_bam": model.HistoryDatasetAssociation() }) + except ValueError, err: + assert str(err) == "An invalid option was selected for my_name, '42', please verify." + return + assert False - def test_dep_runtime_values_need_late_validation( self ): + def test_validated_values_missing_dependency( self ): self.options_xml = '''''' - assert self.param.need_late_validation( self.trans, { "input_bam": basic.RuntimeValue() } ) + try: + self.param.from_html("42", self.trans) + except AssertionError, err: + assert str(err) == "Required dependency 'input_bam' not found in incoming values" + return + assert False - def test_dep_unvalidated_values_need_late_validation( self ): + def test_unvalidated_values( self ): self.options_xml = '''''' - assert self.param.need_late_validation( self.trans, { "input_bam": basic.UnvalidatedValue( "42" ) } ) + self.trans.workflow_building_mode = True + assert self.param.from_html("42", self.trans).value == "42" - def test_dep_real_datasets_no_late_validation( self ): + def test_validated_datasets( self ): self.options_xml = '''''' - assert not self.param.need_late_validation( self.trans, { "input_bam": model.HistoryDatasetAssociation() } ) + try: + self.param.from_html( model.HistoryDatasetAssociation(), self.trans, { "input_bam": basic.RuntimeValue() } ) + except ValueError, err: + assert str(err) == "Parameter my_name requires a value, but has no legal values defined." + return + assert False - def test_nested_context_validation_needed( self ): + def test_unvalidated_datasets( self ): self.options_xml = '''''' - # Data ref currently must be same level, if not at top level. - assert self.param.need_late_validation( self.trans, { "reference_source": { "my_name": "42", "input_bam": basic.RuntimeValue() } } ) - - def test_nested_context_validation_not_needed( self ): - self.options_xml = '''''' - # Data ref currently must be same level, if not at top level. - assert not self.param.need_late_validation( self.trans, { "reference_source": { "my_name": "42", "input_bam": model.HistoryDatasetAssociation() } } ) + self.trans.workflow_building_mode = True + assert isinstance( self.param.from_html( model.HistoryDatasetAssociation(), self.trans, { "input_bam": basic.RuntimeValue() } ).value, model.HistoryDatasetAssociation ) def test_filter_param_value( self ): self.options_xml = ''''''