conduit r1338 - in trunk: . conduit/modules/EvolutionModule test/python-tests
- From: jstowers svn gnome org
- To: svn-commits-list gnome org
- Subject: conduit r1338 - in trunk: . conduit/modules/EvolutionModule test/python-tests
- Date: Tue, 26 Feb 2008 23:03:30 +0000 (GMT)
Author: jstowers
Date: Tue Feb 26 23:03:30 2008
New Revision: 1338
URL: http://svn.gnome.org/viewvc/conduit?rev=1338&view=rev
Log:
2008-02-27 John Stowers <john stowers gmail com>
* conduit/modules/EvolutionModule/EvolutionModule.py:
Move some more common code into EvoBase class
* test/python-tests/TestDataProviderEvolution.py:
* test/python-tests/TestSyncEvolutionFolder.py: Add evolution tests
Added:
trunk/test/python-tests/TestDataProviderEvolution.py
trunk/test/python-tests/TestSyncEvolutionFolder.py
Modified:
trunk/ChangeLog
trunk/conduit/modules/EvolutionModule/EvolutionModule.py
Modified: trunk/conduit/modules/EvolutionModule/EvolutionModule.py
==============================================================================
--- trunk/conduit/modules/EvolutionModule/EvolutionModule.py (original)
+++ trunk/conduit/modules/EvolutionModule/EvolutionModule.py Tue Feb 26 23:03:30 2008
@@ -30,8 +30,9 @@
class EvoBase(DataProvider.TwoWay):
def __init__(self, sourceURI, *args):
DataProvider.TwoWay.__init__(self)
- self.defaultURI = sourceURI
- self.sourceURI = sourceURI
+ self.defaultSourceURI = sourceURI
+ self.selectedSourceURI = sourceURI
+ self.allSourceURIs = []
self.uids = None
def _get_object(self, uid):
@@ -93,7 +94,7 @@
DataProvider.TwoWay.finish(self)
self.uids = None
- def configure(self, window, selected, sources, name):
+ def configure(self, window, name):
import gtk
tree = Utils.dataprovider_glade_get_widget(
__file__,
@@ -115,30 +116,28 @@
sourceComboBox.add_attribute(cell, 'text', 0)
sourceComboBox.set_active(0)
- for name,uri in sources:
+ for name,uri in self.allSourceURIs:
rowref = store.append( (name, uri) )
- if uri == selected:
+ if uri == self.selectedSourceURI:
sourceComboBox.set_active_iter(rowref)
dlg = tree.get_widget("EvolutionConfigDialog")
response = Utils.run_dialog (dlg, window)
if response == True:
- selected = store.get_value(sourceComboBox.get_active_iter(), 1)
-
+ self.selectedSourceURI = store.get_value(sourceComboBox.get_active_iter(), 1)
dlg.destroy()
- return selected
def get_configuration(self):
return {
- "sourceURI" : self.sourceURI
+ "sourceURI" : self.selectedSourceURI
}
def set_configuration(self, config):
- self.sourceURI = config.get("sourceURI", self.defaultURI)
+ self.selectedSourceURI = config.get("sourceURI", self.defaultSourceURI)
def get_UID(self):
- return self.sourceURI
+ return self.selectedSourceURI
class EvoContactTwoWay(EvoBase):
@@ -155,7 +154,7 @@
def __init__(self, *args):
EvoBase.__init__(self, EvoContactTwoWay.DEFAULT_ADDRESSBOOK_URI)
- self._addressBooks = evolution.ebook.list_addressbooks()
+ self.allSourceURIs = evolution.ebook.list_addressbooks()
def _get_object(self, LUID):
"""
@@ -186,17 +185,12 @@
def refresh(self):
EvoBase.refresh(self)
- self.book = evolution.ebook.open_addressbook(self.sourceURI)
+ self.book = evolution.ebook.open_addressbook(self.selectedSourceURI)
for i in self.book.get_all_contacts():
self.uids.append(i.get_uid())
def configure(self, window):
- self.sourceURI = EvoBase.configure(self,
- window,
- self.sourceURI,
- self._addressBooks,
- "Addressbook"
- )
+ EvoBase.configure(self, window, "Addressbook")
class EvoCalendarTwoWay(EvoBase):
@@ -212,7 +206,7 @@
def __init__(self, *args):
EvoBase.__init__(self, EvoCalendarTwoWay.DEFAULT_CALENDAR_URI)
- self._calendarURIs = evolution.ecal.list_calendars()
+ self.allSourceURIs = evolution.ecal.list_calendars()
def _get_object(self, LUID):
"""
@@ -247,19 +241,14 @@
EvoBase.refresh(self)
self.calendar = evolution.ecal.open_calendar_source(
- self.sourceURI,
+ self.selectedSourceURI,
evolution.ecal.CAL_SOURCE_TYPE_EVENT
)
for i in self.calendar.get_all_objects():
self.uids.append(i.get_uid())
def configure(self, window):
- self.sourceURI = EvoBase.configure(self,
- window,
- self.sourceURI,
- self._calendarURIs,
- "Calendar"
- )
+ EvoBase.configure(self, window, "Calendar")
class EvoTasksTwoWay(EvoBase):
@@ -275,7 +264,7 @@
def __init__(self, *args):
EvoBase.__init__(self, EvoTasksTwoWay.DEFAULT_TASK_URI)
- self._uris = evolution.ecal.list_task_sources()
+ self.allSourceURIs = evolution.ecal.list_task_sources()
def _get_object(self, LUID):
raw = self.tasks.get_object(LUID, "")
@@ -309,19 +298,14 @@
def refresh(self):
EvoBase.refresh(self)
self.tasks = evolution.ecal.open_calendar_source(
- self.sourceURI,
+ self.selectedSourceURI,
evolution.ecal.CAL_SOURCE_TYPE_TODO
)
for i in self.tasks.get_all_objects():
self.uids.append(i.get_uid())
def configure(self, window):
- self.sourceURI = EvoBase.configure(self,
- window,
- self.sourceURI,
- self._uris,
- "Tasks"
- )
+ EvoBase.configure(self, window, "Tasks")
class EvoMemoTwoWay(EvoBase):
@@ -337,15 +321,14 @@
def __init__(self, *args):
EvoBase.__init__(self, EvoMemoTwoWay.DEFAULT_MEMO_URI)
- self.source = None
- self._memoSources = evolution.ecal.list_memo_sources()
+ self.allSourceURIs = evolution.ecal.list_memo_sources()
def _get_object(self, LUID):
"""
Retrieve a specific contact object from evolution
FIXME: In 0.5 this will replace get(...)
"""
- obj = self.source.get_object(LUID, "")
+ obj = self.memos.get_object(LUID, "")
mtime = datetime.datetime.fromtimestamp(obj.get_modified())
note = Note.Note(
title=obj.get_summary(),
@@ -366,7 +349,7 @@
obj.set_summary(note.title)
if note.contents != None:
obj.set_description(note.contents)
- uid = self.source.add_object(obj)
+ uid = self.memos.add_object(obj)
if uid != None:
mtime = datetime.datetime.fromtimestamp(obj.get_modified())
@@ -376,25 +359,19 @@
def _delete_object(self, uid):
try:
- return self.source.remove_object(self.source.get_object(uid, ""))
+ return self.memos.remove_object(self.memos.get_object(uid, ""))
except:
return False
def refresh(self):
EvoBase.refresh(self)
- self.source = evolution.ecal.open_calendar_source(
- self.sourceURI,
+ self.memos = evolution.ecal.open_calendar_source(
+ self.selectedSourceURI,
evolution.ecal.CAL_SOURCE_TYPE_JOURNAL
)
- for i in self.source.get_all_objects():
+ for i in self.memos.get_all_objects():
self.uids.append(i.get_uid())
def configure(self, window):
- self.sourceURI = EvoBase.configure(self,
- window,
- self.sourceURI,
- self._memoSources,
- "Memo Source"
- )
-
+ EvoBase.configure(self, window, "Memos")
Added: trunk/test/python-tests/TestDataProviderEvolution.py
==============================================================================
--- (empty file)
+++ trunk/test/python-tests/TestDataProviderEvolution.py Tue Feb 26 23:03:30 2008
@@ -0,0 +1,46 @@
+#common sets up the conduit environment
+from common import *
+
+SAFE_TASK_URI="file:///home/john/.evolution/tasks/local/1204062882 7099 2 nzjrs-desktop"
+SAFE_MEMO_URI="file:///home/john/.evolution/memos/local/1204062871 7099 1 nzjrs-desktop"
+SAFE_CALENDAR_URI="file:///home/john/.evolution/calendar/local/1204062855 7099 0 nzjrs-desktop"
+SAFE_CONTACT_URI="file:///home/john/.evolution/addressbook/local/1203075663 31342 0 nzjrs-desktop"
+
+
+TESTS = (
+#uri, #newdata_func, #name
+(SAFE_MEMO_URI, new_note, "EvoMemoTwoWay"),
+(SAFE_CONTACT_URI, new_contact, "EvoContactTwoWay"),
+(SAFE_CALENDAR_URI, new_event, "EvoCalendarTwoWay"),
+(SAFE_TASK_URI, new_event, "EvoTasksTwoWay"),
+)
+
+for uri, newdata_func, name in TESTS:
+ test = SimpleTest(sinkName=name)
+ config = {
+ "sourceURI": uri
+ }
+ test.configure(sink=config)
+
+ #Check we get the correct uri
+ dp = test.get_sink().module
+ try:
+ dp.refresh()
+ ok("Got evolution source uri: %s" % uri,
+ uri in [i[1] for i in dp.allSourceURIs]
+ )
+ except Exception, err:
+ ok("Got evolution source uri: %s" % uri, False)
+
+ newdata = newdata_func(None)
+ test.do_dataprovider_tests(
+ supportsGet=True,
+ supportsDelete=True,
+ safeLUID=None,
+ data=newdata,
+ name=name
+ )
+
+finished()
+
+
Added: trunk/test/python-tests/TestSyncEvolutionFolder.py
==============================================================================
--- (empty file)
+++ trunk/test/python-tests/TestSyncEvolutionFolder.py Tue Feb 26 23:03:30 2008
@@ -0,0 +1,43 @@
+#common sets up the conduit environment
+from common import *
+import conduit.Utils as Utils
+
+SAFE_TASK_URI="file:///home/john/.evolution/tasks/local/1204062882 7099 2 nzjrs-desktop"
+SAFE_MEMO_URI="file:///home/john/.evolution/memos/local/1204062871 7099 1 nzjrs-desktop"
+SAFE_CALENDAR_URI="file:///home/john/.evolution/calendar/local/1204062855 7099 0 nzjrs-desktop"
+SAFE_CONTACT_URI="file:///home/john/.evolution/addressbook/local/1203075663 31342 0 nzjrs-desktop"
+
+
+TESTS = (
+#uri, #newdata_func, #name
+(SAFE_MEMO_URI, new_note, "EvoMemoTwoWay"),
+(SAFE_CONTACT_URI, new_contact, "EvoContactTwoWay"),
+(SAFE_CALENDAR_URI, new_event, "EvoCalendarTwoWay"),
+(SAFE_TASK_URI, new_event, "EvoTasksTwoWay"),
+)
+
+for uri, newdata_func, name in TESTS:
+ #setup the conduit
+ test = SimpleSyncTest()
+ test.prepare(
+ source=test.get_dataprovider(name),
+ sink=test.get_dataprovider("FolderTwoWay")
+ )
+ test.set_two_way_policy({"conflict":"ask","deleted":"ask"})
+
+ #configure the source and sink
+ test.configure(
+ source={"sourceURI":uri},
+ sink={"folder":"file://"+Utils.new_tempdir()}
+ )
+ test.set_two_way_sync(True)
+
+ a = test.get_source_count()
+ ok("%s: %s items to sync" % (name, a), a > 0)
+
+ #sync
+ test.sync()
+ abort,error,conflict = test.get_sync_result()
+ ok("%s: sync completed" % name, abort == False and error == False and conflict == False)
+
+finished()
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]