def test_boolean_value_from_false_boolean_parameter(self): self.litConfig.params['enable_exceptions'] = False param = dsl.Parameter(name='enable_exceptions', choices=[True, False], type=bool, help='', actions=lambda exceptions: [] if exceptions else [dsl.AddFeature("-fno-exceptions")]) for a in param.getActions(self.config, self.litConfig.params): a.applyTo(self.config) self.assertIn('-fno-exceptions', self.config.available_features)
def test_empty_choices_should_blow_up(self): self.assertRaises( ValueError, lambda: dsl.Parameter(name='std', choices=[], type=str, help='', actions=lambda _: []))
def test_value_provided_on_command_line_and_no_default_value(self): self.litConfig.params['std'] = 'c++03' param = dsl.Parameter(name='std', choices=['c++03'], type=str, help='', actions=lambda std: [dsl.AddFeature(std)]) for a in param.getActions(self.config, self.litConfig.params): a.applyTo(self.config) self.assertIn('c++03', self.config.available_features)
def test_name_is_set_correctly(self): param = dsl.Parameter(name='std', choices=['c++03'], type=str, help='', actions=lambda _: []) self.assertEqual(param.name, 'std')
def test_empty_name_should_blow_up(self): self.assertRaises( ValueError, lambda: dsl.Parameter(name='', choices=['c++03'], type=str, help='', feature=lambda _: None))
def test_list_parsed_from_comma_delimited_string_2(self): self.litConfig.params['additional_features'] = "feature1,feature2" param = dsl.Parameter(name='additional_features', type=list, help='', actions=lambda f: f) self.assertEqual(param.getActions(self.config, self.litConfig.params), ['feature1', 'feature2'])
def test_value_provided_in_config_and_default_value(self): """The value provided in the config should override the default value""" self.config.std ='c++11' param = dsl.Parameter(name='std', choices=['c++03', 'c++11'], type=str, default='c++03', help='', feature=lambda std: dsl.Feature(name=std)) param.getFeature(self.config, self.litConfig.params).enableIn(self.config) self.assertIn('c++11', self.config.available_features) self.assertNotIn('c++03', self.config.available_features)
def test_no_value_provided_and_no_default_value(self): param = dsl.Parameter(name='std', choices=['c++03'], type=str, help='', actions=lambda _: []) self.assertRaises( ValueError, lambda: param.getActions(self.config, self.litConfig.params))
def test_boolean_value_from_true_boolean_parameter(self): self.litConfig.params['enable_exceptions'] = True param = dsl.Parameter(name='enable_exceptions', choices=[True, False], type=bool, help='', feature=lambda exceptions: None if exceptions else ValueError()) self.assertIsNone(param.getFeature(self.config, self.litConfig.params))
def test_no_actions(self): self.litConfig.params['std'] = 'c++03' param = dsl.Parameter(name='std', choices=['c++03'], type=str, help='', actions=lambda _: []) actions = param.getActions(self.config, self.litConfig.params) self.assertEqual(actions, [])
def test_value_provided_in_config_and_default_value(self): """The value provided in the config should override the default value""" self.config.std ='c++11' param = dsl.Parameter(name='std', choices=['c++03', 'c++11'], type=str, default='c++03', help='', actions=lambda std: [dsl.AddFeature(std)]) for a in param.getActions(self.config, self.litConfig.params): a.applyTo(self.config) self.assertIn('c++11', self.config.available_features) self.assertNotIn('c++03', self.config.available_features)
def test_no_value_provided_on_command_line_and_no_default_value(self): param = dsl.Parameter(name='std', choices=['c++03'], type=str, help='', feature=lambda _: None) self.assertRaises( ValueError, lambda: param.getFeature(self.config, self.litConfig.params))
def test_value_provided_in_config_and_on_command_line(self): """The value on the command line should override the one in the config""" self.config.std = 'c++11' self.litConfig.params['std'] = 'c++03' param = dsl.Parameter(name='std', choices=['c++03', 'c++11'], type=str, help='', feature=lambda std: dsl.Feature(name=std)) param.getFeature(self.config, self.litConfig.params).enableIn(self.config) self.assertIn('c++03', self.config.available_features) self.assertNotIn('c++11', self.config.available_features)
def test_feature_is_None(self): self.litConfig.params['std'] = 'c++03' param = dsl.Parameter(name='std', choices=['c++03'], type=str, help='', feature=lambda _: None) feature = param.getFeature(self.config, self.litConfig.params) self.assertIsNone(feature)
def test_boolean_value_from_true_boolean_parameter(self): self.litConfig.params['enable_exceptions'] = True param = dsl.Parameter(name='enable_exceptions', choices=[True, False], type=bool, help='', actions=lambda exceptions: [] if exceptions else _throw()) self.assertEqual(param.getActions(self.config, self.litConfig.params), [])
def test_value_provided_on_command_line_and_no_default_value(self): self.litConfig.params['std'] = 'c++03' param = dsl.Parameter(name='std', choices=['c++03'], type=str, help='', feature=lambda std: dsl.Feature(name=std)) param.getFeature(self.config, self.litConfig.params).enableIn(self.config) self.assertIn('c++03', self.config.available_features)
def test_boolean_value_from_false_boolean_parameter(self): self.litConfig.params['enable_exceptions'] = False param = dsl.Parameter( name='enable_exceptions', choices=[True, False], type=bool, help='', feature=lambda exceptions: None if exceptions else dsl.Feature(name="-fno-exceptions")) param.getFeature(self.config, self.litConfig.params).enableIn(self.config) self.assertIn('-fno-exceptions', self.config.available_features)
def test_no_choices_is_ok(self): param = dsl.Parameter(name='triple', type=str, help='', actions=lambda _: []) self.assertEqual(param.name, 'triple')