mirror of
				https://github.com/python/cpython.git
				synced 2025-10-26 11:14:33 +00:00 
			
		
		
		
	 e8f583244a
			
		
	
	
		e8f583244a
		
	
	
	
	
		
			
			importing encoded modules that do not depend on specific stdlib modules being encoded in a certain way.
		
			
				
	
	
		
			123 lines
		
	
	
	
		
			2.3 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			123 lines
		
	
	
	
		
			2.3 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
| """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 support
 | |
| if sys.flags.optimize >= 2:
 | |
|     raise unittest.SkipTest("Cannot test docstrings with -O2")
 | |
| 
 | |
| class C(object):
 | |
|     """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 = support.run_doctest(test_doctest2)
 | |
|     if t != EXPECTED:
 | |
|         raise 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()
 |