[CalendarServer-changes] [12109] twext/trunk/twext/enterprise/test/test_queue.py

source_changes at macosforge.org source_changes at macosforge.org
Wed Mar 12 11:21:27 PDT 2014


Revision: 12109
          http://trac.calendarserver.org//changeset/12109
Author:   wsanchez at apple.com
Date:     2013-12-13 20:45:59 -0800 (Fri, 13 Dec 2013)
Log Message:
-----------
Oh the insanity

Modified Paths:
--------------
    twext/trunk/twext/enterprise/test/test_queue.py

Modified: twext/trunk/twext/enterprise/test/test_queue.py
===================================================================
--- twext/trunk/twext/enterprise/test/test_queue.py	2013-12-14 04:34:13 UTC (rev 12108)
+++ twext/trunk/twext/enterprise/test/test_queue.py	2013-12-14 04:45:59 UTC (rev 12109)
@@ -20,48 +20,40 @@
 
 import datetime
 
-# TODO: There should be a store-building utility within twext.enterprise.
+from zope.interface.verify import verifyObject
 
-from twisted.protocols.amp import Command
-from twisted.internet.task import Clock as _Clock
-
-from txdav.common.datastore.test.util import buildStore
-
-from twext.enterprise.dal.syntax import SchemaSyntax, Select
-from twext.enterprise.dal.record import fromTable
-from twext.enterprise.dal.test.test_parseschema import SchemaTestHelper
-
-from twext.enterprise.queue import (
-    inTransaction, PeerConnectionPool, WorkItem, astimestamp
-)
-
-from twisted.trial.unittest import TestCase
 from twisted.python.failure import Failure
+from twisted.trial.unittest import TestCase, SkipTest
+from twisted.test.proto_helpers import StringTransport, MemoryReactor
 from twisted.internet.defer import (
-    Deferred, inlineCallbacks, gatherResults, passthru
+    Deferred, inlineCallbacks, gatherResults, passthru, returnValue
 )
-
+from twisted.internet.task import Clock as _Clock
+from twisted.protocols.amp import Command
 from twisted.application.service import Service, MultiService
 
+from twext.enterprise.dal.syntax import SchemaSyntax, Select
+from twext.enterprise.dal.record import fromTable, Record
+from twext.enterprise.dal.test.test_parseschema import SchemaTestHelper
+from twext.enterprise.fixtures import buildConnectionPool
+from twext.enterprise.fixtures import SteppablePoolHelper
+from twext.enterprise.fixtures import ConnectionPoolHelper
 from twext.enterprise.queue import (
+    inTransaction, PeerConnectionPool, WorkItem, astimestamp,
     LocalPerformer, _IWorkPerformer, WorkerConnectionPool, SchemaAMP,
-    TableSyntaxByName
+    TableSyntaxByName, ConnectionFromPeerNode, LocalQueuer,
+    _BaseQueuer, NonPerformingQueuer
 )
-
-from twext.enterprise.dal.record import Record
-
-from twext.enterprise.queue import ConnectionFromPeerNode
-from twext.enterprise.fixtures import buildConnectionPool
-from zope.interface.verify import verifyObject
-from twisted.test.proto_helpers import StringTransport, MemoryReactor
-from twext.enterprise.fixtures import SteppablePoolHelper
-from twisted.internet.defer import returnValue
-from twext.enterprise.queue import LocalQueuer
-from twext.enterprise.fixtures import ConnectionPoolHelper
-
-from twext.enterprise.queue import _BaseQueuer, NonPerformingQueuer
 import twext.enterprise.queue
 
+# TODO: There should be a store-building utility within twext.enterprise.
+try:
+    from txdav.common.datastore.test.util import buildStore
+except ImportError:
+    def buildStore(*args, **kwargs):
+        raise SkipTest(
+            "buildStore is not available, because it's in txdav; duh."
+        )
 
 
 class Clock(_Clock):
@@ -191,30 +183,40 @@
     """
 )
 
-schema = SchemaSyntax(SimpleSchemaHelper().schemaFromString(schemaText))
+try:
+    schema = SchemaSyntax(SimpleSchemaHelper().schemaFromString(schemaText))
 
-dropSQL = [
-    "drop table {name}".format(name=table.model.name)
-    for table in schema
-]
+    dropSQL = [
+        "drop table {name}".format(name=table.model.name)
+        for table in schema
+    ]
+except SkipTest as e:
+    DummyWorkDone = DummyWorkItem = object
+    skip = e
+else:
+    DummyWorkDone = fromTable(schema.DUMMY_WORK_DONE)
+    DummyWorkItem = fromTable(schema.DUMMY_WORK_ITEM)
+    skip = False
 
 
-class DummyWorkDone(Record, fromTable(schema.DUMMY_WORK_DONE)):
+
+class DummyWorkDone(Record, DummyWorkDone):
     """
     Work result.
     """
 
 
 
-class DummyWorkItem(WorkItem, fromTable(schema.DUMMY_WORK_ITEM)):
+class DummyWorkItem(WorkItem, DummyWorkItem):
     """
     Sample L{WorkItem} subclass that adds two integers together and stores them
     in another table.
     """
 
     def doWork(self):
-        return DummyWorkDone.create(self.transaction, workID=self.workID,
-                                    aPlusB=self.a + self.b)
+        return DummyWorkDone.create(
+            self.transaction, workID=self.workID, aPlusB=self.a + self.b
+        )
 
 
     @classmethod
@@ -277,8 +279,9 @@
         L{WorkItem.forTable} returns L{WorkItem} subclasses mapped to the given
         table.
         """
-        self.assertIdentical(WorkItem.forTable(schema.DUMMY_WORK_ITEM),
-                             DummyWorkItem)
+        self.assertIdentical(
+            WorkItem.forTable(schema.DUMMY_WORK_ITEM), DummyWorkItem
+        )
 
 
 
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.macosforge.org/pipermail/calendarserver-changes/attachments/20140312/8a0fe5bf/attachment.html>


More information about the calendarserver-changes mailing list