如何使用伪造的登录凭据在 Python 测试用例中修补 ftplib.FTP?
How to patch ftplib.FTP in a Python testcase with fake login credentials?
有一个 python 模块,其后跟 x.y.z,其中存在一个函数 :-
from ftplib import FTP
def connect(host,user,pass) :
ftp = FTP(host, user, pass)
测试用例如下:-
classs testClass(unittest.TestCase)
@patch(x.y.z.FTP)
def test_connect(self,MOCKFTP) :
mock_ftp_obj = MOCKFTP()
connect('fakehost','fakeuser','fakepass')
运行 测试用例给出 - 530 登录不正确!
我是不是漏了什么。
问题是路径值不正确 x.y.z.FTP
FTP 实际上存在于 ftplib 包中。
以下按预期工作:
x.y.z.py:
import ftplib
def connect(host, user, pass1):
ftp = ftplib.FTP(host=host, user=user, passwd=pass1)
testz.py:
import unittest
from unittest.mock import patch
from x.y.z import connect
class testClass(unittest.TestCase):
@patch('ftplib.FTP', autospec=True)
def test_download_file(self, mock_ftp):
connect('fakehost','fakeuser','fakepass')
mock_ftp.assert_called_with('fakehost','fakeuser','fakepass')
如果有帮助,请告诉我。
有一个 python 模块,其后跟 x.y.z,其中存在一个函数 :-
from ftplib import FTP
def connect(host,user,pass) :
ftp = FTP(host, user, pass)
测试用例如下:-
classs testClass(unittest.TestCase)
@patch(x.y.z.FTP)
def test_connect(self,MOCKFTP) :
mock_ftp_obj = MOCKFTP()
connect('fakehost','fakeuser','fakepass')
运行 测试用例给出 - 530 登录不正确!
我是不是漏了什么。
问题是路径值不正确 x.y.z.FTP
FTP 实际上存在于 ftplib 包中。
以下按预期工作:
x.y.z.py:
import ftplib
def connect(host, user, pass1):
ftp = ftplib.FTP(host=host, user=user, passwd=pass1)
testz.py:
import unittest
from unittest.mock import patch
from x.y.z import connect
class testClass(unittest.TestCase):
@patch('ftplib.FTP', autospec=True)
def test_download_file(self, mock_ftp):
connect('fakehost','fakeuser','fakepass')
mock_ftp.assert_called_with('fakehost','fakeuser','fakepass')
如果有帮助,请告诉我。