在unittest中使用补丁模块时,自动完成pycharm不起作用

时间:2019-09-20 16:38:00

标签: python autocomplete mocking pycharm

以下代码可以正常工作,这是模拟打印功能的非常简单的测试。问题是,当我调用mocked_print并希望使用方法 assert_Called_once_with 的自动完成 mocked_print 时,在编辑器的建议中没有出现。

Here's an image of the suggestions I get

环境:

  • Windows 10
  • PyCharm社区版2019.2.2
  • python 3.7.4.exe
import unittest
from unittest import mock

def print_something():
    print('Hello')

class TestFoo(unittest.TestCase):
    def test_print(self):
        with mock.patch('builtins.print') as mocked_print:
            print_something()
            mocked_print.assert_called_once_with("Hello")

1 个答案:

答案 0 :(得分:0)

您可以导航到public static void NthElement<T>(List<T> list, int startIndex, int nthSmallest, int endIndex) { while (startIndex < endIndex) { int left = startIndex; int right = endIndex; T mid = list[(left + right) / 2]; while (left < right) { if (Comparer<T>.Default.Compare(list[left], mid) > -1) { T tmp = list[right]; list[right] = list[left]; list[left] = tmp; right--; } else { left++; } } if (Comparer<T>.Default.Compare(list[left], mid) > 0) { left--; } if (nthSmallest <= left) { endIndex = left; } else { startIndex = left + 1; } } } 定义,并看到它被键入为没有mock.patch的{​​{1}}对象。

PyCharm使用typeshed中的存根作为_patch,因此似乎应该修改相应的存根。