Mercurial > pygame
view test/base_test.py @ 3172:d1b367fc08bc tests-returncode
Use a return code of 1 when the tests fail.
| author | Thomas Kluyver <takowl@gmail.com> |
|---|---|
| date | Wed, 09 Jan 2013 10:13:57 +0000 |
| parents | 8a716cbc3db8 |
| children |
line wrap: on
line source
if __name__ == '__main__': import sys import os pkg_dir = os.path.split(os.path.abspath(__file__))[0] parent_dir, pkg_name = os.path.split(pkg_dir) is_pygame_pkg = (pkg_name == 'tests' and os.path.split(parent_dir)[1] == 'pygame') if not is_pygame_pkg: sys.path.insert(0, parent_dir) else: is_pygame_pkg = __name__.startswith('pygame.tests.') if is_pygame_pkg: from pygame.tests.test_utils import test_not_implemented, unittest else: from test.test_utils import test_not_implemented, unittest import pygame import sys init_called = quit_called = 0 def __PYGAMEinit__(): #called automatically by pygame.init() global init_called init_called = init_called + 1 pygame.register_quit(pygame_quit) def pygame_quit(): global quit_called quit_called = quit_called + 1 quit_hook_ran = 0 def quit_hook(): global quit_hook_ran quit_hook_ran = 1 class BaseModuleTest(unittest.TestCase): def testAutoInit(self): pygame.init() pygame.quit() self.assertEqual(init_called, 1) self.assertEqual(quit_called, 1) def test_get_sdl_byteorder(self): # __doc__ (as of 2008-06-25) for pygame.base.get_sdl_byteorder: # pygame.get_sdl_byteorder(): return int # get the byte order of SDL self.assert_(pygame.get_sdl_byteorder() + 1) def test_get_sdl_version(self): # __doc__ (as of 2008-06-25) for pygame.base.get_sdl_version: # pygame.get_sdl_version(): return major, minor, patch # get the version number of SDL self.assert_( len(pygame.get_sdl_version()) == 3) def not_init_assertions(self): self.assert_(not pygame.display.get_init(), "display shouldn't be initialized" ) if 'pygame.mixer' in sys.modules: self.assert_(not pygame.mixer.get_init(), "mixer shouldn't be initialized" ) if 'pygame.font' in sys.modules: self.assert_(not pygame.font.get_init(), "init shouldn't be initialized" ) ## !!! TODO : Remove when scrap works for OS X import platform if platform.system().startswith('Darwin'): return try: self.assertRaises(pygame.error, pygame.scrap.get) except NotImplementedError: # Scrap is optional. pass # pygame.cdrom # pygame.joystick def init_assertions(self): self.assert_(pygame.display.get_init()) if 'pygame.mixer' in sys.modules: self.assert_(pygame.mixer.get_init()) if 'pygame.font' in sys.modules: self.assert_(pygame.font.get_init()) def test_quit__and_init(self): # __doc__ (as of 2008-06-25) for pygame.base.quit: # pygame.quit(): return None # uninitialize all pygame modules # Make sure everything is not init self.not_init_assertions() # Initiate it pygame.init() # Check self.init_assertions() # Quit pygame.quit() # All modules have quit self.not_init_assertions() def test_register_quit(self): # __doc__ (as of 2008-06-25) for pygame.base.register_quit: # register_quit(callable): return None # register a function to be called when pygame quits self.assert_(not quit_hook_ran) pygame.init() pygame.register_quit(quit_hook) pygame.quit() self.assert_(quit_hook_ran) def test_get_error(self): # __doc__ (as of 2008-08-02) for pygame.base.get_error: # pygame.get_error(): return errorstr # get the current error message # # SDL maintains an internal error message. This message will usually # be given to you when pygame.error is raised. You will rarely need to # call this function. # self.assertEqual(pygame.get_error(), "") pygame.set_error("hi") self.assertEqual(pygame.get_error(), "hi") pygame.set_error("") self.assertEqual(pygame.get_error(), "") def test_set_error(self): self.assertEqual(pygame.get_error(), "") pygame.set_error("hi") self.assertEqual(pygame.get_error(), "hi") pygame.set_error("") self.assertEqual(pygame.get_error(), "") def test_init(self): # __doc__ (as of 2008-08-02) for pygame.base.init: # pygame.init(): return (numpass, numfail) # initialize all imported pygame modules # # Initialize all imported Pygame modules. No exceptions will be raised # if a module fails, but the total number if successful and failed # inits will be returned as a tuple. You can always initialize # individual modules manually, but pygame.init is a convenient way to # get everything started. The init() functions for individual modules # will raise exceptions when they fail. # # You may want to initalise the different modules seperately to speed # up your program or to not use things your game does not. # # It is safe to call this init() more than once: repeated calls will # have no effect. This is true even if you have pygame.quit() all the # modules. # # Make sure everything is not init self.not_init_assertions() # Initiate it pygame.init() # Check self.init_assertions() # Quit pygame.quit() # All modules have quit self.not_init_assertions() def todo_test_segfault(self): # __doc__ (as of 2008-08-02) for pygame.base.segfault: # crash self.fail() if __name__ == '__main__': unittest.main()
