File: imageext_test.py

package info (click to toggle)
pygame 2.6.1-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 42,624 kB
  • sloc: ansic: 66,926; python: 48,742; javascript: 1,153; objc: 224; sh: 121; makefile: 59; cpp: 25
file content (93 lines) | stat: -rw-r--r-- 2,852 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
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()