def setUp(self):
        super(TestSampleMenu, self).setUp()

        self.menu = ConsoleMenu("self.menu", "TestSampleMenu")
        self.item1 = MenuItem("self.item1", self.menu)
        self.item2 = MenuItem("self.item2", self.menu)
        self.menu.append_item(self.item1)
        self.menu.append_item(self.item2)
        self.menu.start()
        self.menu.wait_for_start(timeout=10)
示例#2
0
 def test_remove_menu_item(self):
     menu = ConsoleMenu("menu1", "test_currently_active_menu_1")
     item1 = MenuItem(text='itemText', menu=menu)
     item2 = MenuItem(text='itemText2', menu=menu)
     menu.append_item(item1)
     menu.append_item(item2)
     self.assertIn(item1, menu.items)
     self.assertIn(item2, menu.items)
     menu.remove_item(item1)
     self.assertNotIn(item1, menu.items)
     self.assertIn(item2, menu.items)
 def test_defaults(self):
     print_screen_edge()
     format = MenuFormatBuilder()
     items = [
         MenuItem("This is Item 1"),
         MenuItem("This is Item 2"),
         MenuItem("This is Item 3")
     ]
     Screen().printf(
         format.format(title="This is My Title",
                       subtitle="This is My Little Subtitle",
                       items=items))
 def test_format_with_prologue_with_top_border(self):
     format = MenuFormatBuilder().show_prologue_top_border(True)
     items = [
         MenuItem("This is Item 1"),
         MenuItem("This is Item 2"),
         MenuItem("This is Item 3")
     ]
     prologue_text = "This is my prologue. Follow these instructions."
     Screen().printf(
         format.format(title="This is My Title",
                       subtitle="This is My Subtitle",
                       items=items,
                       prologue_text=prologue_text))
    def test_format_with_prologue_no_border(self):
        format = MenuFormatBuilder()
        items = [
            MenuItem("This is Item 1"),
            MenuItem("This is Item 2"),
            MenuItem("This is Item 3")
        ]
        prologue_text = 'This a very long prologue, which can be used to explain how to use this menu, \
for people that might not understand it.'

        Screen().printf(
            format.format(title="This is My Title",
                          subtitle="This is My Subtitle",
                          items=items,
                          prologue_text=prologue_text))
示例#6
0
 def test_init(self):
     menu_item_1 = MenuItem("menu_item_1", self.menu)
     menu_item_2 = MenuItem("menu_item_2", self.menu, True)
     menu_item_3 = MenuItem(text="menu_item_1",
                            menu=self.menu,
                            should_exit=False)
     self.assertEqual(menu_item_1.text, "menu_item_1")
     self.assertEqual(menu_item_2.text, "menu_item_2")
     self.assertEqual(menu_item_3.text, "menu_item_1")
     self.assertEqual(menu_item_1.menu, self.menu)
     self.assertEqual(menu_item_2.menu, self.menu)
     self.assertEqual(menu_item_3.menu, self.menu)
     self.assertFalse(menu_item_1.should_exit)
     self.assertTrue(menu_item_2.should_exit)
     self.assertFalse(menu_item_3.should_exit)
    def test_format_with_long_prologue_with_both_borders(self):
        format = MenuFormatBuilder().show_prologue_top_border(
            True).show_prologue_bottom_border(True)
        items = [
            MenuItem("This is Item 1"),
            MenuItem("This is Item 2"),
            MenuItem("This is Item 3")
        ]
        prologue_text = 'This a very long prologue, which can be used to explain how to use this menu, \
for people that might not understand it. But if they read this description it can help them. Also, I have both \
my top and bottom borders enabled, so you should see them.'

        Screen().printf(
            format.format(title="This is My Title",
                          subtitle="This is My Subtitle",
                          items=items,
                          prologue_text=prologue_text))
 def test_format_with_item_borders(self):
     format = MenuFormatBuilder()
     item1 = MenuItem("This is Item 1")
     item2 = MenuItem("This is Item 2")
     item3 = MenuItem("This is Item 3")
     format.show_item_top_border(item2, True)
     format.show_item_bottom_border(item2, True)
     print("This should show both top and bottom borders on item 2...")
     Screen().printf(
         format.format(title="This is My Title",
                       subtitle="This is My Subtitle",
                       items=[item1, item2, item3]))
     # Now turn off the borders
     format.show_item_top_border(item2, False)
     format.show_item_bottom_border(item2, False)
     print("This should NOT show any borders on item 2...")
     Screen().printf(
         format.format(title="This is My Title",
                       subtitle="This is My Subtitle",
                       items=[item1, item2, item3]))
