Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/358.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python模拟,补丁os.environ返回无_Python - Fatal编程技术网

Python模拟,补丁os.environ返回无

Python模拟,补丁os.environ返回无,python,Python,我有一个简单的模块: # my_module from os.path import join from os import environ some_file_name = 'foo.txt' def file_path(): join(environ['TARGET_DIRECTORY'], some_file_name) 还有一个简单的测试: import os import unittest from os.path import join from mock impor

我有一个简单的模块:

# my_module
from os.path import join
from os import environ

some_file_name = 'foo.txt'

def file_path():
    join(environ['TARGET_DIRECTORY'], some_file_name)
还有一个简单的测试:

import os
import unittest
from os.path import join

from mock import patch
from my_module import some_file_name, file_path


class MyTest(unittest.TestCase):
    def test_can_create_path(self):
        some_folder = '/path/to/directory'
        with patch.dict('my_module.environ', {'TARGET_DIRECTORY': some_folder}):
            self.assertEqual(file_path(), join(some_folder, some_file_name))

if __name__ == '__main__':
    unittest.main()
我期望对
environ['TARGET_DIRECTORY']
的调用将返回
'/path/to/DIRECTORY'
,但它返回
None

您的函数返回
None
,因为没有明确的
返回
语句。添加一个
返回值

def file_path():
    return join(environ['TARGET_DIRECTORY'], some_file_name)

模拟补丁在其他情况下运行良好。

是否在某个包中安装了
my_module
?@J0HN,如下所述,我刚刚从Scala切换回Python,不需要返回关键字。Doh!当然在Scala使用了几个月后,我刚刚切换回Python,这里不需要return语句。