使用补丁模拟pyarrow.parquet

时间:2019-04-02 11:58:18

标签: python pyarrow

是否可以模拟声明import pyarrow.parquet as pq

我正在尝试将其模拟为:

@patch("twilio_events.workers.EngineDWH")
@patch("twilio_events.workers.pyarrow")
@patch("twilio_events.workers.s3fs")
def test_process_batch(s3fs, py, e):
    pass;

但是它抛出了一个异常Attribute Error....<workspace/myproject/twilio_events/workers.py'> does not have the attribute 'pyarrow'>

其他模拟也可以,只有这个会引发此异常:(。

有帮助吗?

1 个答案:

答案 0 :(得分:0)

修补程序的目标是需要替换的名称。在这种情况下,如果将实木复合地板导入为pq,则必须替换pq

尝试类似

@patch("twilio_events.workers.pq")

这是explained a bit in the docs:

  

patch()通过(临时)将名称指向的对象更改为另一个对象来工作。可以有许多名称指向任何单个对象,因此,要使修补程序起作用,必须确保修补受测系统使用的名称。

     

基本原理是您修补查找对象的位置,该对象不一定与定义对象的位置相同。