Я хочу написать тестовый пример для метода в моем коде, имитирующего многопроцессорную часть с помощью pytest.
Этот код и мне нужно написать тест для метода моделирования.
from multiprocessing import Pool
class Simulation:
def __init__(self, num):
self.num = num
def simulation(self):
pool = Pool(processes=self.num)
val = [1, 2, 3, 4, 5]
res = pool.map(self.sim, val)
return res
def sim(self, val):
return val * val
Вот тестовый пример.
import pytest
from multi import Simulation
@pytest.fixture
def sim():
return Simulation(2)
@pytest.fixture
def mock_map():
def map(self, val1=1, val2=2):
return [val1, val2]
return map
def test_sim(sim, mock_map, monkeypatch):
monkeypatch.setattr('multiprocessing.Pool.map', mock_map)
res = sim.simulation()
assert res == [1,2]
При выполнении теста я получаю выходное значение как [1,4,6,16,25], где мне нужно смоделировать выходное значение как [1,2].