python - how - Doctest e importaciones relativas
unittest python 3 example (2)
Estoy teniendo problemas para usar doctest con importaciones relativas. La solución simple es simplemente deshacerse de las importaciones relativas. ¿Hay otros?
Digamos que tengo un paquete llamado ejemplo que contiene 2 archivos:
example/__init__.py
"""
This package is entirely useless.
>>> arnold = Aardvark()
>>> arnold.talk()
I am an aardvark.
"""
from .A import Aardvark
if __name__ == "__main__":
import doctest
doctest.testmod()
ejemplo / A.py
class Aardvark(object):
def talk(self):
print("I am an aardvark.")
Si ahora intento
python example/__init__.py
entonces me sale el error
Traceback (most recent call last):
File "example/__init__.py", line 8, in <module>
from .A import Aardvark
ValueError: Attempted relative import in non-package
Crea otro archivo my_doctest_runner.py
:
if __name__ == "__main__":
import doctest
import example
doctest.testmod(example)
Ejecute my_doctest_runner.py
para ejecutar doctests en el example/__init__.py
:
$ python2.7 my_doctest_runner.py
**********************************************************************
File "/tmp/example/__init__.py", line 4, in example
Failed example:
arnold.talk()
Expected:
I am an aaardvark.
Got:
I am an aardvark.
**********************************************************************
1 items had failures:
1 of 2 in example
***Test Failed*** 1 failures.
Solo haz
from A import Aardvark