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"])
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"], )
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
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)
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
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
def test_wraps_ipv6(self): field = get_config_field('remote_syslog') self.assertEqual('[::ffff]:514', field.clean('::ffff'))
def test_adds_port(self): field = get_config_field("remote_syslog") self.assertEqual("192.168.1.1:514", field.clean("192.168.1.1"))
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
def test_allows_port_5247(self): field = get_config_field("maas_syslog_port") self.assertEqual(5247, field.clean("5247"))
def test_wraps_ipv6(self): field = get_config_field("remote_syslog") self.assertEqual("[::ffff]:514", field.clean("::ffff"))
def test_doesnt_allow_port_5248(self): field = get_config_field('maas_syslog_port') self.assertRaises(ValidationError, field.clean, '5248')
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
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)
def test_allows_port_5247(self): field = get_config_field('maas_syslog_port') self.assertEqual(5247, field.clean('5247'))
def test_adds_port(self): field = get_config_field('remote_syslog') self.assertEqual('192.168.1.1:514', field.clean('192.168.1.1'))
def test_sets_empty_to_none(self): field = get_config_field('remote_syslog') self.assertIsNone(field.clean(' '))
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))
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'])
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)