1# Copyright 2009 Google Inc. All Rights Reserved.
2#
3# Licensed under the Apache License, Version 2.0 (the "License");
4# you may not use this file except in compliance with the License.
5# You may obtain a copy of the License at
6#
7#      http://www.apache.org/licenses/LICENSE-2.0
8#
9# Unless required by applicable law or agreed to in writing, software
10# distributed under the License is distributed on an "AS IS" BASIS,
11# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12# See the License for the specific language governing permissions and
13# limitations under the License.
14
15"""A test suite that runs all tests for pyfakefs at once.
16Includes tests with external pathlib2 and scandir packages if installed."""
17
18import sys
19import unittest
20
21from pyfakefs.extra_packages import pathlib
22from pyfakefs.tests import dynamic_patch_test, fake_stat_time_test
23from pyfakefs.tests import fake_open_test
24from pyfakefs.tests import fake_os_test
25from pyfakefs.tests import example_test
26from pyfakefs.tests import fake_filesystem_glob_test
27from pyfakefs.tests import fake_filesystem_shutil_test
28from pyfakefs.tests import fake_filesystem_test
29from pyfakefs.tests import fake_filesystem_unittest_test
30from pyfakefs.tests import fake_tempfile_test
31from pyfakefs.tests import fake_filesystem_vs_real_test
32from pyfakefs.tests import mox3_stubout_test
33
34if pathlib:
35    from pyfakefs.tests import fake_pathlib_test
36
37
38class AllTests(unittest.TestSuite):
39    """A test suite that runs all tests for pyfakefs at once."""
40
41    def suite(self):  # pylint: disable-msg=C6409
42        loader = unittest.defaultTestLoader
43        self.addTests([
44            loader.loadTestsFromModule(fake_filesystem_test),
45            loader.loadTestsFromModule(fake_filesystem_glob_test),
46            loader.loadTestsFromModule(fake_filesystem_shutil_test),
47            loader.loadTestsFromModule(fake_os_test),
48            loader.loadTestsFromModule(fake_stat_time_test),
49            loader.loadTestsFromModule(fake_open_test),
50            loader.loadTestsFromModule(fake_tempfile_test),
51            loader.loadTestsFromModule(fake_filesystem_vs_real_test),
52            loader.loadTestsFromModule(fake_filesystem_unittest_test),
53            loader.loadTestsFromModule(example_test),
54            loader.loadTestsFromModule(mox3_stubout_test),
55            loader.loadTestsFromModule(dynamic_patch_test),
56        ])
57        if pathlib:
58            self.addTests([
59                loader.loadTestsFromModule(fake_pathlib_test)
60            ])
61        return self
62
63
64if __name__ == '__main__':
65    result = unittest.TextTestRunner(verbosity=2).run(AllTests().suite())
66    sys.exit(int(not result.wasSuccessful()))
67