2016-06-24 3 views
0

У меня есть файл с именемнасмешливый переменную внутри файла

a.py 
file = "/home/test/abc.txt" 

Я работаю над созданием UnitTest для другого файла, который принимает значение этой переменной файла из a.py

Как я могу издеваться это имя переменной для любого фиктивного файла, например?

file = "/tmp/a.txt" 
+0

То, что вы хотите сделать, это создать «фальшивый» 'File' переменную, что вы будете в состоянии сделать тесты на? –

ответ

0

В вашем конкретном случае, почему бы просто не import a, а затем a.file = "/tmp/a.txt"?

Какая версия Python включена? Python 3.x имеет unittest.mock, который является backported to 2.x on pypi.

Во всяком случае, если вы пытаетесь создать контекст конкретного макета:

>>> from mock import Mock 
>>> 
>>> # applies to module imports but doing it as a class here 
... class A(object): 
...  file = 'xyz' 
... 
>>> some_a = Mock(file='abc') 
>>> some_a.file 
'abc' 
>>> 
>>> actual_a = A() 
>>> actual_a.file 
'xyz' 
>>> 
>>> 
>>> def some_test(): 
... A = Mock(file='abc') 
... assert A.file == 'abc' 
... assert A.file != 'xyz' 
... 
>>> some_test() 
>>> # no assertion error 

Вы пытаетесь дразнить его во время импорта? На основе another SO answer:

>>> import sys 
>>> sys.modules['A'] = Mock(file='abc') 
>>> import A 
>>> 
>>> A.file 
'abc' 
>>> mocked_a = A 
>>> mocked_a.file 
'abc' 
>>> 
+0

Я использую python 2.6.6 – sam

Смежные вопросы