Remove *_played_dbus from config
[gpodder.git] / src / gpodder / unittests.py
blobe8cf326b4827914b96881703c2591882d7423397
1 # -*- coding: utf-8 -*-
3 # gPodder - A media aggregator and podcast client
4 # Copyright (c) 2005-2011 Thomas Perl and the gPodder Team
6 # gPodder is free software; you can redistribute it and/or modify
7 # it under the terms of the GNU General Public License as published by
8 # the Free Software Foundation; either version 3 of the License, or
9 # (at your option) any later version.
11 # gPodder is distributed in the hope that it will be useful,
12 # but WITHOUT ANY WARRANTY; without even the implied warranty of
13 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 # GNU General Public License for more details.
16 # You should have received a copy of the GNU General Public License
17 # along with this program. If not, see <http://www.gnu.org/licenses/>.
21 # Run Doctests and Unittests for gPodder modules
22 # 2009-02-25 Thomas Perl <thp@gpodder.org>
25 import doctest
26 import unittest
27 import sys
29 try:
30 # Unused here locally, but we import it to be able to give an early
31 # warning about this missing dependency in order to avoid bogus errors.
32 import minimock
33 except ImportError, e:
34 print >>sys.stderr, """
35 Error: Unit tests require the "minimock" module (python-minimock).
36 Please install it before running the unit tests.
37 """
38 sys.exit(2)
40 # Which package and which modules in the package should be tested?
41 package = 'gpodder'
42 modules = ['util']
43 coverage_modules = []
45 suite = unittest.TestSuite()
47 for module in modules:
48 m = __import__('.'.join((package, module)), fromlist=[module])
49 coverage_modules.append(m)
50 suite.addTest(doctest.DocTestSuite(m))
52 runner = unittest.TextTestRunner(verbosity=2)
54 try:
55 import coverage
56 except ImportError:
57 coverage = None
59 if coverage is not None:
60 coverage.erase()
61 coverage.start()
63 result = runner.run(suite)
65 if not result.wasSuccessful():
66 sys.exit(1)
68 if coverage is not None:
69 coverage.stop()
70 coverage.report(coverage_modules)
71 coverage.erase()
73 if coverage is None:
74 print >>sys.stderr, """
75 No coverage reporting done (Python module "coverage" is missing)
76 Please install the python-coverage package to get coverage reporting.
77 """