Skip to content

doctest

Зачем нужно?

Для простых тестов

def format_phone(phone):
    """  
    >>> format_phone('79852489052')  
    '+7 (985) 248-90-52'    
    """
    return '+{} ({}) {}-{}-{}'.format(
        phone[0], phone[1:4], phone[4:7], phone[7:9], phone[9:11],
    )

Как сделать многострочный тест?

Создание классов, циклы, методы - используем ...

>>> contract_info = Mock(  
...     contract_number="SAM/2016/1-1",  
...     contract_date=dt.datetime(2021, 1, 1),  
...     app_name="Sample"  
... )
>>> contract_info.app_name
'Sample'

Как тестировать исключения?

Используем ...

>>> validate_phone("")  
Traceback (most recent call last):  
...  
phonenumbers.phonenumberutil.NumberParseException: (1) The string supplied did not seem to be a phone number.

Как заигнорить тест?

# doctest:+SKIP

>>> random_permutation(range(5))  # doctest:+SKIP  
(3, 4, 0, 1, 2)