Imported Upstream version 1.1.2
[platform/upstream/python-nose.git] / functional_tests / test_namespace_pkg.py
1 import os
2 import sys
3 import unittest
4 from cStringIO import StringIO
5 from nose.core import TestProgram
6 from test_program import TestRunner
7
8 here = os.path.dirname(__file__)
9 support = os.path.join(here, 'support')
10
11 class TestNamespacePackages(unittest.TestCase):
12
13     def setUp(self):
14         self.cwd = os.getcwd()
15         self.orig_path = sys.path[:]
16         test_dir = os.path.join(support, 'namespace_pkg')
17         os.chdir(test_dir)
18         sys.path.append(os.path.join(test_dir, 'site-packages'))
19
20     def tearDown(self):
21         sys.path = self.orig_path
22         os.chdir(self.cwd)
23
24     def test_namespace_pkg(self):
25         """Ensure namespace packages work/can import from each other"""
26         stream = StringIO()
27         runner = TestRunner(stream=stream)
28         runner.verbosity = 2
29         prog = TestProgram(argv=[''],
30                            testRunner=runner,
31                            exit=False)
32         res = runner.result
33         self.assertEqual(res.testsRun, 1,
34                          "Expected to run 1 test, ran %s" % res.testsRun)
35         assert res.wasSuccessful()
36         assert not res.errors
37         assert not res.failures
38
39     def test_traverse_namespace(self):
40         """Ensure the --traverse-namespace option tests the other
41         namespace package sibling also.
42         """
43         stream = StringIO()
44         runner = TestRunner(stream=stream)
45         runner.verbosity = 2
46         prog = TestProgram(argv=['', '--traverse-namespace'],
47                            testRunner=runner,
48                            exit=False)
49         res = runner.result
50         self.assertEqual(res.testsRun, 2,
51                          "Expected to run 2 tests, ran %s" % res.testsRun)
52         assert res.wasSuccessful()
53         assert not res.errors
54         assert not res.failures
55
56
57 if __name__ == '__main__':
58     unittest.main()