mirror of
				https://github.com/python/cpython.git
				synced 2025-11-04 07:31:38 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			120 lines
		
	
	
	
		
			2.2 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			120 lines
		
	
	
	
		
			2.2 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
# -*- 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:
 | 
						|
 | 
						|
ЉЊЈЁЂ
 | 
						|
 | 
						|
"""
 | 
						|
 | 
						|
from test import test_support
 | 
						|
 | 
						|
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()
 |