Макет pyarrow.parquet с использованием патча - PullRequest
1 голос
/ 02 апреля 2019

Можно ли издеваться над декларацией 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 голосов
/ 02 апреля 2019

Целью патча является имя, которое необходимо заменить. В этом случае, если паракет импортируется как pq, необходимо заменить pq.

Попробуйте что-то вроде

@patch("twilio_events.workers.pq")

Это немного объяснено в документации:

patch () работает (временно) изменяя объект, на который указывает имя, с другим. Может быть много имен, указывающих на какой-либо отдельный объект, поэтому для исправления необходимо убедиться, что вы исправили имя, используемое тестируемой системой.

Основной принцип заключается в том, что вы исправляете, где объект ищется, что не обязательно совпадает с местом, где он определен.

...