在python中模拟另一个模块中间函数的问题

时间:2020-07-24 09:19:03

标签: python mocking pytest

我的项目文件夹结构:

myproject

   utilities--encrypt_decrypt_util -- encrypt()
   src --sample.py
   tests --sample_test2.py

src / sample.py:

from utilities.encrypt_decrypt_util import encrypt

def m1():
    print('from m1 method')
    encr_pwd=encrypt('SGu2s2RFT')
    print(encr_pwd)

test / sample_test2.py:

from src.sample import m1
from mock import patch

def encrypt(password):
    print('its mock...')
    return 'encryptedpassword'

@patch('utilities.encrypt_decrypt_util.encrypt')
def test_mytst2(mock_m2):
    print('From test_mytst2 method')
    mock_m2.return_value= encrypt('password')
    print(m1())

utilities / encrypt_decrypt_util.py

def encrypt(plain_text_pwd: str) -> bytes:
    #some code here
    return encrypted_password

当我执行pytest test_mytst2时,应该模拟encrypt方法,但是会调用utils中的原始方法。 您能帮忙理解一下是什么问题。

0 个答案:

没有答案