模拟Numpy结构化数组



我正试图弄清楚如何模拟一个numpy结构化数组,但运气不佳。理想情况下,我想做这样的事情:

from mock import MagicMock
mock_obj = MagicMock()
mock_obj['some']['test']['structure'] = 3
assert 3 ==  mock_obj['some']['test']['structure']

我知道如何使用side_effect模拟单个字典,但还没有弄清楚如何对任意嵌套的__getitem____setitem__函数进行模拟。

编辑:

以下是一些上下文:

def function(self): 
    arr = self.my_structured_array['get']['some']['array']
    #Make decisions based on return value of arr

通过这种方式,我可以用一些垃圾值来模拟对象self.my_structured_array,以测试其他逻辑。重点是dictionary对象实际上与h5py库绑定,因此我想模拟它。

我相信我找到了解决方案。它看起来有点蹩脚,但这是我能买到的壁橱:

from mock import MagicMock
mock_obj = MagicMock()
mock_obj.__getitem__().__getitem__().__getitem__.return_value = 3
assert 3 ==  mock_obj['some']['test']['structure']

我真正看到的唯一问题是它不适用于多个级别。即CCD_ 5返回模拟对象而不是3。

相关内容

  • 没有找到相关文章

最新更新