From c367f55637d32a7edada2307cfd49fb01526dae9 Mon Sep 17 00:00:00 2001 From: scrat Date: Sun, 13 Jul 2008 09:06:28 +0000 Subject: [PATCH] added dummy sftp.py for testing purposes remote.py: now the file on the remote server gets the basename of the local file outlook.py: added utf-8 encoding for the mail content to avoid problems with special characters git-svn-id: svn://svn.cy55.de/Zope3/src/cybertools/trunk@2759 fd906abe-77d9-0310-91a1-e0d9ade77398 --- agent/crawl/outlook.py | 1 + agent/testing/sftp.py | 38 ++++++++++++++++++++++++++++++++++++++ agent/transport/remote.py | 7 +++---- 3 files changed, 42 insertions(+), 4 deletions(-) create mode 100644 agent/testing/sftp.py diff --git a/agent/crawl/outlook.py b/agent/crawl/outlook.py index a14f054..86f987c 100644 --- a/agent/crawl/outlook.py +++ b/agent/crawl/outlook.py @@ -215,6 +215,7 @@ class OutlookCrawler(MailCrawler): attachments.append(fileRes) fileHandle, filePath = tempfile.mkstemp(prefix="olmail") filePointer = os.fdopen(fileHandle, "w") + mailContent = mailContent.encode('utf-8') filePointer.write(mailContent) filePointer.close() resource = MailResource(data=mailContent, diff --git a/agent/testing/sftp.py b/agent/testing/sftp.py new file mode 100644 index 0000000..831c9b8 --- /dev/null +++ b/agent/testing/sftp.py @@ -0,0 +1,38 @@ +# +# Copyright (c) 2008 Helmut Merz helmutm@cy55.de +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# + +""" +Fake sftp class for testing purposes + +$Id$ +""" + +from twisted.internet.defer import succeed + + +class FileTransfer(object): + + + def __init__(self, host, port, username, password): + pass + + def upload(self, localPath, remotePath): + deferred = succeed('Upload completed') + return deferred + pass + diff --git a/agent/transport/remote.py b/agent/transport/remote.py index 40e6f55..63a9bb7 100644 --- a/agent/transport/remote.py +++ b/agent/transport/remote.py @@ -26,6 +26,7 @@ $Id$ from twisted.internet import defer from zope.interface import implements +import os from cybertools.agent.system import rpcapi from cybertools.agent.system import sftpapi @@ -71,10 +72,8 @@ class Transporter(QueueableAgent): """ #return self.server.callRemote('getMetadata', resource.metadata) self.deferred = defer.Deferred() - # here the filename is to be specified for the remote path - # the filename has to be created artificially by the tempfile - # mechanism? - d = self.ftpServer.upload(resource.path, 'remote') + remoteFile = os.path.basename(resource.path) + d = self.ftpServer.upload(resource.path, remoteFile) d = self.server.callRemote('getMetadata', resource.metadata) d.addCallback(self.transferDone) d.addErrback(self.errorHandler)