def test_upload_file_on_valid_file(self): temp_dir = tempfile.mkdtemp() try: mockftp = MockFtp() mockftp.put = Mock(return_value=3) foo = FtpFileTransfer(None) foo.set_connection(mockftp) foo.set_remote_dir('/remote') foo.connect() valid_file = os.path.join(temp_dir, 'file') f = open(valid_file, 'a') f.write('12') f.flush() f.close() foo._upload_file(valid_file) mockftp.put.assert_called_with(valid_file, os.path.normpath('/remote' + valid_file)) self.assertEqual(foo._bytes_transferred, 3) self.assertEqual(foo._files_transferred, 1) foo._upload_file(valid_file) self.assertEqual(foo._bytes_transferred, 6) self.assertEqual(foo._files_transferred, 2) finally: shutil.rmtree(temp_dir)
def test_upload_file_where_file_is_none(self): # test where file is None ftpspec = ["put"] mockftp = Mock(spec=ftpspec) foo = FtpFileTransfer(None) foo.set_connection(mockftp) foo.connect() foo._upload_file(None)
def test_upload_file_where_file_does_not_exist(self): temp_dir = tempfile.mkdtemp() try: ftpspec = ["put"] mockftp = Mock(spec=ftpspec) foo = FtpFileTransfer(None) foo.set_connection(mockftp) foo.connect() foo._upload_file(os.path.join(temp_dir, 'nonexist')) self.assertEqual(mockftp.call_count, 0) finally: shutil.rmtree(temp_dir)
def test_upload_file_that_raises_exception(self): temp_dir = tempfile.mkdtemp() try: mockftp = MockFtp() mockftp.put = Mock(side_effect=IOError('hi')) foo = FtpFileTransfer(None) foo.set_connection(mockftp) foo.connect() valid_file = os.path.join(temp_dir, 'file') f = open(valid_file, 'a') f.write('12') f.flush() f.close() try: foo._upload_file(valid_file) self.fail('Expected IOError') except IOError: pass finally: shutil.rmtree(temp_dir)