def test_list_commissioning_choices_returns_sorted(self): comm_releases = [ make_rpc_release(can_commission=True) for _ in range(3) ] comm_releases += [ make_rpc_release( Config.objects.get_config('commissioning_distro_series'), can_commission=True) ] osystem = make_rpc_osystem('ubuntu', releases=comm_releases) comm_releases = sorted(comm_releases, key=itemgetter('title')) choices = [(release['name'], release['title']) for release in comm_releases] self.assertEqual(choices, list_commissioning_choices([osystem]))
def test_list_commissioning_choices_returns_current_selection(self): comm_releases = [ make_rpc_release(can_commission=True) for _ in range(3) ] osystem = make_rpc_osystem("ubuntu", releases=comm_releases) comm_releases = sorted(comm_releases, key=itemgetter("title")) commissioning_series, _ = Config.objects.get_or_create( name="commissioning_distro_series") commissioning_series.value = factory.make_name("commissioning_series") commissioning_series.save() choices = [( commissioning_series.value, "%s (No image available)" % commissioning_series.value, )] + [(release["name"], release["title"]) for release in comm_releases] self.assertEqual(choices, list_commissioning_choices([osystem]))
def test_list_commissioning_choices_returns_commissioning_releases(self): comm_releases = [ make_rpc_release(can_commission=True) for _ in range(3) ] comm_releases += [ make_rpc_release( Config.objects.get_config('commissioning_distro_series'), can_commission=True) ] no_comm_release = make_rpc_release() osystem = make_rpc_osystem('ubuntu', releases=comm_releases + [no_comm_release]) choices = [(release['name'], release['title']) for release in comm_releases] self.assertItemsEqual(choices, list_commissioning_choices([osystem]))
def make_commissioning_distro_series_field(*args, **kwargs): """Build and return the commissioning_distro_series field.""" usable_oses = list_all_usable_osystems() commissioning_choices = list_commissioning_choices(usable_oses) if len(commissioning_choices) == 0: commissioning_choices = [('---', '--- No Usable Release ---')] field = forms.ChoiceField( initial=Config.objects.get_config('commissioning_distro_series'), choices=commissioning_choices, validators=[validate_missing_boot_images], error_messages={ 'invalid_choice': compose_invalid_choice_text( 'commissioning_distro_series', commissioning_choices) }, **kwargs) return field
def test_list_commissioning_choices_returns_empty_list_if_not_ubuntu(self): osystem = make_rpc_osystem() self.assertEqual([], list_commissioning_choices([osystem]))