def test__overrides_defaults(self): name = factory.make_name("name") field_name = factory.make_name("field_name") new_default = factory.make_name("new default") json_parameters = [ { "driver_type": "power", "name": name, "description": factory.make_name("description"), "fields": [ { "name": field_name, "label": factory.make_name("field label"), "field_type": factory.make_name("field type"), "default": factory.make_name("field default"), "required": False, } ], } ] power_type_parameters = get_driver_parameters_from_json( json_parameters, {field_name: new_default} ) self.assertEqual( new_default, power_type_parameters[name].fields[0].initial )
def _clean_fields(self): """Override to dynamically add fields based on the value of `type` field.""" # Process the built-in fields first. super(PodForm, self)._clean_fields() # If no errors then we re-process with the fields required by the # selected type for the pod. if len(self.errors) == 0: driver_fields = get_driver_parameters_from_json( self.drivers_orig, None, scope=SETTING_SCOPE.BMC) self.param_fields = ( driver_fields[self.cleaned_data['type']].field_dict) self.fields.update(self.param_fields) super(PodForm, self)._clean_fields()
def test_includes_empty_power_type(self): json_parameters = [{ "driver_type": "power", "name": "something", "description": "Meaningless", "fields": [{ "name": "some_field", "label": "Some Field", "field_type": "string", "required": False, }], }] power_type_parameters = get_driver_parameters_from_json( json_parameters) self.assertEqual(["", "something"], list(power_type_parameters))
def test_includes_empty_power_type(self): json_parameters = [{ 'driver_type': 'power', 'name': 'something', 'description': 'Meaningless', 'fields': [{ 'name': 'some_field', 'label': 'Some Field', 'field_type': 'string', 'required': False, }], }] power_type_parameters = get_driver_parameters_from_json( json_parameters) self.assertEqual(['', 'something'], list(power_type_parameters))
def _clean_fields(self): """Override to dynamically add fields based on the value of `type` field.""" # Process the built-in fields first. super(PodForm, self)._clean_fields() # If no errors then we re-process with the fields required by the # selected type for the pod. if len(self.errors) == 0: driver_fields = get_driver_parameters_from_json( self.drivers_orig, scope=SETTING_SCOPE.BMC) self.param_fields = driver_fields[ self.cleaned_data["type"]].field_dict self.fields.update(self.param_fields) if not self.is_new: for key, value in self.instance.power_parameters.items(): if key not in self.data: self.data[key] = value super(PodForm, self)._clean_fields()
def test_creates_dict_char_fields(self): json_parameters = [{ "driver_type": "power", "name": "something", "description": "Meaningless", "fields": [{ "name": "some_field", "label": "Some Field", "field_type": "string", "required": False, }], }] power_type_parameters = get_driver_parameters_from_json( json_parameters) for name, field in power_type_parameters.items(): self.assertIsInstance(field, DictCharField)
def test__manual_does_not_require_power_params(self): json_parameters = [{ "driver_type": "power", "name": "manual", "description": factory.make_name("description"), "fields": [{ "name": factory.make_name("field name"), "label": factory.make_name("field label"), "field_type": factory.make_name("field type"), "default": factory.make_name("field default"), "required": False, }], }] power_type_parameters = get_driver_parameters_from_json( json_parameters) self.assertFalse(power_type_parameters["manual"].required)
def test_creates_dict_char_fields(self): json_parameters = [{ 'driver_type': 'power', 'name': 'something', 'description': 'Meaningless', 'fields': [{ 'name': 'some_field', 'label': 'Some Field', 'field_type': 'string', 'required': False, }], }] power_type_parameters = get_driver_parameters_from_json( json_parameters) for name, field in power_type_parameters.items(): self.assertIsInstance(field, DictCharField)
def test__manual_does_not_require_power_params(self): json_parameters = [{ 'driver_type': 'power', 'name': 'manual', 'description': factory.make_name('description'), 'fields': [{ 'name': factory.make_name('field name'), 'label': factory.make_name('field label'), 'field_type': factory.make_name('field type'), 'default': factory.make_name('field default'), 'required': False, }], }] power_type_parameters = get_driver_parameters_from_json( json_parameters) self.assertFalse(power_type_parameters['manual'].required)
def test__overrides_defaults(self): name = factory.make_name('name') field_name = factory.make_name('field_name') new_default = factory.make_name('new default') json_parameters = [{ 'driver_type': 'power', 'name': name, 'description': factory.make_name('description'), 'fields': [{ 'name': field_name, 'label': factory.make_name('field label'), 'field_type': factory.make_name('field type'), 'default': factory.make_name('field default'), 'required': False, }], }] power_type_parameters = get_driver_parameters_from_json( json_parameters, {field_name: new_default}) self.assertEqual(new_default, power_type_parameters[name].fields[0].initial)