Я пытаюсь высмеять глобальную переменную с помощью макетного движка, но кажется, что он не просто работает для моих переменных. Когда я патчу, например, os.name
, он отлично работает, однако для моих пользовательских переменных он не работает. Вот код:mocking global variables on python не работает
global_var.py
var = 10
use_global_var.py
from global_var import var
def test_call():
return var
test.py
import mock
from use_global_var import test_call
@mock.patch('global_var.var', 50)
def test_check():
print(test_call())
test_check()
print
должен вернуть 50, если я правильно понял, но он возвращает 10. Кто-нибудь знает, в чем проблема здесь и как ее решить?
ahh, он импортирует и становится use_global_var.var .. это звучит правильно. Большое спасибо за быстрый ответ. – incognito
Право; если вы просто использовали 'import global_var' и' return global_var.var', то '' global_var.var'' было бы правильным для исправления. – chepner
это странно :) возможно, достаточно чист для кого-то из мира питонов, но не для других. – incognito