diff --git a/pygameMenu/__init__.py b/pygameMenu/__init__.py index a0399a98..cb69dfc2 100644 --- a/pygameMenu/__init__.py +++ b/pygameMenu/__init__.py @@ -36,10 +36,10 @@ import pygameMenu.events import pygameMenu.font import pygameMenu.locals +import pygameMenu.sound import pygameMenu.version from pygameMenu.menu import Menu -from pygameMenu.sound import Sound from pygameMenu.textmenu import TextMenu # Other diff --git a/pygameMenu/menu.py b/pygameMenu/menu.py index a036bb90..ad19f3d6 100755 --- a/pygameMenu/menu.py +++ b/pygameMenu/menu.py @@ -867,10 +867,12 @@ def _check_menu_initialized(self): """ Check menu initialization. - :return: None + :return: True if menu is initialized, raise Exception if not + :rtype: bool """ if self._top is None: raise Exception('The menu has not been initialized yet, try using mainloop function') + return True def mainloop(self, events=None, disable_loop=False): """ @@ -989,7 +991,7 @@ def set_sound(self, sound, recursive=False): Set sound engine to a menu. :param sound: Sound object - :type sound: pygameMenu.sound.Sound + :type sound: pygameMenu.sound.Sound, NoneType :param recursive: Set the sound engine to all submenus :type recursive: bool :return: None diff --git a/test/test_menu.py b/test/test_menu.py index 5ce782f5..45ba8172 100644 --- a/test/test_menu.py +++ b/test/test_menu.py @@ -41,6 +41,28 @@ def setUp(self): self.menu = PygameMenuUtils.generic_menu('mainmenu') self.menu.mainloop() + def test_enabled(self): + """ + Test menu enable/disable feature. + """ + menu = PygameMenuUtils.generic_menu() + self.assert_(menu.is_disabled()) + menu.enable() + self.assert_(menu.is_enabled()) + self.assert_(not menu.is_disabled()) + + # Intialize and close + menu.mainloop() + menu._close() + + def test_initialization(self): + """ + Test initialization of the menu. + """ + self.assert_(self.menu._check_menu_initialized()) + menu_not_initializated = PygameMenuUtils.generic_menu() + self.assertRaises(Exception, lambda: menu_not_initializated._check_menu_initialized()) + def test_depth(self): """ Test depth of a menu. diff --git a/test/test_sound.py b/test/test_sound.py index e5fa5e1a..fd0f99d1 100644 --- a/test/test_sound.py +++ b/test/test_sound.py @@ -77,3 +77,19 @@ def test_example_sounds(self): self.sound.play_key_add() self.sound.play_key_del() self.sound.play_open_menu() + + def test_sound_menu(self): + """ + Test sounds in menu. + """ + menu = PygameMenuUtils.generic_menu() + submenu = PygameMenuUtils.generic_menu() + + menu.add_option('submenu', submenu) + button = menu.add_option('button', lambda: None) + menu.set_sound(self.sound, True) + self.assertEqual(button.sound, self.sound) + + # This will remove the sound engine + menu.set_sound(None, True) + self.assertNotEqual(button.sound, self.sound)