Exemplo n.º 1
0
 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
     )
Exemplo n.º 2
0
 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()
Exemplo n.º 3
0
 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))
Exemplo n.º 4
0
 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))
Exemplo n.º 5
0
 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()
Exemplo n.º 6
0
 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)
Exemplo n.º 7
0
 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)
Exemplo n.º 8
0
 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)
Exemplo n.º 9
0
 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)
Exemplo n.º 10
0
 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)