File: test_sound_formats.py

package info (click to toggle)
pgzero 1.2.post4%2Bdfsg-2
  • links: PTS, VCS
  • area: main
  • in suites: bookworm, bullseye
  • size: 2,980 kB
  • sloc: python: 4,273; makefile: 166
file content (81 lines) | stat: -rw-r--r-- 2,619 bytes parent folder | download | duplicates (2)
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
import sys
from unittest import TestCase, expectedFailure, skip
import pygame
from pgzero.loaders import sounds, set_root, UnsupportedFormat

pygame.init()


class SoundFormatsTest(TestCase):
    """Test that sound formats we cannot open show an appropriate message."""
    @classmethod
    def setUpClass(self):
        set_root(__file__)

    def assert_loadable(self, name):
        s = sounds.load(name)
        l = s.get_length()

        assert 0.85 < l < 1.0, \
            "Failed to correctly load sound (got length %0.1fs)" % l

    def assert_errmsg(self, name, pattern):
        with self.assertRaisesRegex(UnsupportedFormat, pattern):
            sounds.load(name)

    def test_load_22k16bitpcm(self):
        self.assert_loadable('wav22k16bitpcm')

    def test_load_22k8bitpcm(self):
        self.assert_loadable('wav22k8bitpcm')

    def test_load_22kadpcm(self):
        self.assert_loadable('wav22kadpcm')

    @expectedFailure  # See issue #22 - 8Khz files don't open correctly
    def test_load_8k16bitpcm(self):
        self.assert_loadable('wav8k16bitpcm')

    @expectedFailure  # See issue #22 - 8Khz files don't open correctly
    def test_load_8k8bitpcm(self):
        self.assert_loadable('wav8k8bitpcm')

    @expectedFailure  # See issue #22 - 8Khz files don't open correctly
    def test_load_8kadpcm(self):
        self.assert_loadable('wav8kadpcm')

    @skip(
        'This test crashes - reported upstream as '
        'https://github.com/pygame/pygame/issues/406'
    )
    def test_load_11kgsm(self):
        self.assert_errmsg('wav22kgsm', 'WAV audio encoded as GSM')

    @skip(
        'This test crashes - reported upstream as '
        'https://github.com/pygame/pygame/issues/406'
    )
    def test_load_11kulaw(self):
        self.assert_errmsg('wav22kulaw', 'WAV audio encoded as .* ยต-law')

    @skip(
        'This test crashes - reported upstream as '
        'https://github.com/pygame/pygame/issues/406'
    )
    def test_load_8kmp316(self):
        self.assert_errmsg('wav8kmp316', 'WAV audio encoded as MP3')

    @skip(
        'This test crashes - reported upstream as '
        'https://github.com/pygame/pygame/issues/406'
    )
    def test_load_8kmp38(self):
        self.assert_errmsg('wav8kmp38', 'WAV audio encoded as MP3')

    def test_load_vorbis1(self):
        """Load OGG Vorbis with .ogg extension."""
        self.assert_loadable('vorbis1')

    def test_load_vorbis2(self):
        """Load OGG Vorbis with .oga extension."""
        self.assert_loadable('vorbis2')