2017-01-28 10 views
0

モックエンジンを使用してグローバル変数をモックしようとしていますが、単に自分の変数では機能しないようです。例えばos.nameにパッチを当てると、私のカスタム変数ではうまくいきませんが、うまく動作しません。ここ コードである: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を返します。 問題が何であり、どのように解決するのか誰も知っていますか?

答えて

2

の名前はです。 use_global_var.test_calluse_global_var.varという名前を見ていますが、global_var.varを嘲笑しています。

@mock.patch('use_global_var.var', 50) 
def test_check(): 
    print(test_call()) 

test_check() 
+0

ahh、それがインポートされ、use_global_var.varになります。迅速な回答をいただきありがとうございます。 – incognito

+0

右単純に 'import global_var'と' return global_var.var'を使用していれば、 '' global_var.var''を修正するのが適切でしょう。 – chepner

+0

それは奇妙です:)おそらく十分に、パイソンの世界から誰かのためにきれいだが、他の人のためではない。 – incognito

関連する問題