Esempio n. 1
0
    def test_dehydrate_choice_config(self):
        choice_name, choices = random.choice(
            list((name, get_config_field(name).choices)
                 for name in CONFIG_ITEMS.keys()
                 if hasattr(get_config_field(name), "choices")))

        choice_value = random.choice([value for value, _ in choices])
        Config.objects.set_config(choice_name, choice_value)
        user = factory.make_User()
        handler = ConfigHandler(user, {}, None)
        dehydrated = handler.dehydrate_configs([choice_name])[0]
        self.assertEqual(choice_name, dehydrated["name"])
        self.assertEqual(choice_value, dehydrated["value"])
        self.assertEqual(choices, dehydrated["choices"])
Esempio n. 2
0
 def test_commissioning_distro_series_config(self):
     field = get_config_field("commissioning_distro_series")
     self.assertEqual(
         compose_invalid_choice_text("commissioning_distro_series",
                                     field.choices),
         field.error_messages["invalid_choice"],
     )
Esempio n. 3
0
 def _include_choice(self, config_key):
     try:
         config_field = get_config_field(config_key["name"])
         if hasattr(config_field, "choices"):
             config_key["choices"] = config_field.choices
     except ValidationError:
         pass
     return config_key
Esempio n. 4
0
 def test_dehydrate_no_choice_config(self):
     no_choice_name = random.choice(
         list(name for name in CONFIG_ITEMS.keys()
              if not hasattr(get_config_field(name), "choices")))
     Config.objects.set_config(no_choice_name, "myvalue")
     user = factory.make_User()
     handler = ConfigHandler(user, {}, None)
     dehydrated = handler.dehydrate_configs([no_choice_name])[0]
     self.assertEqual(no_choice_name, dehydrated["name"])
     self.assertEqual("myvalue", dehydrated["value"])
     self.assertNotIn("choices", dehydrated)
Esempio n. 5
0
 def dehydrated_all_configs(self):
     defaults = get_default_config()
     config_keys = CONFIG_ITEMS.keys()
     config_objs = Config.objects.filter(name__in=config_keys)
     config_objs = {obj.name: obj for obj in config_objs}
     config_keys = [{
         "name":
         key,
         "value": (config_objs[key].value
                   if key in config_objs else defaults.get(key, "")),
     } for key in config_keys]
     for config_key in config_keys:
         config_field = get_config_field(config_key["name"])
         if hasattr(config_field, "choices"):
             config_key["choices"] = config_field.choices
     return config_keys
Esempio n. 6
0
 def dehydrated_all_configs(self):
     defaults = get_default_config()
     config_keys = CONFIG_ITEMS.keys()
     config_objs = Config.objects.filter(name__in=config_keys)
     config_objs = {obj.name: obj for obj in config_objs}
     config_keys = [{
         'name':
         key,
         'value': (config_objs[key].value
                   if key in config_objs else defaults.get(key, ''))
     } for key in config_keys]
     for config_key in config_keys:
         config_field = get_config_field(config_key['name'])
         if hasattr(config_field, 'choices'):
             config_key['choices'] = config_field.choices
     return config_keys
Esempio n. 7
0
 def test_wraps_ipv6(self):
     field = get_config_field('remote_syslog')
     self.assertEqual('[::ffff]:514', field.clean('::ffff'))
Esempio n. 8
0
 def test_adds_port(self):
     field = get_config_field("remote_syslog")
     self.assertEqual("192.168.1.1:514", field.clean("192.168.1.1"))
Esempio n. 9
0
 def _include_choice(self, config_key):
     config_field = get_config_field(config_key['name'])
     if hasattr(config_field, 'choices'):
         config_key['choices'] = config_field.choices
     return config_key
Esempio n. 10
0
 def test_allows_port_5247(self):
     field = get_config_field("maas_syslog_port")
     self.assertEqual(5247, field.clean("5247"))
Esempio n. 11
0
 def test_wraps_ipv6(self):
     field = get_config_field("remote_syslog")
     self.assertEqual("[::ffff]:514", field.clean("::ffff"))
Esempio n. 12
0
 def test_doesnt_allow_port_5248(self):
     field = get_config_field('maas_syslog_port')
     self.assertRaises(ValidationError, field.clean, '5248')
Esempio n. 13
0
 def _include_choice(self, config_key):
     config_field = get_config_field(config_key["name"])
     if hasattr(config_field, "choices"):
         config_key["choices"] = config_field.choices
     return config_key
Esempio n. 14
0
 def test_get_config_field_creates_field(self):
     field = get_config_field("maas_name")
     label = CONFIG_ITEMS["maas_name"]["form_kwargs"]["label"]
     self.assertEqual(label, field.label)
Esempio n. 15
0
 def test_allows_port_5247(self):
     field = get_config_field('maas_syslog_port')
     self.assertEqual(5247, field.clean('5247'))
Esempio n. 16
0
 def test_adds_port(self):
     field = get_config_field('remote_syslog')
     self.assertEqual('192.168.1.1:514', field.clean('192.168.1.1'))
Esempio n. 17
0
 def test_sets_empty_to_none(self):
     field = get_config_field('remote_syslog')
     self.assertIsNone(field.clean('   '))
Esempio n. 18
0
 def test_upstream_dns_accepts_ip_list(self):
     field = get_config_field('upstream_dns')
     ips1 = [factory.make_ip_address() for _ in range(3)]
     ips2 = [factory.make_ip_address() for _ in range(3)]
     input = ' '.join(ips1) + ' ' + ','.join(ips2)
     self.assertEqual(' '.join(ips1 + ips2), field.clean(input))
Esempio n. 19
0
 def test_commissioning_distro_series_config(self):
     field = get_config_field('commissioning_distro_series')
     self.assertEqual(
         compose_invalid_choice_text('commissioning_distro_series',
                                     field.choices),
         field.error_messages['invalid_choice'])
Esempio n. 20
0
 def test_get_config_field_creates_field(self):
     field = get_config_field('maas_name')
     label = CONFIG_ITEMS['maas_name']['form_kwargs']['label']
     self.assertEqual(label, field.label)