def test_upload_files_multiple_valid_files(self): mockftp = MockFtp() mockftp.put = Mock(return_value=3) mockftp.close = Mock(return_value=None) foo = FtpFileTransfer(None) foo.set_connection(mockftp) foo.set_remote_dir('/remote') foo.set_host('hosty') temp_dir = tempfile.mkdtemp() try: foo.connect() valid_file = os.path.join(temp_dir, 'valid') f = open(valid_file, 'a') f.write('hi') f.flush() f.close() afile = os.path.join(temp_dir, 'hi') open(afile, 'a').close() self.assertEqual(foo.upload_files([valid_file, afile]), True) self.assertEqual(foo.get_error_msg(), None) self.assertTrue('2 (6 bytes) files uploaded in ' in foo.get_upload_summary()) self.assertTrue(' seconds to host hosty:/remote' in foo.get_upload_summary()) foo.disconnect() self.assertEqual(mockftp.put.call_count, 2) mockftp.close.assert_not_called() finally: shutil.rmtree(temp_dir)
def test_upload_files_where_file_upload_raises_exception(self): mockftp = MockFtp() mockftp.put = Mock(side_effect=IOError('hi')) mockftp.close = Mock(return_value=None) foo = FtpFileTransfer(None) foo.set_connection(mockftp) foo.set_remote_dir('/remote') foo.set_host('hosty') temp_dir = tempfile.mkdtemp() try: foo.connect() valid_file = os.path.join(temp_dir, 'valid') f = open(valid_file, 'a') f.write('hi') f.flush() f.close() self.assertEqual(foo.upload_files([valid_file]), False) self.assertEqual(foo.get_error_msg(), 'Error during upload') self.assertEqual(foo.get_upload_summary(), 'Error during upload\n' '0 (0 bytes) files uploaded in 0 ' 'seconds to host hosty:/remote') foo.disconnect() mockftp.put.assert_called_with(valid_file, os.path.normpath('/remote' + valid_file)) finally: shutil.rmtree(temp_dir)
def test_upload_files_file_list_is_empty(self): foo = FtpFileTransfer(None) self.assertEqual(foo.upload_files([]), True) self.assertEqual(foo.get_error_msg(), 'No files to upload') self.assertEqual( foo.get_upload_summary(), 'No files to upload\n' '0 (0 bytes) files uploaded in 0 ' 'seconds to host Unset:')
def test_upload_files_file_list_is_none(self): foo = FtpFileTransfer(None) self.assertEqual(foo.upload_files(None), True) self.assertEqual(foo.get_error_msg(), 'List of files passed in was None') self.assertEqual(foo.get_upload_summary(), 'List of files passed in was None\n' '0 (0 bytes) files uploaded in 0 ' 'seconds to host Unset:')
def test_upload_file_direct_success(self): temp_dir = tempfile.mkdtemp() try: mockftp = MockFtp() mockftp.put = Mock(return_value=3) foo = FtpFileTransfer(None) foo.set_connection(mockftp) foo.connect() afile = os.path.join(temp_dir, 'afile') open(afile, 'a').close() self.assertEqual(foo.upload_file_direct(afile, '/foo', 'name'), True) self.assertEqual(foo.get_error_msg(), None) self.assertEqual(foo.get_upload_summary(), '1 (3 bytes) files ' 'uploaded in 0 seconds' ' to host Unset:') foo.disconnect() finally: shutil.rmtree(temp_dir)
def test_get_upload_summary_remotedir_not_set(self): foo = FtpFileTransfer(None) sum = foo.get_upload_summary() self.assertEqual(sum, '0 (0 bytes) files uploaded in 0 seconds to' ' host Unset:')