summaryrefslogtreecommitdiff
path: root/lib/python2.7/test/test_doctest2.py
diff options
context:
space:
mode:
Diffstat (limited to 'lib/python2.7/test/test_doctest2.py')
-rw-r--r--lib/python2.7/test/test_doctest2.py124
1 files changed, 124 insertions, 0 deletions
diff --git a/lib/python2.7/test/test_doctest2.py b/lib/python2.7/test/test_doctest2.py
new file mode 100644
index 0000000..8c043ba
--- /dev/null
+++ b/lib/python2.7/test/test_doctest2.py
@@ -0,0 +1,124 @@
+# -*- coding: utf-8 -*-
+u"""A module to test whether doctest recognizes some 2.2 features,
+like static and class methods.
+
+>>> print 'yup' # 1
+yup
+
+We include some (random) encoded (utf-8) text in the text surrounding
+the example. It should be ignored:
+
+ЉЊЈЁЂ
+
+"""
+
+import sys
+import unittest
+from test import test_support
+if sys.flags.optimize >= 2:
+ raise unittest.SkipTest("Cannot test docstrings with -O2")
+
+class C(object):
+ u"""Class C.
+
+ >>> print C() # 2
+ 42
+
+
+ We include some (random) encoded (utf-8) text in the text surrounding
+ the example. It should be ignored:
+
+ ЉЊЈЁЂ
+
+ """
+
+ def __init__(self):
+ """C.__init__.
+
+ >>> print C() # 3
+ 42
+ """
+
+ def __str__(self):
+ """
+ >>> print C() # 4
+ 42
+ """
+ return "42"
+
+ class D(object):
+ """A nested D class.
+
+ >>> print "In D!" # 5
+ In D!
+ """
+
+ def nested(self):
+ """
+ >>> print 3 # 6
+ 3
+ """
+
+ def getx(self):
+ """
+ >>> c = C() # 7
+ >>> c.x = 12 # 8
+ >>> print c.x # 9
+ -12
+ """
+ return -self._x
+
+ def setx(self, value):
+ """
+ >>> c = C() # 10
+ >>> c.x = 12 # 11
+ >>> print c.x # 12
+ -12
+ """
+ self._x = value
+
+ x = property(getx, setx, doc="""\
+ >>> c = C() # 13
+ >>> c.x = 12 # 14
+ >>> print c.x # 15
+ -12
+ """)
+
+ @staticmethod
+ def statm():
+ """
+ A static method.
+
+ >>> print C.statm() # 16
+ 666
+ >>> print C().statm() # 17
+ 666
+ """
+ return 666
+
+ @classmethod
+ def clsm(cls, val):
+ """
+ A class method.
+
+ >>> print C.clsm(22) # 18
+ 22
+ >>> print C().clsm(23) # 19
+ 23
+ """
+ return val
+
+def test_main():
+ from test import test_doctest2
+ EXPECTED = 19
+ f, t = test_support.run_doctest(test_doctest2)
+ if t != EXPECTED:
+ raise test_support.TestFailed("expected %d tests to run, not %d" %
+ (EXPECTED, t))
+
+# Pollute the namespace with a bunch of imported functions and classes,
+# to make sure they don't get tested.
+from doctest import *
+
+if __name__ == '__main__':
+ test_main()