Skip to content

Commit df2313c

Browse files
committed
Add unittest lib files
1 parent 2613ee4 commit df2313c

39 files changed

+19433
-0
lines changed

Lib/unittest/__init__.py

Lines changed: 78 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,78 @@
1+
"""
2+
Python unit testing framework, based on Erich Gamma's JUnit and Kent Beck's
3+
Smalltalk testing framework (used with permission).
4+
5+
This module contains the core framework classes that form the basis of
6+
specific test cases and suites (TestCase, TestSuite etc.), and also a
7+
text-based utility class for running the tests and reporting the results
8+
(TextTestRunner).
9+
10+
Simple usage:
11+
12+
import unittest
13+
14+
class IntegerArithmeticTestCase(unittest.TestCase):
15+
def testAdd(self): # test method names begin with 'test'
16+
self.assertEqual((1 + 2), 3)
17+
self.assertEqual(0 + 1, 1)
18+
def testMultiply(self):
19+
self.assertEqual((0 * 10), 0)
20+
self.assertEqual((5 * 8), 40)
21+
22+
if __name__ == '__main__':
23+
unittest.main()
24+
25+
Further information is available in the bundled documentation, and from
26+
27+
http://docs.python.org/library/unittest.html
28+
29+
Copyright (c) 1999-2003 Steve Purcell
30+
Copyright (c) 2003-2010 Python Software Foundation
31+
This module is free software, and you may redistribute it and/or modify
32+
it under the same terms as Python itself, so long as this copyright message
33+
and disclaimer are retained in their original form.
34+
35+
IN NO EVENT SHALL THE AUTHOR BE LIABLE TO ANY PARTY FOR DIRECT, INDIRECT,
36+
SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OF
37+
THIS CODE, EVEN IF THE AUTHOR HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
38+
DAMAGE.
39+
40+
THE AUTHOR SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, BUT NOT
41+
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
42+
PARTICULAR PURPOSE. THE CODE PROVIDED HEREUNDER IS ON AN "AS IS" BASIS,
43+
AND THERE IS NO OBLIGATION WHATSOEVER TO PROVIDE MAINTENANCE,
44+
SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
45+
"""
46+
47+
__all__ = ['TestResult', 'TestCase', 'TestSuite',
48+
'TextTestRunner', 'TestLoader', 'FunctionTestCase', 'main',
49+
'defaultTestLoader', 'SkipTest', 'skip', 'skipIf', 'skipUnless',
50+
'expectedFailure', 'TextTestResult', 'installHandler',
51+
'registerResult', 'removeResult', 'removeHandler']
52+
53+
# Expose obsolete functions for backwards compatibility
54+
__all__.extend(['getTestCaseNames', 'makeSuite', 'findTestCases'])
55+
56+
__unittest = True
57+
58+
from .result import TestResult
59+
from .case import (TestCase, FunctionTestCase, SkipTest, skip, skipIf,
60+
skipUnless, expectedFailure)
61+
from .suite import BaseTestSuite, TestSuite
62+
from .loader import (TestLoader, defaultTestLoader, makeSuite, getTestCaseNames,
63+
findTestCases)
64+
from .main import TestProgram, main
65+
from .runner import TextTestRunner, TextTestResult
66+
from .signals import installHandler, registerResult, removeResult, removeHandler
67+
68+
# deprecated
69+
_TextTestResult = TextTestResult
70+
71+
# There are no tests here, so don't try to run anything discovered from
72+
# introspecting the symbols (e.g. FunctionTestCase). Instead, all our
73+
# tests come from within unittest.test.
74+
def load_tests(loader, tests, pattern):
75+
import os.path
76+
# top level directory cached on loader instance
77+
this_dir = os.path.dirname(__file__)
78+
return loader.discover(start_dir=this_dir, pattern=pattern)

Lib/unittest/__main__.py

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
"""Main entry point"""
2+
3+
import sys
4+
if sys.argv[0].endswith("__main__.py"):
5+
import os.path
6+
# We change sys.argv[0] to make help message more useful
7+
# use executable without path, unquoted
8+
# (it's just a hint anyway)
9+
# (if you have spaces in your executable you get what you deserve!)
10+
executable = os.path.basename(sys.executable)
11+
sys.argv[0] = executable + " -m unittest"
12+
del os
13+
14+
__unittest = True
15+
16+
from .main import main
17+
18+
main(module=None)

0 commit comments

Comments
 (0)