Beispiel #1
0
 def thread_func(testclass, mainTransaction, funcToRun):
     self.assertIsNone(LockingTransaction.get())
     LockingTransaction._transactions.local = LockingTransaction()
     LockingTransaction._transactions.local._info = Info(TransactionState.Running, LockingTransaction._transactions.local._startPoint)
     funcToRun(testclass, mainTransaction)
     LockingTransaction._transactions = thread_local()
     self.assertIsNone(LockingTransaction.get())
Beispiel #2
0
 def thread_func(testclass, mainTransaction, funcToRun):
     self.assertIsNone(LockingTransaction.get())
     LockingTransaction._transactions.local = LockingTransaction()
     LockingTransaction._transactions.local._info = Info(
         TransactionState.Running,
         LockingTransaction._transactions.local._startPoint)
     funcToRun(testclass, mainTransaction)
     LockingTransaction._transactions = thread_local()
     self.assertIsNone(LockingTransaction.get())
Beispiel #3
0
 def secondary(testclass, mainTransaction):
     testclass.assertIsInstance(LockingTransaction.get(),
                                LockingTransaction)
     testclass.assertIsInstance(LockingTransaction.ensureGet(),
                                LockingTransaction)
     # Make sure we're getting a unique locking transaction in this auxiliary thread
     testclass.assertNotEqual(LockingTransaction.ensureGet(),
                              mainTransaction)
Beispiel #4
0
 def testCreateThreadLocal_PASS(self):
     with running_transaction(self):
         def secondary(testclass, mainTransaction):
             testclass.assertIsInstance(LockingTransaction.get(), LockingTransaction)
             testclass.assertIsInstance(LockingTransaction.ensureGet(), LockingTransaction)
             # Make sure we're getting a unique locking transaction in this auxiliary thread
             testclass.assertNotEqual(LockingTransaction.ensureGet(), mainTransaction)
         self.assertIsInstance(LockingTransaction.get(), LockingTransaction)
         self.assertIsInstance(LockingTransaction.ensureGet(), LockingTransaction)
         self.secondary_op(secondary)
Beispiel #5
0
def running_transaction(thetest):
    # Fake a running transaction
    LockingTransaction._transactions.local = LockingTransaction()
    LockingTransaction._transactions.local._info = Info(TransactionState.Running, LockingTransaction._transactions.local._startPoint)
    LockingTransaction.ensureGet()._readPoint = -1
    LockingTransaction.transactionCounter = count()
    LockingTransaction.ensureGet()._startPoint = time()
    yield
    # Clean up and remove LockingTransaction we created
    LockingTransaction._transactions = thread_local()
    thetest.assertIsNone(LockingTransaction.get())
Beispiel #6
0
def running_transaction(thetest):
    # Fake a running transaction
    LockingTransaction._transactions.local = LockingTransaction()
    LockingTransaction._transactions.local._info = Info(
        TransactionState.Running,
        LockingTransaction._transactions.local._startPoint)
    LockingTransaction.ensureGet()._readPoint = -1
    LockingTransaction.transactionCounter = count()
    LockingTransaction.ensureGet()._startPoint = time()
    yield
    # Clean up and remove LockingTransaction we created
    LockingTransaction._transactions = thread_local()
    thetest.assertIsNone(LockingTransaction.get())
Beispiel #7
0
    def testCreateThreadLocal_PASS(self):
        with running_transaction(self):

            def secondary(testclass, mainTransaction):
                testclass.assertIsInstance(LockingTransaction.get(),
                                           LockingTransaction)
                testclass.assertIsInstance(LockingTransaction.ensureGet(),
                                           LockingTransaction)
                # Make sure we're getting a unique locking transaction in this auxiliary thread
                testclass.assertNotEqual(LockingTransaction.ensureGet(),
                                         mainTransaction)

            self.assertIsInstance(LockingTransaction.get(), LockingTransaction)
            self.assertIsInstance(LockingTransaction.ensureGet(),
                                  LockingTransaction)
            self.secondary_op(secondary)
Beispiel #8
0
 def secondary(testclass, mainTransaction):
     testclass.assertIsInstance(LockingTransaction.get(), LockingTransaction)
     testclass.assertIsInstance(LockingTransaction.ensureGet(), LockingTransaction)
     # Make sure we're getting a unique locking transaction in this auxiliary thread
     testclass.assertNotEqual(LockingTransaction.ensureGet(), mainTransaction)
Beispiel #9
0
 def testNone_PASS(self):
     self.assertIsNone(LockingTransaction.get())
Beispiel #10
0
 def testNone_PASS(self):
     self.assertIsNone(LockingTransaction.get())