在python中,为什么mock_calls在调试模式下运行时调用.__ str __()调用的次数不一致?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在python中,为什么mock_calls在调试模式下运行时调用.__ str __()调用的次数不一致?相关的知识,希望对你有一定的参考价值。

我创建了一个python测试,我正在模拟日志记录功能。然后我测试以确保loccking_mock.mock_calls的数量是我的预期。

我正在使用pycharm。当我运行代码时,测试通过,但是当我调试它时(在我的assert语句的行中有一个断点),它没有通过,而logging_mock.mock_calls包含许多意外的调用.__ str __()调用。列出的呼叫.__ str __()呼叫的数量每次都不同。

在调试过程中,我注释掉了main方法中的所有功能,但我仍然遇到了这个问题。这是仍然给我这个问题的代码:

@mock.patch('app.helpers.logging')
def test_main(self, logging_mock):
    """
    Test the main method
    """
    main()

    self.assertEqual(0, len(logging_mock.mock_calls))

这是我的空主:

def main():
    pass

当我在调试器中运行时,为什么会有不同数量的调用.__ str __()调用?

答案

对你来说可能为时已晚,但对于其他任何绊倒的人来说。调试器中的某些东西是在应用程序中的日志对象上调用字符串,这被模拟为call()。str()。我也看到了这个我忘记在模拟上正确设置return_value并记录模拟调用的输出的地方。

以上是关于在python中,为什么mock_calls在调试模式下运行时调用.__ str __()调用的次数不一致?的主要内容,如果未能解决你的问题,请参考以下文章

在 python 中调试 argpars

python 为啥不能一步步手动调试?

如何在 python *.py 之前使用命令在 pycharm 中调试?

delphi中怎么调试

python debug怎么用

用PDB库调试Python程序