conduit r1361 - in trunk: . conduit/modules test/python-tests



Author: jstowers
Date: Sun Mar  9 11:00:19 2008
New Revision: 1361
URL: http://svn.gnome.org/viewvc/conduit?rev=1361&view=rev

Log:
2008-03-09  John Stowers  <john stowers gmail com>

	* conduit/modules/TestModule.py:
	* test/python-tests/TestCoreConduit.py:
	* test/python-tests/TestCoreSyncTestDataProviders.py: Make the fail refresh
	sink twoway, and test some more error paths.



Modified:
   trunk/ChangeLog
   trunk/conduit/modules/TestModule.py
   trunk/test/python-tests/TestCoreConduit.py
   trunk/test/python-tests/TestCoreSyncTestDataProviders.py

Modified: trunk/conduit/modules/TestModule.py
==============================================================================
--- trunk/conduit/modules/TestModule.py	(original)
+++ trunk/conduit/modules/TestModule.py	Sun Mar  9 11:00:19 2008
@@ -32,7 +32,7 @@
     "TestConflict" :            { "type": "dataprovider" },
     "TestConversionArgs" :      { "type": "dataprovider" },
     "TestTwoWay" :              { "type": "dataprovider" },
-    "TestSinkFailRefresh" :     { "type": "dataprovider" },
+    "TestFailRefresh" :     { "type": "dataprovider" },
     "TestSinkNeedConfigure" :   { "type": "dataprovider" },
     "TestFactory" :             { "type": "dataprovider-factory" },
 #    "TestFactoryRemoval" :      { "type": "dataprovider-factory" },
@@ -98,6 +98,7 @@
         DataProvider.DataProviderBase.__init__(self)
         #Through an error on the nth time through
         self.errorAfter = 999
+        self.errorFatal = False
         self.newHash = False
         self.newMtime = False
         self.slow = False
@@ -122,6 +123,8 @@
 
         def setError(param):
             self.errorAfter = int(param)
+        def setErrorFatal(param):
+            self.errorFatal = bool(param)
         def setSlow(param):
             self.slow = bool(param)
         def setNewHash(param):
