반환 값을 반환하지 않는 파이썬 단위 테스트 패치 모의 메서드

로건

스크립트 에서 test_is_user_present()다른 함수를 호출 하는 테스트 케이스를 작성하려고합니다.execute_redshift_sql()redshift_util.py

함수 execute_redshift_sql ()에서 예상되는 반환 값을 1. 하지만 함수가 호출 된 후에는 결과에서이 값이 반환되지 않습니다! 또한 디버깅 목적으로 몇 가지 값을 인쇄했습니다.

아래 테스트 사례를 살펴볼 수 있습니다.

from mock import patch, Mock, MagicMock
from cia_admin_operations.redshift_util import  execute_redshift_sql
    @patch('cia_admin_operations.redshift_util.execute_redshift_sql')
    def test_is_user_present(mock_execute_redshift_sql):
        ldap_user = "dummy_user"
        mock_out = Mock()

        user_check_sql = "SELECT COUNT(1) FROM pg_user WHERE usename = '{}';".format(ldap_user)

        mock_execute_redshift_sql.return_value = 1
        print(mock_execute_redshift_sql())

        result = execute_redshift_sql(mock_out, user_check_sql)
        print(result)
        print(result())
>       assert result() == 1
E       AssertionError: assert <Mock name='m...749067684720'> == 1
E         -<Mock name='mock.query().getresult()()' id='139749067684720'>
E         +1

test/test_cia_admin_operations.py:51: AssertionError
----------------------------- Captured stdout call -----------------------------
1
<Mock name='mock.query().getresult()' id='139749067684776'>
<Mock name='mock.query().getresult()()' id='139749067684720'>

redshift_util.py

def execute_redshift_sql(connection, sqlQuery):
    """Executes redshift query"""

    logger.info("Executing following SQL query :\n %s" % sqlQuery)

    try:
        result = connection.query(sqlQuery)
        logger.info("Redshift query is successfully executed.")
    except Exception as e:
        logger.error("Query not executed : %s" % e)
        return None
    # return only if the result has some data
    if result:
        logger.info("Query result :\n %s" % result)
        return result.getresult()
    else:
        return 0
MrBean 브레멘

가져올 때 함수를 패치해야합니다. 이 문제를 해결할 수있는 한 가지 방법은 다음을 사용하는 것입니다.

from mock import patch, Mock
import cia_admin_operations.redshift_util

@patch('cia_admin_operations.redshift_util.execute_redshift_sql')
def test_is_user_present(mock_execute_redshift_sql):
    ldap_user = "dummy_user"
    mock_out = Mock()

    user_check_sql = "SELECT COUNT(1) FROM pg_user WHERE usename = '{}';".format(ldap_user)

    mock_execute_redshift_sql.return_value = 1

    result = cia_admin_operations.redshift_util.execute_redshift_sql(mock_out, user_check_sql)
    print(result)

귀하의 경우 패키지에서 함수를 조롱했지만 로컬로 가져온 모듈을 사용했습니다. 패치 할 위치를 항상 확인 해야합니다 .

위에서 가져 오기를 조정했으며 패치를 조정할 수도 있습니다.

from mock import patch, Mock
from cia_admin_operations.redshift_util import execute_redshift_sql

@patch('redshift_test.execute_redshift_sql')
def test_is_user_present(mock_execute_redshift_sql):
    ldap_user = "dummy_user"
    mock_out = Mock()

    user_check_sql = "SELECT COUNT(1) FROM pg_user WHERE usename = '{}';".format(ldap_user)

    mock_execute_redshift_sql.return_value = 1

    result = execute_redshift_sql(mock_out, user_check_sql)
    print(result)

( 데코레이터 redshift_test에서 테스트 모듈의 이름 을 대체 해야합니다 patch)

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

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

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

python3 단위 테스트, 작동하지 않는 인스턴스 메서드의 반환 패치

분류에서Dev

반환 값이없는 메서드 단위 테스트

분류에서Dev

단위 테스트를 위해 아무것도 반환하지 않는 파이썬 함수 내부의 값을 어떻게 얻습니까?

분류에서Dev

반환 값이 없지만 System.out에 쓰는 메서드를 단위 테스트하는 방법

분류에서Dev

값을 반환하지 않는 함수 단위 테스트

분류에서Dev

값을 가져야하지만 rspec 테스트 중에 빈 값을 반환하는 모델의 메서드

분류에서Dev

파이썬에서 함수의 반환을 재정의하지 않는 모의

분류에서Dev

작업을 반환하는 메서드를 단위 테스트하는 Moq Framework

분류에서Dev

Junit 5의 Spring Boot 단위 테스트 Mock이 null을 반환하는 이유

분류에서Dev

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

분류에서Dev

파이썬의 메모리 위치 반전 인덱스에서 단순

분류에서Dev

API가 Laravel에서 토큰을 반환하는지 확인 (단위 테스트)

분류에서Dev