示例#9
0
    def test_(self):
        global title_text, subtitle_text, item_title_text
        menu_item = MenuItem(item_title, self.menu)

        # Test dynamic change of main menu title
        self.assertEqual(self.menu.get_title(), "title")
        title_text = "newtitle"
        self.assertEqual(self.menu.get_title(), "newtitle")

        # Test dynamic change of main menu subtitle
        self.assertEqual(self.menu.get_subtitle(), "subtitle")
        subtitle_text = "newsubtitle"
        self.assertEqual(self.menu.get_subtitle(), "newsubtitle")

        # Test dynamic menu item text
        self.assertEqual(menu_item.get_text(), "itemtext")
        item_title_text = "newtext"
        self.assertEqual(menu_item.get_text(), "newtext")

        # Test dynamic change of submenu item on each invocation
        submenu_item = SubmenuItem("a_sub", my_submenu_function)
        self.assertEqual(submenu_item.get_submenu().get_title(), "version1")
        self.assertEqual(submenu_item.get_submenu().get_title(), "version2")
示例#10
0
 def setUp(self):
     self.menu = ConsoleMenu("self.menu", "TestMenuItem")
     self.small_list = [
         MenuItem("menu_item_1", self.menu),
         MenuItem("menu_item_2", self.menu, True),
         MenuItem(text="menu_item_3", menu=self.menu, should_exit=False)
     ]
     self.large_list = [
         MenuItem("menu_item_1", self.menu),
         MenuItem("menu_item_2", self.menu, True),
         MenuItem("menu_item_3", self.menu, True),
         MenuItem("menu_item_4", self.menu, True),
         MenuItem("menu_item_5", self.menu, True),
         MenuItem("menu_item_6", self.menu, True),
         MenuItem("menu_item_7", self.menu, True),
         MenuItem("menu_item_8", self.menu, True),
         MenuItem("menu_item_9", self.menu, True),
         MenuItem("menu_item_10", self.menu, True),
         MenuItem("menu_item_11", self.menu, True),
         MenuItem(text="menu_item_12", menu=self.menu, should_exit=False)
     ]
示例#11
0
 def test_show(self):
     menu_item = MenuItem("menu_item", self.menu)
     self.assertEqual(menu_item.show(0), " 1 - menu_item")
示例#12
0
            subtitle=menu_subtitle,
            prologue_text=
            "Certo, agora você precisa escolher uma das músicas abaixo para que o classificador tente adivinhar qual o gênero dela:",
        )

        # exibe o menu para seleção da música a ser analisada
        music_selection_menu.show()

        selected_network = network_types[
            network_selection_menu.selected_option]
        selected_music = musics[music_selection_menu.selected_option]

        # faz a previsão dos gêneros que possuem semelhança com a música selecionada
        predicted_genres = predict_genre(f"songs/{selected_music}",
                                         network_type=selected_network)

        result_menu = ConsoleMenu(
            title=menu_title,
            subtitle=menu_subtitle,
            prologue_text=
            "De acordo com o algoritmo de '{}', a música '{}' tem similaridade com os seguintes gêneros:"
            .format(selected_network, selected_music))

        # cria os itens do menu de resultados obtidos pela previsão
        for predicted_genre in predicted_genres:
            result_menu.append_item(
                MenuItem("Gênero: {}, Precisão: {:.2f}%".format(
                    predicted_genre['label'], predicted_genre['accuracy'])))

        result_menu.show()