import os import sys if __name__ == '__main__': 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.') import unittest if is_pygame_pkg: from pygame.tests.test_utils import example_path else: from test.test_utils import example_path import pygame, pygame.image, pygame.pkgdata from pygame.compat import as_unicode, unicode_ imageext = sys.modules['pygame.imageext'] import os.path class ImageextModuleTest( unittest.TestCase ): # Most of the testing is done indirectly through image_test.py # This just confirms file path encoding and error handling. def test_save_non_string_file(self): im = pygame.Surface((10, 10), 0, 32) self.assertRaises(TypeError, imageext.save_extended, im, []) def test_load_non_string_file(self): self.assertRaises(pygame.error, imageext.load_extended, []) def test_save_bad_filename(self): im = pygame.Surface((10, 10), 0, 32) u = as_unicode(r"a\x00b\x00c.png") self.assertRaises(pygame.error, imageext.save_extended, im, u) def test_load_bad_filename(self): u = as_unicode(r"a\x00b\x00c.png") self.assertRaises(pygame.error, imageext.load_extended, u) def test_save_unknown_extension(self): im = pygame.Surface((10, 10), 0, 32) s = "foo.bar" self.assertRaises(pygame.error, imageext.save_extended, im, s) def test_load_unknown_extension(self): s = "foo.bar" self.assertRaises(pygame.error, imageext.load_extended, s) def test_load_unicode_path(self): u = unicode_(example_path("data/alien1.png")) im = imageext.load_extended(u) def test_save_unicode_path(self): temp_file = unicode_("tmpimg.png") im = pygame.Surface((10, 10), 0, 32) try: os.remove(temp_file) except EnvironmentError: pass self.assert_(not os.path.exists(temp_file)) try: imageext.save_extended(im, temp_file) self.assert_(os.path.getsize(temp_file) > 10) finally: try: os.remove(temp_file) except EnvironmentError: pass if __name__ == '__main__': unittest.main()