단위 테스트에서 반환 된 데이터를 모의하는 요점은 무엇입니까?

분류에서Dev

메서드 대 함수 : 예기치 않은 단위 반환 값

분류에서Dev

약속을 반환하는 Jasmine 단위 테스트 각도 서비스가 해결되지 않습니다.

분류에서Dev

열 데이터가 지정된 테이블의 행에서 값을 반환하는 HtmlAgilityPack 메서드

분류에서Dev

반환 형식을 지정하지 않고 파생 된 제네릭 클래스를 반환하는 메서드

분류에서Dev

파이썬에서 스위치 케이스를 적용하여 변수 값에 따라 일부 값을 반환하는 방법

분류에서Dev

파이썬 에서이 특정 값을 반환하기 위해 클래스에서 __str__ 메서드를 얻는 방법

분류에서Dev

비동기 콜백의 반환 값 (단위 테스트에서)

분류에서Dev

내 반환 값이 기본 메서드의 값을 보유하지 않는 이유는 무엇입니까?

분류에서Dev

파이썬 테이블에서 반환 값을 얻는 방법

분류에서Dev

단위 테스트의 HostBuilder : HostContext.Configuration.GetSection이 null 값을 반환합니다.

분류에서Dev

파이썬에서 클래스 메서드의 반환 값에서 클래스 속성을 초기화하는 방법은 무엇입니까?

분류에서Dev

테스트에서 정의되지 않은 oldVal을 반환하는 Angular`$ watchCollection`

분류에서Dev

자바 : 개체를 반환하는 메서드 단위 테스트

분류에서Dev

반환을 무시하는 C # 단위 테스트 조롱 서비스

분류에서Dev

모든 코드 경로가 값을 반환하지 않는 오류를 반환하는 C # 컴파일러

분류에서Dev

모든 코드 경로가 값을 반환하지 않는 HttpGet ActionResult 메서드

Related 관련 기사

  1. 1

    python3 단위 테스트, 작동하지 않는 인스턴스 메서드의 반환 패치

  2. 2

    반환 값이없는 메서드 단위 테스트

  3. 3

    단위 테스트를 위해 아무것도 반환하지 않는 파이썬 함수 내부의 값을 어떻게 얻습니까?

  4. 4

    반환 값이 없지만 System.out에 쓰는 메서드를 단위 테스트하는 방법

  5. 5

    값을 반환하지 않는 함수 단위 테스트

  6. 6

    값을 가져야하지만 rspec 테스트 중에 빈 값을 반환하는 모델의 메서드

  7. 7

    파이썬에서 함수의 반환을 재정의하지 않는 모의

  8. 8

    작업을 반환하는 메서드를 단위 테스트하는 Moq Framework

  9. 9

    Junit 5의 Spring Boot 단위 테스트 Mock이 null을 반환하는 이유

  10. 10

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

  11. 11

    파이썬의 메모리 위치 반전 인덱스에서 단순

  12. 12

    API가 Laravel에서 토큰을 반환하는지 확인 (단위 테스트)

  13. 13

    단위 테스트에서 반환 된 데이터를 모의하는 요점은 무엇입니까?

  14. 14

    메서드 대 함수 : 예기치 않은 단위 반환 값

  15. 15

    약속을 반환하는 Jasmine 단위 테스트 각도 서비스가 해결되지 않습니다.

  16. 16

    열 데이터가 지정된 테이블의 행에서 값을 반환하는 HtmlAgilityPack 메서드

  17. 17

    반환 형식을 지정하지 않고 파생 된 제네릭 클래스를 반환하는 메서드

  18. 18

    파이썬에서 스위치 케이스를 적용하여 변수 값에 따라 일부 값을 반환하는 방법

  19. 19

    파이썬 에서이 특정 값을 반환하기 위해 클래스에서 __str__ 메서드를 얻는 방법

  20. 20

    비동기 콜백의 반환 값 (단위 테스트에서)

  21. 21

    내 반환 값이 기본 메서드의 값을 보유하지 않는 이유는 무엇입니까?

  22. 22

    파이썬 테이블에서 반환 값을 얻는 방법

  23. 23

    단위 테스트의 HostBuilder : HostContext.Configuration.GetSection이 null 값을 반환합니다.

  24. 24

    파이썬에서 클래스 메서드의 반환 값에서 클래스 속성을 초기화하는 방법은 무엇입니까?

  25. 25

    테스트에서 정의되지 않은 oldVal을 반환하는 Angular`$ watchCollection`

  26. 26

    자바 : 개체를 반환하는 메서드 단위 테스트

  27. 27

    반환을 무시하는 C # 단위 테스트 조롱 서비스

  28. 28

    모든 코드 경로가 값을 반환하지 않는 오류를 반환하는 C # 컴파일러

  29. 29

    모든 코드 경로가 값을 반환하지 않는 HttpGet ActionResult 메서드

뜨겁다태그

보관