Можно ли протестировать функцию, которая использует get_type_hints с doctest? - PullRequest
0 голосов
/ 01 мая 2019

У меня есть функция, которая использует typing.get_type_hints. Я хочу добавить документацию теста к нему. Однако, похоже, что get_type_hints не может разрешить типы, определенные в тестовом документе.

Вот упрощенный пример:

import typing

def f(clazz):
    """
    >>> class MyClass:
    ...   my_field: 'MyClass'
    >>> f(MyClass)
    """
    typing.get_type_hints(clazz)

При запуске с python3 -m doctest test.py выдается NameError: name 'MyClass' is not defined.

1 Ответ

1 голос
/ 01 мая 2019
from __future__ import annotations

import typing


def f(clazz):
    """
    >>> test = 1
    >>> class MyClass:
    ...   my_field:'MyClass'
    >>> f(MyClass)
    """
    typing.get_type_hints(clazz)

добавить from __future__ import annotations в начале файла, у меня это работает на python3.7

...