Функция Mock.patch random.random() с return_value в зависимости от модуляPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Функция Mock.patch random.random() с return_value в зависимости от модуля

Сообщение Anonymous »

Намерение: Я пытаюсь создать модульный тест для сложного класса, в котором множество значений генерируется случайным образом с помощью методаrandom.random(). Чтобы создать модульный тест, я хочу использовать методock.patch, чтобы установить фиксированные значения для random.random(), чтобы всегда получать одни и те же значения (одну и ту же конфигурацию), а затем я могу запустить свой тест, который должен всегда иметь одинаковый результат.
Проблема: Мне нужно пропатчить функцию random() из библиотеки случайных значений со значениями, зависящими от модуля. Насколько я понимаю,ock.patch('modul1.random.random', return_value=1) должен влиять только на modul1 и никакие другие функции random() в других модулях. То же самое для модуля2:
modul1.py:

Код: Выделить всё

import random

def function():
return random.random()
modul2.py:

Код: Выделить всё

import random

def function():
return random.random()
Unit_test:

Код: Выделить всё

def test_function():
with mock.patch('modul1.random.random', return_value=1), \
mock.patch('modul2.random.random', return_value=0):
val1 = modul1.function()
val2 = modul2.function()
assert not val1 == val2
Ожидание: val1 = 1 и val2 = 0, следовательно, прошло
Реальность: утверждать не 0 == 0
PythonCodebase/tests/test_phase.py:55: AssertionError

Подробнее здесь: https://stackoverflow.com/questions/792 ... -the-modul
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»