@@ -140,6 +143,12 @@
                     "InitialValue" : self.errorAfter
                     },
                     {
+                    "Name" : "Error is Fatal?",
+                    "Widget" : gtk.CheckButton,
+                    "Callback" : setErrorFatal,
+                    "InitialValue" : self.errorFatal
+                    },
+                    {
                     "Name" : "Take a Long Time?",
                     "Widget" : gtk.CheckButton,
                     "Callback" : setSlow,
@@ -185,6 +194,7 @@
     def get_configuration(self):
         return {
             "errorAfter" : self.errorAfter,
+            "errorFatal" : self.errorFatal,
             "slow" : self.slow,
             "newHash" : self.newHash,
             "newMtime" : self.newMtime,
@@ -273,7 +283,10 @@
 
         index = int(LUID)
         if index >= self.errorAfter:
-            raise Exceptions.SyncronizeError("Error After:%s Count:%s" % (self.errorAfter, index))
+            if self.errorFatal:
+                raise Exceptions.SyncronizeFatalError("Error After:%s Count:%s" % (self.errorAfter, index))
+            else:
+                raise Exceptions.SyncronizeError("Error After:%s Count:%s" % (self.errorAfter, index))
 
         mtime = DEFAULT_MTIME
         if self.newMtime:
@@ -312,7 +325,10 @@
         if self.slow:
             time.sleep(1)    
         if self.count >= self.errorAfter:
-            raise Exceptions.SyncronizeError("Error After:%s Count:%s" % (self.errorAfter, self.count))
+            if self.errorFatal:
+                raise Exceptions.SyncronizeFatalError("Error After:%s Count:%s" % (self.errorAfter, self.count))
+            else:
+                raise Exceptions.SyncronizeError("Error After:%s Count:%s" % (self.errorAfter, self.count))
         self.count += 1
         newData = TestDataType(data.get_UID())
         return newData.get_rid()
@@ -617,22 +633,21 @@
     def is_configured(self, isSource, isTwoWay):
         return self.isConfigured
 
-class TestSinkFailRefresh(_TestBase, DataProvider.DataSink):
+class TestFailRefresh(TestTwoWay):
 
     _name_ = "Test Fail Refresh"
     _description_ = "Fails Refresh"
     _category_ = conduit.dataproviders.CATEGORY_TEST
-    _module_type_ = "sink"
+    _module_type_ = "twoway"
     _in_type_ = "test_type"
     _out_type_ = "test_type"
     _icon_ = "dialog-error"
 
     def __init__(self, *args):
-        _TestBase.__init__(self)
-        DataProvider.DataSink.__init__(self)
+        TestTwoWay.__init__(self)
         
     def refresh(self):
-        DataProvider.DataSink.refresh(self)
+        TestTwoWay.refresh(self)
         raise Exceptions.RefreshError
 
 class TestConflict(_TestBase, DataProvider.DataSink):

Modified: trunk/test/python-tests/TestCoreConduit.py
==============================================================================
--- trunk/test/python-tests/TestCoreConduit.py	(original)
+++ trunk/test/python-tests/TestCoreConduit.py	Sun Mar  9 11:00:19 2008
@@ -11,7 +11,7 @@
 #add some dataproviders in different places
 dps = test.get_dataprovider("TestSource")
 dpk1 = test.get_dataprovider("TestSink")
-dpk2 = test.get_dataprovider("TestSinkFailRefresh")
+dpk2 = test.get_dataprovider("TestFailRefresh")
 dptw1 = test.get_dataprovider("TestTwoWay")
 dptw2 = test.get_dataprovider("TestTwoWay") 
 dptw3 = test.get_dataprovider("TestTwoWay") 

Modified: trunk/test/python-tests/TestCoreSyncTestDataProviders.py
==============================================================================
--- trunk/test/python-tests/TestCoreSyncTestDataProviders.py	(original)
+++ trunk/test/python-tests/TestCoreSyncTestDataProviders.py	Sun Mar  9 11:00:19 2008
@@ -24,13 +24,37 @@
 ok("Non fatal error trapped", error == True)
 
 ###
-#One way, should abort (fail refresh)
+#One way, should abort, but still put data in second sink
 ###
-ok("---- ONE WAY: SHOULD ABORT (Fail Refresh)", True)
+ok("---- ONE WAY: SHOULD ABORT", True)
 test = SimpleSyncTest()
 test.prepare(
         test.get_dataprovider("TestSource"), 
-        test.get_dataprovider("TestSinkFailRefresh")
+        test.get_dataprovider("TestSink")
+        )
+test.add_extra_sink(
+        test.get_dataprovider("TestSink")
+        )
+test.set_two_way_policy({"conflict":"skip","deleted":"skip"})
+config = {}
+config["numData"] = 5
+config["errorAfter"] = 2
+config["errorFatal"] = True
+test.configure(source=config, sink=config)
+
+test.set_two_way_sync(False)
+test.sync(debug=False)
+aborted = test.sync_aborted()
+ok("Sync completed", aborted == False)
+
+###
+#One way, should abort (sink fail refresh)
+###
+ok("---- ONE WAY: SHOULD ABORT (Sink Fail Refresh)", True)
+test = SimpleSyncTest()
+test.prepare(
+        test.get_dataprovider("TestSource"), 
+        test.get_dataprovider("TestFailRefresh")
         )
 test.set_two_way_policy({"conflict":"skip","deleted":"skip"})
 
@@ -40,6 +64,22 @@
 ok("Sync aborted due to no refreshing sinks", aborted == True)
 
 ###
+#One way, should abort (source fail refresh)
+###
+ok("---- ONE WAY: SHOULD ABORT (Source Fail Refresh)", True)
+test = SimpleSyncTest()
+test.prepare(
+        test.get_dataprovider("TestFailRefresh"),
+        test.get_dataprovider("TestSink")
+        )
+test.set_two_way_policy({"conflict":"skip","deleted":"skip"})
+
+test.set_two_way_sync(False)
+test.sync(debug=False)
+aborted = test.sync_aborted()
+ok("Sync aborted due to source fail refresh", aborted == True)
+
+###
 #One way, should abort (not configured)
 ###
 ok("---- ONE WAY: SHOULD ABORT (Not Configured)", True)



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]