Python模拟-无法弄清楚如何模拟此类/函数

时间:2019-09-10 19:24:50

标签: python mocking

我有这个类和功能,可以简单地将文件从一个地方复制到另一个地方。由于我是Mocking的新手,所以我不知道如何正确测试它,将非常感谢您的协助(注意CFG_Dict是我传递值的字典),请注意这是一个示例,我有 init ,用于此类中的多个功能。

from shutil import copy
import os
from pathlib2 import Path


class FileMover(object):

    def __init__(self, cfg_dict):

        self.copyto = str(Path(cfg_dict['GENERAL']['filecopylocation']))
        self.worklocation = str(Path(cfg_dict['GENERAL']['fileworklocation']))

    def run_file_mover(self, filename):
        filename = str(Path(filename))

        try:
            copy(filename, self.copyto)
        except ValueError:
            raise

        return str(Path('%s/%s' % (self.copyto, os.path.basename(filename))))

编辑:

我做了一些修改,这是我的新测试代码,

class TestMover(TestCase):

    def test_file_move(self):
        cfg_test = {'GENERAL': {'filecopylocation': '/test/temp/', 'fileworklocation': '/test/'},
                    'SFTP': {'sftpserver': 'localhost', 'sftpport': '22', 'sftpuser': 'test', 'sftppw': 'test', 'sftpdestination': 'test'}}

        with mock.patch('generate_reports.tools.file_mover.copy') as test_copy_function:
            FileMover(cfg_test).run_file_mover("foo")
            assert test_copy_function.called

0 个答案:

没有答案