Changed bad return type self.result in outllok.py back to None
Added import for com_error type in outlook.py. added main_outlook.py in /testing to run tests against Outlook2000. Also added outlook.cfg in /testing which has the configuration data for main_outlook.py Removed outlook_real.txt and doctests line from tests.py git-svn-id: svn://svn.cy55.de/Zope3/src/cybertools/trunk@2535 fd906abe-77d9-0310-91a1-e0d9ade77398
This commit is contained in:
parent
bd1c522b20
commit
acc93c09b5
5 changed files with 88 additions and 50 deletions
|
@ -27,6 +27,7 @@ from email import MIMEMultipart
|
|||
|
||||
from zope.interface import implements
|
||||
from twisted.internet import defer
|
||||
from pywintypes import com_error
|
||||
#The watsup import is needed as soon as we start handling the Outlook Pop-Up
|
||||
#again
|
||||
#This should also be integrated within the wrapper-api for doctests
|
||||
|
@ -113,7 +114,7 @@ class OutlookCrawler(MailCrawler):
|
|||
try:
|
||||
if isinstance(getattr(mail, key), (int, str, unicode)):
|
||||
self.keys.append(key)
|
||||
except:
|
||||
except com_error:
|
||||
pass
|
||||
record = {}
|
||||
for key in self.keys:
|
||||
|
@ -122,8 +123,7 @@ class OutlookCrawler(MailCrawler):
|
|||
msg = self.createEmailMime(record)
|
||||
# Create a resource and append it to the result list
|
||||
self.createResource(msg, folder, "Microsoft Office Outlook")
|
||||
return self.result
|
||||
#yield None --> nothing would be returned
|
||||
yield None
|
||||
|
||||
def login(self):
|
||||
pass
|
||||
|
@ -165,7 +165,7 @@ class OutlookCrawler(MailCrawler):
|
|||
self.oOutlookApp = \
|
||||
api.client.gencache.EnsureDispatch("Outlook.Application")
|
||||
outlookFound = True
|
||||
except:
|
||||
except com_error:
|
||||
pass
|
||||
return outlookFound
|
||||
|
||||
|
|
|
@ -1,45 +0,0 @@
|
|||
================================================
|
||||
Agents for Job Execution and Communication Tasks
|
||||
================================================
|
||||
|
||||
($Id: outlook.txt 2522 2008-04-12 16:29:12Z scrat $)
|
||||
|
||||
>>> config = '''
|
||||
... controller(names=['core.sample'])
|
||||
... scheduler(name='core')
|
||||
... logger(name='default', standard=30)
|
||||
... system.winapi = 'use_outlook'
|
||||
... '''
|
||||
>>> from cybertools.agent.main import setup
|
||||
>>> master = setup(config)
|
||||
Starting agent application...
|
||||
Using controllers core.sample.
|
||||
|
||||
|
||||
OutlookCrawler
|
||||
==============
|
||||
|
||||
The agent uses Twisted's cooperative multitasking model.
|
||||
|
||||
OutlookCrawler is derived from MailCrawler. The OutlookCrawler returns a deferred
|
||||
which itself holds a list of MailResource Objects.
|
||||
|
||||
Returns a deferred that must be supplied with a callback method (and in
|
||||
most cases also an errback method).
|
||||
|
||||
The TestCase here is using subsidiary methods which replace calls to the "real Outlook
|
||||
dlls".
|
||||
|
||||
>>> controller = master.controllers[0]
|
||||
>>> controller.createAgent('crawl.outlook', 'sample02')
|
||||
|
||||
In the next step we request the start of a job, again via the controller.
|
||||
|
||||
>>> controller.enterJob('sample', 'sample02', params=dict(inbox=True))
|
||||
|
||||
The job is not executed immediately - we have to hand over control to
|
||||
the twisted reactor first.
|
||||
|
||||
>>> from cybertools.agent.tests import tester
|
||||
>>> tester.iterate()
|
||||
Job 00001 completed; result: [<cybertools.agent.crawl.mail.MailResource object at ...>];
|
74
agent/testing/main_outlook.py
Normal file
74
agent/testing/main_outlook.py
Normal file
|
@ -0,0 +1,74 @@
|
|||
#! /usr/bin/env python2.4
|
||||
#
|
||||
# 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
|
||||
#
|
||||
|
||||
"""
|
||||
Agent application.
|
||||
|
||||
$Id$
|
||||
"""
|
||||
|
||||
import os
|
||||
from twisted.internet import reactor
|
||||
|
||||
from cybertools.agent.base.agent import Master
|
||||
|
||||
|
||||
application = None # contains application object if started via twistd
|
||||
|
||||
|
||||
def getConfig():
|
||||
agentHome = os.path.abspath(os.path.dirname(__file__))
|
||||
configName = 'outlook.cfg'
|
||||
configFile = open(os.path.join(agentHome, configName))
|
||||
config = configFile.read()
|
||||
configFile.close()
|
||||
return config
|
||||
|
||||
|
||||
def setup(configInfo=None):
|
||||
if configInfo is None:
|
||||
configInfo = getConfig()
|
||||
master = Master(configInfo)
|
||||
setupEnvironment(master.config)
|
||||
master.setup()
|
||||
print 'Starting agent application...'
|
||||
print 'Using controllers %s.' % ', '.join(master.config.controller.names)
|
||||
return master
|
||||
|
||||
|
||||
def setupEnvironment(config):
|
||||
from cybertools.agent.base import agent, control, job, log, schedule
|
||||
from cybertools.agent.core import agent, control, schedule
|
||||
from cybertools.agent.control import cmdline
|
||||
from cybertools.agent.system.windows import api
|
||||
api.setup(config)
|
||||
from cybertools.agent.crawl import base, outlook
|
||||
|
||||
|
||||
def startReactor():
|
||||
reactor.run()
|
||||
print 'Agent application has been stopped.'
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
master = setup()
|
||||
controller = master.controllers[0]
|
||||
controller.createAgent('crawl.outlook', 'sample02')
|
||||
controller.enterJob('sample', 'sample02', params=dict(inbox=True))
|
||||
startReactor()
|
10
agent/testing/outlook.cfg
Normal file
10
agent/testing/outlook.cfg
Normal file
|
@ -0,0 +1,10 @@
|
|||
#
|
||||
# Standard configuration for agent application
|
||||
#
|
||||
# $Id: outlook.cfg 2496 2008-04-04 08:07:22Z helmutm $
|
||||
#
|
||||
|
||||
controller(names=['core.sample'])
|
||||
scheduler(name='core')
|
||||
logger(name='default', standard=30)
|
||||
system.winapi = 'use_outlook'
|
|
@ -44,7 +44,6 @@ def test_suite():
|
|||
DocFileSuite('README.txt', optionflags=flags),
|
||||
DocFileSuite('crawl/README.txt', optionflags=flags),
|
||||
DocFileSuite('crawl/outlook.txt', optionflags=flags),
|
||||
DocFileSuite('crawl/outlook_real.txt', optionflags=flags),
|
||||
))
|
||||
return testSuite
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue