Traktor/myenv/Lib/site-packages/pygame/tests/imageext_test.py

94 lines
2.8 KiB
Python
Raw Normal View History

2024-05-26 05:12:46 +02:00
import os
import os.path
import sys
import unittest
from pygame.tests.test_utils import example_path
import pygame, pygame.image, pygame.pkgdata
imageext = sys.modules["pygame.imageext"]
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(TypeError, imageext.load_extended, [])
@unittest.skip("SDL silently removes invalid characters")
def test_save_bad_filename(self):
im = pygame.Surface((10, 10), 0, 32)
u = "a\x00b\x00c.png"
self.assertRaises(pygame.error, imageext.save_extended, im, u)
@unittest.skip("SDL silently removes invalid characters")
def test_load_bad_filename(self):
u = "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(FileNotFoundError, imageext.load_extended, s)
def test_load_unknown_file(self):
s = "nonexistent.png"
self.assertRaises(FileNotFoundError, imageext.load_extended, s)
def test_load_unicode_path_0(self):
u = example_path("data/alien1.png")
im = imageext.load_extended(u)
def test_load_unicode_path_1(self):
"""non-ASCII unicode"""
import shutil
orig = example_path("data/alien1.png")
temp = os.path.join(example_path("data"), "你好.png")
shutil.copy(orig, temp)
try:
im = imageext.load_extended(temp)
finally:
os.remove(temp)
def _unicode_save(self, temp_file):
im = pygame.Surface((10, 10), 0, 32)
try:
with open(temp_file, "w") as f:
pass
os.remove(temp_file)
except OSError:
raise unittest.SkipTest("the path cannot be opened")
self.assertFalse(os.path.exists(temp_file))
try:
imageext.save_extended(im, temp_file)
self.assertGreater(os.path.getsize(temp_file), 10)
finally:
try:
os.remove(temp_file)
except OSError:
pass
def test_save_unicode_path_0(self):
"""unicode object with ASCII chars"""
self._unicode_save("temp_file.png")
def test_save_unicode_path_1(self):
self._unicode_save("你好.png")
if __name__ == "__main__":
unittest.main()