如何使用py3.5 os.scandir()为函数编写测试?

时间:2016-08-15 19:09:33

标签: python python-3.x python-3.5 python-mock python-os

如何使用新添加的python 3.5 os.scandir()的内置函数将测试写入函数? 是否有帮助模拟DirEntry个对象?

有关如何模拟空文件夹的os.scandir()和少量2个文件的文件夹的任何建议吗?

1 个答案:

答案 0 :(得分:-1)

根据建议,我的解决方案涉及@mock.patch()装饰器。 我的测试结果如下:

from django.test import TestCase, mock
from my_app.scan_files import my_method_that_return_count_of_files

mock_one_file = mock.MagicMock(return_value = ['one_file', ])

class MyMethodThatReturnCountOfFilesfilesTestCase(TestCase):
    @mock.patch('os.scandir', mock_one_file)
    def test_get_one(self):
        """ Test it receives 1 (one) file """
        files_count = my_method_that_return_count_of_files('/anything/')
        self.assertEqual(files_count, 1)