[conduit: 64/138] Expose whether or not a dataprovider is two way friendly
- From: John Carr <johncarr src gnome org>
- To: svn-commits-list gnome org
- Subject: [conduit: 64/138] Expose whether or not a dataprovider is two way friendly
- Date: Thu, 21 May 2009 03:32:18 -0400 (EDT)
commit 02bf97225c5e4d5766b6e84983152a595db97960
Author: John Carr <john carr unrouted co uk>
Date: Fri May 1 05:57:38 2009 -0700
Expose whether or not a dataprovider is two way friendly
---
test/soup/modules/__init__.py | 4 +++
test/soup/modules/evolution.py | 12 +++++---
test/soup/modules/folder.py | 3 +-
test/soup/modules/ipod.py | 52 ++++++++++--------------------------
test/soup/modules/n800.py | 37 ++++++++-----------------
test/soup/test_synchronization.py | 2 +
6 files changed, 43 insertions(+), 67 deletions(-)
diff --git a/test/soup/modules/__init__.py b/test/soup/modules/__init__.py
index a9c12fd..383d0bb 100644
--- a/test/soup/modules/__init__.py
+++ b/test/soup/modules/__init__.py
@@ -49,6 +49,10 @@ class ModuleWrapper(object):
elif t == CHANGE_DELETE:
self.delete(uid)
+ @classmethod
+ def is_twoway(cls):
+ return cls.klass._module_type_ == "twoway"
+
def get_wrapped(self):
return self.conduit.wrap_dataprovider(self.dp)
diff --git a/test/soup/modules/evolution.py b/test/soup/modules/evolution.py
index 854d8bf..ee343f2 100644
--- a/test/soup/modules/evolution.py
+++ b/test/soup/modules/evolution.py
@@ -10,32 +10,36 @@ import conduit.modules.EvolutionModule.EvolutionModule as EvolutionModule
class EvolutionMemo(soup.modules.ModuleWrapper):
+ klass = EvolutionModule.EvoMemoTwoWay
dataclass = NoteWrapper
def create_dataprovider(self):
- return EvolutionModule.EvoMemoTwoWay()
+ return self.klass()
class EvolutionContacts(soup.modules.ModuleWrapper):
+ klass = EvolutionModule.EvoContactTwoWay
dataclass = ContactWrapper
def create_dataprovider(self):
- return EvolutionModule.EvoContactTwoWay()
+ return self.klass()
class EvolutionCalendar(soup.modules.ModuleWrapper):
+ klass = EvolutionModule.EvoCalendarTwoWay
dataclass = EventWrapper
def create_dataprovider(self):
- return EvolutionModule.EvoCalendarTwoWay()
+ return self.klass()
class EvolutionTasks(soup.modules.ModuleWrapper):
+ klass = EvolutionModule.EvoTasksTwoWay
dataclass = EventWrapper
def create_dataprovider(self):
- return EvolutionModule.EvoTasksTwoWay()
+ return self.klass()
diff --git a/test/soup/modules/folder.py b/test/soup/modules/folder.py
index da5b56c..72f986c 100644
--- a/test/soup/modules/folder.py
+++ b/test/soup/modules/folder.py
@@ -7,10 +7,11 @@ import conduit.utils as Utils
class Folder(soup.modules.ModuleWrapper):
+ klass = FileModule.FolderTwoWay
dataclass = FileWrapper
def create_dataprovider(self):
- dp = FileModule.FolderTwoWay()
+ dp = self.klass()
dp.set_configuration({
"folder": Utils.new_tempdir(),
})
diff --git a/test/soup/modules/ipod.py b/test/soup/modules/ipod.py
index 56ef352..f950958 100644
--- a/test/soup/modules/ipod.py
+++ b/test/soup/modules/ipod.py
@@ -13,53 +13,31 @@ import conduit.utils as Utils
import gpod
-def create_fake_ipod():
- dir = Utils.new_tempdir()
- assert gpod.gpod.itdb_init_ipod(dir, "MA450", "Test iPod", None)
- return dir
-
-
-class iPodNote(soup.modules.ModuleWrapper):
-
- dataclass = NoteWrapper
+class iPodWrapper(object):
def create_dataprovider(self):
- self.folder = create_fake_ipod()
- return iPodModule.IPodNoteTwoWay(self.folder, "")
+ self.folder = Utils.new_tempdir()
+ assert gpod.gpod.itdb_init_ipod(self.folder, "MA450", "Test iPod", None)
+ return self.klass(self.folder, "")
-class iPodContacts(soup.modules.ModuleWrapper):
+class iPodNote(soup.modules.ModuleWrapper, iPodWrapper):
+ klass = iPodModule.IPodNoteTwoWay
+ dataclass = NoteWrapper
+class iPodContacts(soup.modules.ModuleWrapper, iPodWrapper):
+ klass = iPodModule.IPodContactsTwoWay
dataclass = ContactWrapper
- def create_dataprovider(self):
- self.folder = create_fake_ipod()
- return iPodModule.IPodContactsTwoWay(self.folder, "")
-
-
-class iPodCalendar(soup.modules.ModuleWrapper):
-
+class iPodCalendar(soup.modules.ModuleWrapper, iPodWrapper):
+ klass = iPodModule.IPodCalendarTwoWay
dataclass = EventWrapper
- def create_dataprovider(self):
- self.folder = create_fake_ipod()
- return iPodModule.IPodCalendarTwoWay(self.folder, "")
-
-
-class iPodPhoto(soup.modules.ModuleWrapper):
-
+class iPodPhoto(soup.modules.ModuleWrapper, iPodWrapper):
+ klass = iPodModule.IPodPhotoSink
dataclass = PhotoWrapper
- def create_dataprovider(self):
- self.folder = create_fake_ipod()
- return iPodModule.IPodPhotoSink(self.folder, "")
-
-
-class iPodMusic(soup.modules.ModuleWrapper):
-
+class iPodMusic(soup.modules.ModuleWrapper, iPodWrapper):
+ klass = iPodModule.IPodMusicTwoWay
dataclass = MusicWrapper
- def create_dataprovider(self):
- self.folder = create_fake_ipod()
- return iPodModule.IPodMusicTwoWay(self.folder, "")
-
diff --git a/test/soup/modules/n800.py b/test/soup/modules/n800.py
index 0d27bc1..839459f 100644
--- a/test/soup/modules/n800.py
+++ b/test/soup/modules/n800.py
@@ -10,40 +10,27 @@ from soup.data.video import VideoWrapper
import conduit.modules.N800Module.N800Module as N800Module
import conduit.utils as Utils
-
-class N800Folder(soup.modules.ModuleWrapper):
-
- dataclass = FileWrapper
+class N800Wrapper(object):
def create_dataprovider(self):
self.folder = Utils.new_tempdir()
- return N800Module.N800FolderTwoWay(self.folder, "")
+ return self.klass(self.folder, "")
-class N800Photo(soup.modules.ModuleWrapper):
+class N800Folder(soup.modules.ModuleWrapper, N800Wrapper):
+ klass = N800Module.N800FolderTwoWay
+ dataclass = FileWrapper
+class N800Photo(soup.modules.ModuleWrapper, N800Wrapper):
+ klass = N800Module.N800PhotoTwoWay
dataclass = PhotoWrapper
- def create_dataprovider(self):
- self.folder = Utils.new_tempdir()
- return N800Module.N800PhotoTwoWay(self.folder, "")
-
-
-#class N800Music(soup.modules.ModuleWrapper):
-
-# dataclass = MusicWrapper
-
-# def create_dataprovider(self):
-# self.folder = Utils.new_tempdir()
-# return N800Module.N800MusicTwoWay(self.folder, "")
-
-
-#class N800Video(soup.modules.ModuleWrapper):
+class N800Audio(soup.modules.ModuleWrapper, N800Wrapper):
+ klass = N800Module.N800AudioTwoWay
+ dataclass = MusicWrapper
+#class N800Video(soup.modules.ModuleWrapper, N800Wraooer):
+# klass = N800Module.N800VideoTwoWay
# dataclass = VideoWrapper
-# def create_dataprovider(self):
-# self.folder = Utils.new_tempdir()
-# return N800Module.N800VideoTwoWay(self.folder, "")
-
diff --git a/test/soup/test_synchronization.py b/test/soup/test_synchronization.py
index 96ecfcc..9b368d2 100644
--- a/test/soup/test_synchronization.py
+++ b/test/soup/test_synchronization.py
@@ -105,6 +105,8 @@ for i in range(len(mods)):
if sink.dataclass != source.dataclass:
# FIXME: Need a generic way to say, hey you can sync contacts to folders
continue
+ if not source.is_twoway() or not sink.is_twoway():
+ continue
testklass = make_testcase(source, sink, sink.dataclass)
setattr(self, testklass.name(), testklass)
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]