Add basic Index object based on libgit2.
[jelmer/dulwich-libgit2.git] / dulwich / tests / __init__.py
1 # __init__.py -- The tests for dulwich
2 # Copyright (C) 2007 James Westby <jw+debian@jameswestby.net>
3 #
4 # This program is free software; you can redistribute it and/or
5 # modify it under the terms of the GNU General Public License
6 # as published by the Free Software Foundation; version 2
7 # of the License or (at your option) any later version of
8 # the License.
9 #
10 # This program is distributed in the hope that it will be useful,
11 # but WITHOUT ANY WARRANTY; without even the implied warranty of
12 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13 # GNU General Public License for more details.
14 #
15 # You should have received a copy of the GNU General Public License
16 # along with this program; if not, write to the Free Software
17 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
18 # MA  02110-1301, USA.
19
20 """Tests for Dulwich."""
21
22 import unittest
23
24 try:
25     from testtools.testcase import TestCase
26 except ImportError:
27     from unittest import TestCase
28
29 try:
30     # If Python itself provides an exception, use that
31     from unittest import SkipTest as TestSkipped
32 except ImportError:
33     # Check if the nose exception can be used
34     try:
35         import nose
36     except ImportError:
37         try:
38             import testtools.testcase
39         except ImportError:
40             class TestSkipped(Exception):
41                 def __init__(self, msg):
42                     self.msg = msg
43         else:
44             TestSkipped = testtools.testcase.TestCase.skipException
45     else:
46         TestSkipped = nose.SkipTest
47         try:
48             import testtools.testcase
49         except ImportError:
50             pass
51         else:
52             # Make testtools use the same exception class as nose
53             testtools.testcase.TestCase.skipException = TestSkipped
54
55
56 def test_suite():
57     names = [
58         'client',
59         'fastexport',
60         'file',
61         'index',
62         'lru_cache',
63         'objects',
64         'object_store',
65         'pack',
66         'patch',
67         'protocol',
68         'repository',
69         'server',
70         'web',
71         ]
72     module_names = ['dulwich.tests.test_' + name for name in names]
73     result = unittest.TestSuite()
74     loader = unittest.TestLoader()
75     suite = loader.loadTestsFromNames(module_names)
76     result.addTests(suite)
77     return result