Add ftp put file success unit test

The patch add ftp put file ok unit test

Change-Id: I75d2459ab867606adadefac2c50907dbd2bcbc0b
This commit is contained in:
gecong1973 2018-12-06 23:07:21 -08:00
parent 35a9fccc3e
commit b8f382422c
1 changed files with 44 additions and 1 deletions

View File

@ -12,7 +12,8 @@
# See the License for the specific language governing permissions and
# limitations under the License.
import shutil
import tempfile
import unittest
import mock
@ -81,6 +82,30 @@ class FtpStorageTestCase(unittest.TestCase):
self.ftp_opt.ftp_remote_username = 'usrname'
self.ftp_opt.ftp_remote_ip = '0.0.0.0'
self.ftp_opt.ftp_port = 2121
self.ftp_test_file_dir = None
self.ftp_test_file_name = None
def create_ftp_test_file(self):
if self.ftp_test_file_name:
return
tmpdir = tempfile.mkdtemp()
FILES_DIR_PREFIX = "freezer_ftptest_files_dir"
files_dir = tempfile.mkdtemp(dir=tmpdir, prefix=FILES_DIR_PREFIX)
file_name = "file_ftp_test"
self.ftp_test_file_dir = files_dir
text = "FTPTESTTXT"
filehandle = open(files_dir + "/" + file_name, 'w')
if filehandle:
filehandle.write(text)
filehandle.close()
self.ftp_test_file_name = file_name
def delete_ftp_test_file(self):
if self.ftp_test_file_name:
files_dir = self.ftp_test_file_dir
shutil.rmtree(files_dir)
self.ftp_test_file_name = None
self.ftp_test_file_dir = None
@patch('ftplib.FTP')
def test_init_fail_raise_FtpStorage(self, mock_ftp_constructor):
@ -168,6 +193,24 @@ class FtpStorageTestCase(unittest.TestCase):
ret = ftpobj.listdir(test_dir)
self.assertEqual(list(), ret)
@patch('ftplib.FTP')
def test_putfile_ok_FtpStorage(self, mock_ftp_constructor):
mock_ftp = mock_ftp_constructor.return_value
ftpobj = ftp.FtpStorage(
storage_path=self.ftp_opt.ftp_storage_path,
remote_pwd=self.ftp_opt.ftp_remote_pwd,
remote_username=self.ftp_opt.ftp_remote_username,
remote_ip=self.ftp_opt.ftp_remote_ip,
port=self.ftp_opt.ftp_port,
max_segment_size=self.ftp_opt.ftp_max_segment_size)
self.create_ftp_test_file()
frompath = self.ftp_test_file_dir + "/" + self.ftp_test_file_name
topath = '/home/to'
ftpobj.put_file(frompath, topath)
self.assertTrue(mock_ftp.pwd.called)
self.assertTrue(mock_ftp.storbinary.called)
self.delete_ftp_test_file()
class FtpsStorageTestCase(unittest.TestCase):