mirror of
				https://github.com/python/cpython.git
				synced 2025-10-30 18:07:37 +00:00 
			
		
		
		
	 408b6d34de
			
		
	
	
		408b6d34de
		
	
	
	
	
		
			
			imports of test modules now import from the test package. Other related oddities are also fixed (like DeprecationWarning filters that weren't specifying the full import part, etc.). Also did a general code cleanup to remove all "from test.test_support import *"'s. Other from...import *'s weren't changed.
		
			
				
	
	
		
			108 lines
		
	
	
	
		
			2 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			108 lines
		
	
	
	
		
			2 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
| """A module to test whether doctest recognizes some 2.2 features,
 | |
| like static and class methods.
 | |
| 
 | |
| >>> print 'yup'  # 1
 | |
| yup
 | |
| """
 | |
| 
 | |
| from test import test_support
 | |
| 
 | |
| class C(object):
 | |
|     """Class C.
 | |
| 
 | |
|     >>> print C()  # 2
 | |
|     42
 | |
|     """
 | |
| 
 | |
|     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
 | |
|         """)
 | |
| 
 | |
|     def statm():
 | |
|         """
 | |
|         A static method.
 | |
| 
 | |
|         >>> print C.statm()    # 16
 | |
|         666
 | |
|         >>> print C().statm()  # 17
 | |
|         666
 | |
|         """
 | |
|         return 666
 | |
| 
 | |
|     statm = staticmethod(statm)
 | |
| 
 | |
|     def clsm(cls, val):
 | |
|         """
 | |
|         A class method.
 | |
| 
 | |
|         >>> print C.clsm(22)    # 18
 | |
|         22
 | |
|         >>> print C().clsm(23)  # 19
 | |
|         23
 | |
|         """
 | |
|         return val
 | |
| 
 | |
|     clsm = classmethod(clsm)
 | |
| 
 | |
| 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()
 |