Python Pytest模拟eval导入的函数

Python Pytest模拟eval导入的函数,python,mocking,pytest,monkeypatching,Python,Mocking,Pytest,Monkeypatching,不确定这是否可行,但有没有办法模拟eval导入的函数 例如: a、 派克 b、 派克 测试a.py import a import pytest from unittest.mock import patch def test_code(): #with patch('patch mockME somehow?', return_value='mocked code') as mock_mockME: assert_me = a.code() assert as

不确定这是否可行,但有没有办法模拟eval导入的函数

例如:

a、 派克

b、 派克

测试a.py

import a
import pytest
from unittest.mock import patch

def test_code():
    #with patch('patch mockME somehow?', return_value='mocked code') as mock_mockME:
        assert_me = a.code()
    assert assert_me == 'mocked code'

使用
monkeypatch
夹具:

# test_a.py

def test_code(monkeypatch):
    monkeypatch.setattr('b.mockME', lambda: 'mocked code')
    assert_me = a.code()
    assert assert_me == 'mocked code'

谢谢你,维姆!正是我要找的!我不知道有这样的事情存在。该去研究了。
import a
import pytest
from unittest.mock import patch

def test_code():
    #with patch('patch mockME somehow?', return_value='mocked code') as mock_mockME:
        assert_me = a.code()
    assert assert_me == 'mocked code'
# test_a.py

def test_code(monkeypatch):
    monkeypatch.setattr('b.mockME', lambda: 'mocked code')
    assert_me = a.code()
    assert assert_me == 'mocked code'