셀러리 작업에 의해 호출 된 함수는 단위 테스트에서 패치 될 때 호출이 없습니까?

커트 픽

다음 tasks.py모듈을 고려하십시오 ( http://docs.celeryproject.org/en/latest/getting-started/first-steps-with-celery.html#first-steps 에서 수정 됨 ).

import logging
import sys

from celery import Celery

app = Celery('tasks', broker='pyamqp://guest@localhost//')


@app.task
def add(x, y):
    logging.info(f"Adding {x} and {y}...")
    return x + y


def call_add(x, y):
    add.delay(x, y)

같은 디렉토리에 다음과 같은 test_tasks.py테스트 모듈이 있습니다.

from unittest.mock import patch

import tasks


@patch('logging.info')
def test_adder(info_mock):
    tasks.call_add(1, 2)

    info_mock.assert_not_called()

이 테스트는 통과 pytest test_tasks.py했지만 (로 실행하는 경우 ), 왜 info_mock호출 되지 않았는지 모르겠 습니까? 다음 주장이 통과 될 것으로 예상합니다.

info_mock.assert_called_with("Adding 1 and 2...")

이 예에서 logging.info호출되지 않는 이유는 무엇 tasks.call_add()입니까? http://docs.celeryproject.org/en/latest/userguide/testing.html에 제공된 예제와 동등한 것 같습니다 .

Tommaso Barbugli

단위 테스트를 실행할 때 동일한 프로세스에서 직접 테스트를 실행해야합니다.

Celery는 작업을 "동기화"로 실행하는 동안 동일한 API를 유지하고 고장난 / 작업자 부분을 건너 뛰는 것을 매우 간단하게 만듭니다.

app = Celery('tasks', broker='pyamqp://guest@localhost//', task_always_eager=True)

http://docs.celeryproject.org/en/latest/userguide/configuration.html#task-always-eager

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

이것은 호출에 의해 호출 될 때 내부 함수입니다.

분류에서Dev

함수가 호출 될 때마다 함수의 호출 위치에 액세스하려면 어떻게해야합니까?

분류에서Dev

Python : while 루프 내에서 호출 된 함수가 단독으로 호출 될 때와 다른 것을 반환하는 이유는 무엇입니까?

분류에서Dev

Jest는 vue-multiselect에서 vuex 작업을 테스트 할 때 모의 함수가 호출 될 것으로 예상했습니다.

분류에서Dev

컨트롤러에서 모델 메서드 호출 "비 개체에서 멤버 함수 호출 ..."이지만 뷰에서 호출 될 때 작동합니다.

분류에서Dev

Collection의 toArray () 메서드가 PHPUnit 테스트에서 호출 될 때 중첩 된 객체를 배열로 변환하지 않는 이유는 무엇입니까?

분류에서Dev

다른 함수에서 호출 될 때 몽구스 쿼리의 결과를 사용할 수 없습니다.

분류에서Dev

함수는 본문 언로드에서 호출 될 때 작동하지만 다른 함수의 일부로 호출 될 때는 작동하지 않습니다.

분류에서Dev

함수 호출이 반환 될 때 스택에 푸시 된 인수는 어떻게됩니까?

분류에서Dev

스크립트의 트랩 명령은 CLI에서 호출 될 때 작동하지만 PBS 작업에서 사용될 때는 작동하지 않습니다.

분류에서Dev

지정된 애플리케이션의 UI가 중단 될 때 호출 스택을 기록하는 도구가 있습니까?

분류에서Dev

모의 클래스의 다른 함수에서 호출 된 함수가있는 테스트가 실패하는 이유는 무엇입니까?

분류에서Dev

C ++ / Tcl Tcl_CreateCommand에 의해 기록 된 함수가 호출 될 때 Tcl 파일 줄 번호를 검색 할 수 있습니까?

분류에서Dev

백본 페치의 Ajax는 페치 호출이 종료 된 후 완료되므로 페치 호출에서 성공 / 실패 이벤트가 없습니다.

분류에서Dev

함수 / 콜백 실행이 외부 호출에 의해 중단 될 수 있습니까?

분류에서Dev

pytest monkeypatch : 패치 된 메서드가 호출 될 때마다 다른 값을 반환 할 수 있습니까?

분류에서Dev

함수에서 작업이 호출 될 때 작업 목록을 grep 할 수 없음

분류에서Dev

다른 함수에 의해 호출 될 때 콘솔 로깅이 아닌 함수

분류에서Dev

키 조합이 호출 될 때까지 while 루프에서 작업 수행 C ++

분류에서Dev

단위 테스트를 만들 때 메서드 내의 모든 호출을 패치하는 것이 좋은 방법입니까?

분류에서Dev

비동기 서비스 호출이 포함 된 RelayCommand에 대한 단위 테스트를 작성하려면 어떻게해야합니까?

분류에서Dev

이 저장된 함수 / 트리거를 호출 한 명령문에서 이미 사용하고 있기 때문에 저장된 함수 / 트리거의 'blad'테이블을 업데이트 할 수 없습니다.

분류에서Dev

AWS-Lambda 함수는 해당 날짜에 처음 트리거 될 때만 호출합니다.

분류에서Dev

해시 맵이 변경 될 때까지 기다리는 함수 호출

분류에서Dev

Resolve는 함수의 끝으로 떨어지기 전에 API 호출이 완료 될 때까지 기다리지 않습니다.

분류에서Dev

swig를 통해 하위 프로세스에서 호출 할 때 OpenMP를 사용하는 공유 라이브러리의 함수가 중단되는 이유는 무엇입니까?

분류에서Dev

전송 된 텍스트에 "<"가 포함될 때마다 $ .ajax POST에서 작업 메서드가 호출되지 않습니다.

분류에서Dev

Pytest는 여러 테스트 함수에서 호출 할 때 고정 데이터를 캐시합니까?

분류에서Dev

Redux-thunk에 대해 핸들러가 호출 할 함수를 디스패치하면 직접 호출하지 않는 이유는 무엇입니까?

Related 관련 기사

  1. 1

    이것은 호출에 의해 호출 될 때 내부 함수입니다.

  2. 2

    함수가 호출 될 때마다 함수의 호출 위치에 액세스하려면 어떻게해야합니까?

  3. 3

    Python : while 루프 내에서 호출 된 함수가 단독으로 호출 될 때와 다른 것을 반환하는 이유는 무엇입니까?

  4. 4

    Jest는 vue-multiselect에서 vuex 작업을 테스트 할 때 모의 함수가 호출 될 것으로 예상했습니다.

  5. 5

    컨트롤러에서 모델 메서드 호출 "비 개체에서 멤버 함수 호출 ..."이지만 뷰에서 호출 될 때 작동합니다.

  6. 6

    Collection의 toArray () 메서드가 PHPUnit 테스트에서 호출 될 때 중첩 된 객체를 배열로 변환하지 않는 이유는 무엇입니까?

  7. 7

    다른 함수에서 호출 될 때 몽구스 쿼리의 결과를 사용할 수 없습니다.

  8. 8

    함수는 본문 언로드에서 호출 될 때 작동하지만 다른 함수의 일부로 호출 될 때는 작동하지 않습니다.

  9. 9

    함수 호출이 반환 될 때 스택에 푸시 된 인수는 어떻게됩니까?

  10. 10

    스크립트의 트랩 명령은 CLI에서 호출 될 때 작동하지만 PBS 작업에서 사용될 때는 작동하지 않습니다.

  11. 11

    지정된 애플리케이션의 UI가 중단 될 때 호출 스택을 기록하는 도구가 있습니까?

  12. 12

    모의 클래스의 다른 함수에서 호출 된 함수가있는 테스트가 실패하는 이유는 무엇입니까?

  13. 13

    C ++ / Tcl Tcl_CreateCommand에 의해 기록 된 함수가 호출 될 때 Tcl 파일 줄 번호를 검색 할 수 있습니까?

  14. 14

    백본 페치의 Ajax는 페치 호출이 종료 된 후 완료되므로 페치 호출에서 성공 / 실패 이벤트가 없습니다.

  15. 15

    함수 / 콜백 실행이 외부 호출에 의해 중단 될 수 있습니까?

  16. 16

    pytest monkeypatch : 패치 된 메서드가 호출 될 때마다 다른 값을 반환 할 수 있습니까?

  17. 17

    함수에서 작업이 호출 될 때 작업 목록을 grep 할 수 없음

  18. 18

    다른 함수에 의해 호출 될 때 콘솔 로깅이 아닌 함수

  19. 19

    키 조합이 호출 될 때까지 while 루프에서 작업 수행 C ++

  20. 20

    단위 테스트를 만들 때 메서드 내의 모든 호출을 패치하는 것이 좋은 방법입니까?

  21. 21

    비동기 서비스 호출이 포함 된 RelayCommand에 대한 단위 테스트를 작성하려면 어떻게해야합니까?

  22. 22

    이 저장된 함수 / 트리거를 호출 한 명령문에서 이미 사용하고 있기 때문에 저장된 함수 / 트리거의 'blad'테이블을 업데이트 할 수 없습니다.

  23. 23

    AWS-Lambda 함수는 해당 날짜에 처음 트리거 될 때만 호출합니다.

  24. 24

    해시 맵이 변경 될 때까지 기다리는 함수 호출

  25. 25

    Resolve는 함수의 끝으로 떨어지기 전에 API 호출이 완료 될 때까지 기다리지 않습니다.

  26. 26

    swig를 통해 하위 프로세스에서 호출 할 때 OpenMP를 사용하는 공유 라이브러리의 함수가 중단되는 이유는 무엇입니까?

  27. 27

    전송 된 텍스트에 "<"가 포함될 때마다 $ .ajax POST에서 작업 메서드가 호출되지 않습니다.

  28. 28

    Pytest는 여러 테스트 함수에서 호출 할 때 고정 데이터를 캐시합니까?

  29. 29

    Redux-thunk에 대해 핸들러가 호출 할 함수를 디스패치하면 직접 호출하지 않는 이유는 무엇입니까?

뜨겁다태그

보관