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')
|