示例#1
0
    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)
示例#2
0
    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:')
示例#4
0
 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:')
示例#5
0
 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)
示例#6
0
 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:')