我通常使用code auto-formatter ^{
许多类的默认repr
使用单引号从Python交互输出打印。我知道doctest试图重现Python交互输出
有没有简单的方法让doctest匹配单引号或双引号
我知道一个选择是定制^{
代码示例
from dataclasses import dataclass
@dataclass
class SomeDataClass:
"""Contains a string."""
data: str
def get_some_dataclass(data: str) -> SomeDataClass:
"""Get a data class containing some specified data.
Returns:
Data class containing the data.
Examples:
>>> get_some_dataclass("hi")
SomeDataClass(data="hi")
"""
return SomeDataClass(data=data)
if __name__ == "__main__":
import doctest
doctest.testmod()
输出:
**********************************************************************
File "quote_or_apostrophe.py", line 23, in __main__.get_some_dataclass
Failed example:
get_some_dataclass("hi")
Expected:
SomeDataClass(data="hi")
Got:
SomeDataClass(data='hi')
**********************************************************************
版本
我通过pytest的doctest integration调用doctest
python==3.8.2
pytest==5.4.1
我想你可以用blacken-docs实现这一点,但我还没有看到这样的例子
以下方法之一:
blacken-docs
,这也避免了您自己去考虑它我会本能地选择第一个选项,因为感觉它能更好地解决问题,但我希望后一个选项更容易实现(不需要过多考虑这一点会更好)
不过,仔细研究一下,目前似乎不支持according to this issue,并且在某些代码上运行
blacken-docs
在>>>
doctest块中打印双引号__repr__
不会影响所述双引号我对这个问题以及它所链接的另一个问题的解释是
blacken-docs
不支持以下格式的代码块:我已尝试以建议的格式重写代码:
但这给了我
所以我不打算使用blacken文档或更详细的
.. code-block: python
格式,也许到时候它会得到支持相关问题 更多 >
编程相关推荐