You cannot select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
	
	
		
			93 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			Python
		
	
			
		
		
	
	
			93 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			Python
		
	
"""Tests for the ipdoctest machinery itself.
 | 
						|
 | 
						|
Note: in a file named test_X, functions whose only test is their docstring (as
 | 
						|
a doctest) and which have no test functionality of their own, should be called
 | 
						|
'doctest_foo' instead of 'test_foo', otherwise they get double-counted (the
 | 
						|
empty function call is counted as a test, which just inflates tests numbers
 | 
						|
artificially).
 | 
						|
"""
 | 
						|
 | 
						|
def doctest_simple():
 | 
						|
    """ipdoctest must handle simple inputs
 | 
						|
    
 | 
						|
    In [1]: 1
 | 
						|
    Out[1]: 1
 | 
						|
 | 
						|
    In [2]: print(1)
 | 
						|
    1
 | 
						|
    """
 | 
						|
 | 
						|
def doctest_multiline1():
 | 
						|
    """The ipdoctest machinery must handle multiline examples gracefully.
 | 
						|
 | 
						|
    In [2]: for i in range(4):
 | 
						|
       ...:     print(i)
 | 
						|
       ...:      
 | 
						|
    0
 | 
						|
    1
 | 
						|
    2
 | 
						|
    3
 | 
						|
    """
 | 
						|
 | 
						|
def doctest_multiline2():
 | 
						|
    """Multiline examples that define functions and print output.
 | 
						|
 | 
						|
    In [7]: def f(x):
 | 
						|
       ...:     return x+1
 | 
						|
       ...: 
 | 
						|
 | 
						|
    In [8]: f(1)
 | 
						|
    Out[8]: 2
 | 
						|
 | 
						|
    In [9]: def g(x):
 | 
						|
       ...:     print('x is:',x)
 | 
						|
       ...:      
 | 
						|
 | 
						|
    In [10]: g(1)
 | 
						|
    x is: 1
 | 
						|
 | 
						|
    In [11]: g('hello')
 | 
						|
    x is: hello
 | 
						|
    """
 | 
						|
 | 
						|
 | 
						|
def doctest_multiline3():
 | 
						|
    """Multiline examples with blank lines.
 | 
						|
 | 
						|
    In [12]: def h(x):
 | 
						|
       ....:     if x>1:
 | 
						|
       ....:         return x**2
 | 
						|
       ....:     # To leave a blank line in the input, you must mark it
 | 
						|
       ....:     # with a comment character:
 | 
						|
       ....:     #
 | 
						|
       ....:     # otherwise the doctest parser gets confused.
 | 
						|
       ....:     else:
 | 
						|
       ....:         return -1
 | 
						|
       ....:      
 | 
						|
 | 
						|
    In [13]: h(5)
 | 
						|
    Out[13]: 25
 | 
						|
 | 
						|
    In [14]: h(1)
 | 
						|
    Out[14]: -1
 | 
						|
 | 
						|
    In [15]: h(0)
 | 
						|
    Out[15]: -1
 | 
						|
   """
 | 
						|
 | 
						|
 | 
						|
def doctest_builtin_underscore():
 | 
						|
    """Defining builtins._ should not break anything outside the doctest
 | 
						|
    while also should be working as expected inside the doctest.
 | 
						|
 | 
						|
    In [1]: import builtins
 | 
						|
 | 
						|
    In [2]: builtins._ = 42
 | 
						|
 | 
						|
    In [3]: builtins._
 | 
						|
    Out[3]: 42
 | 
						|
 | 
						|
    In [4]: _
 | 
						|
    Out[4]: 42
 | 
						|
    """
 |