~ubuntu-branches/ubuntu/maverick/pygame/maverick

« back to all changes in this revision

Viewing changes to configtest/test_dll.py

  • Committer: Bazaar Package Importer
  • Author(s): Sebastien Bacher
  • Date: 2010-01-14 17:02:11 UTC
  • mfrom: (1.3.1 upstream)
  • Revision ID: james.westby@ubuntu.com-20100114170211-21eop2ja7mr9vdcr
Tags: 1.9.1release-0ubuntu1
* New upstream version (lp: #433304)
* debian/control:
  - build-depends on libportmidi-dev

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
# program test_dll.py
2
 
 
3
 
"""A unit test on the dll.py module that confirms file matching patterns"""
4
 
 
5
 
import sys
6
 
 
7
 
sys.path.append('..')
8
 
 
9
 
import dll
10
 
 
11
 
import unittest
12
 
 
13
 
class MatchTestCase(unittest.TestCase):
14
 
 
15
 
    test_cases = [
16
 
        ('SDL', ['SDL.dll', 'sdl.DLL', 'libsdl.dll'], ['sdl.dll.a']),
17
 
        ('MIXER', ['SDL_mixer.dll', 'sdl_MIXER.DLL', 'libsdl_mixer.dll'], ['sdl_mixer.dll.a']),
18
 
        ('IMAGE', ['SDL_image.dll', 'sdl_IMAGE.DLL', 'libsdl_image.dll'], ['sdl_image.dll.a']),
19
 
        ('FONT', ['SDL_ttf.dll', 'sdl_TTF.DLL', 'libsdl_ttf.dll'], ['sdl_ttf.dll.a']),
20
 
        ('SMPEG', ['smpeg.dll', 'SMPEG.DLL', 'libsmpeg.dll'], ['smpeg.dll.a']),
21
 
        ('TIFF', ['tiff.dll', 'TIFF.DLL', 'libtiff.dll'], ['tiff.dll.a']),
22
 
        ('JPEG', ['jpeg.dll', 'JPEG.DLL', 'libjpeg.dll'], ['jpeg.dll.a']),
23
 
        ('PNG', ['libpng13.dll', 'LIBPNG13.DLL', 'libpng12.dll', 'png12.dll', 'png13.dll'],
24
 
                ['libpng.dll', 'libpng13.dll.a']),
25
 
        ('Z', ['zlib1.dll', 'ZLIB1.DLL'], ['z.dll', 'libzlib1.dll', 'zlib1.dll.a']),
26
 
        ('VORBIS', ['vorbis.dll', 'VORBIS.DLL', 'libvorbis-0.dll'], ['libvorbis-1.dll', 'libvorbis-0.dll.a']),
27
 
        ('VORBISFILE', ['vorbisfile.dll', 'VORBISFILE.DLL', 'libvorbisfile-3.dll'],
28
 
                       ['libvorbisfile-0.dll', 'libvorbisfile-3.dll.a']),
29
 
        ('OGG', ['ogg.dll', 'OGG.DLL', 'libogg-0.dll'], ['libogg-1.dll', 'libogg-0.dll.a']),
30
 
        ]
31
 
 
32
 
    def test_compat(self):
33
 
        """Validate the test cases"""
34
 
        self.failUnlessEqual(len(self.test_cases), len(dll.regexs))
35
 
        for name, valid_files, invalid_files in self.test_cases:
36
 
            self.failUnless(name in  dll.regexs, name)
37
 
 
38
 
    def test_match(self):
39
 
        """Ensure certain file names match"""
40
 
        for name, valid_files, invalid_files in self.test_cases:
41
 
            test = dll.tester(name)
42
 
            for f in valid_files:
43
 
                self.failUnless(test(f), f)
44
 
 
45
 
    def test_failed_match(self):
46
 
        """Ensure certain file names do not match"""
47
 
        for name, valid_files, invalid_files in self.test_cases:
48
 
            test = dll.tester(name)
49
 
            for f in invalid_files:
50
 
                self.failUnless(not test(f), f)
51
 
 
52
 
class DependencyLookupTestCase(unittest.TestCase):
53
 
    def test_no_dependencies(self):
54
 
        """Ensure no dependencies are returned for a library with non"""
55
 
        self.failUnlessEqual(list(dll.dependencies(['SDL'])), ['SDL'])
56
 
 
57
 
    def test_not_found(self):
58
 
        """Ensure an empty dependency list is returned for an unrecognized library"""
59
 
        self.failUnless(not dll.dependencies(['?']))
60
 
 
61
 
    def test_multiple_dependencies(self):
62
 
        """Ensure dependencies are recursively traced"""
63
 
        expected_libs = ['vorbisfile', 'vorbis', 'ogg']
64
 
        libs = dll.dependencies(['vorbisfile'])
65
 
        self.failUnlessEqual(len(libs), len(expected_libs))
66
 
        for lib in expected_libs:
67
 
            self.failUnless(lib in libs)
68
 
 
69
 
    def test_multiple_libs(self):
70
 
        """Ensure mutliple libraries in a list are handled"""
71
 
        expected_libs = ['SDL', 'z']  # Chosen for not having dependencies
72
 
        libs = dll.dependencies(expected_libs)
73
 
        self.failUnlessEqual(len(libs), len(expected_libs))
74
 
        for lib in expected_libs:
75
 
            self.failUnless(lib in libs)
76
 
 
77
 
    def test_no_libs(self):
78
 
        """Check special case of an empty library list"""
79
 
        self.failUnless(not dll.dependencies([]))
80
 
 
81
 
class RootNameLookupTestCase(unittest.TestCase):
82
 
    def test_found(self):
83
 
        """Ensure name -> file root name works for at least one case"""
84
 
        self.failUnlessEqual(dll.name_to_root('FONT'), 'SDL_ttf')
85
 
 
86
 
    def test_not_found(self):
87
 
        """Ensure an exception is raised for an unrecognized name"""
88
 
        def test():
89
 
            dll.name_to_root('*')
90
 
        self.failUnlessRaises(KeyError, test)
91
 
        
92
 
if __name__ == '__main__':
93
 
    unittest.main()