[CalendarServer-changes] [14914] CalendarServer/branches/users/cdaboo/cfod

source_changes at macosforge.org source_changes at macosforge.org
Thu Jun 25 11:47:00 PDT 2015


Revision: 14914
          http://trac.calendarserver.org//changeset/14914
Author:   cdaboo at apple.com
Date:     2015-06-25 11:47:00 -0700 (Thu, 25 Jun 2015)
Log Message:
-----------
More PyPy fixes.

Modified Paths:
--------------
    CalendarServer/branches/users/cdaboo/cfod/twistedcaldav/sql.py
    CalendarServer/branches/users/cdaboo/cfod/twistedcaldav/test/test_database.py
    CalendarServer/branches/users/cdaboo/cfod/twistedcaldav/test/test_sql.py
    CalendarServer/branches/users/cdaboo/cfod/twistedcaldav/test/test_timezones.py
    CalendarServer/branches/users/cdaboo/cfod/twistedcaldav/test/test_upgrade.py
    CalendarServer/branches/users/cdaboo/cfod/twistedcaldav/upgrade.py
    CalendarServer/branches/users/cdaboo/cfod/txdav/caldav/datastore/test/test_file.py

Modified: CalendarServer/branches/users/cdaboo/cfod/twistedcaldav/sql.py
===================================================================
--- CalendarServer/branches/users/cdaboo/cfod/twistedcaldav/sql.py	2015-06-24 19:47:21 UTC (rev 14913)
+++ CalendarServer/branches/users/cdaboo/cfod/twistedcaldav/sql.py	2015-06-25 18:47:00 UTC (rev 14914)
@@ -192,17 +192,17 @@
         # want other processes to get stomped on or stomp on us.
         old_isolation = self._db_connection.isolation_level
         self._db_connection.isolation_level = None
-        q.execute("begin exclusive transaction")
+        try:
+            q.execute("begin exclusive transaction")
 
-        # We re-check whether the schema table is present again AFTER we've got an exclusive
-        # lock as some other server process may have snuck in and already created it
-        # before we got the lock, or whilst we were waiting for it.
-        if not self._test_schema_table(q):
-            self._db_init_schema_table(q)
-            self._db_init_data_tables(q)
-            self._db_recreate(False)
+            # We re-check whether the schema table is present again AFTER we've got an exclusive
+            # lock as some other server process may have snuck in and already created it
+            # before we got the lock, or whilst we were waiting for it.
+            if not self._test_schema_table(q):
+                self._db_init_schema_table(q)
+                self._db_init_data_tables(q)
+                self._db_recreate(False)
 
-        try:
             q.execute("commit")
         except DatabaseError:
             pass

Modified: CalendarServer/branches/users/cdaboo/cfod/twistedcaldav/test/test_database.py
===================================================================
--- CalendarServer/branches/users/cdaboo/cfod/twistedcaldav/test/test_database.py	2015-06-24 19:47:21 UTC (rev 14913)
+++ CalendarServer/branches/users/cdaboo/cfod/twistedcaldav/test/test_database.py	2015-06-25 18:47:00 UTC (rev 14914)
@@ -124,6 +124,7 @@
         self.assertFalse(db.initialized)
         yield db.open()
         self.assertTrue(db.initialized)
+        db.close()
 
 
     @inlineCallbacks
@@ -154,6 +155,7 @@
         self.assertEqual(items, (("FOO", "BAR"),))
         items = (yield db.queryList("SELECT * from TESTTYPE"))
         self.assertEqual(items, ("FOO",))
+        db.close()
 
 
     @inlineCallbacks
@@ -189,6 +191,7 @@
         yield self.inlineCallbackRaises(Database.TestDBRecreateUpgrade.RecreateDBException, db.open)
         items = (yield db.query("SELECT * from TESTTYPE"))
         self.assertEqual(items, ())
+        db.close()
 
 
     @inlineCallbacks
@@ -215,6 +218,7 @@
         yield db.open()
         items = (yield db.query("SELECT * from TESTTYPE"))
         self.assertEqual(items, (("FOO", "BAR"),))
+        db.close()
 
 
     @inlineCallbacks
@@ -235,3 +239,4 @@
         yield db.open()
         items = (yield db.query("SELECT * from TESTTYPE"))
         self.assertEqual(items, (("FOO", "BAR"),))
+        db.close()

Modified: CalendarServer/branches/users/cdaboo/cfod/twistedcaldav/test/test_sql.py
===================================================================
--- CalendarServer/branches/users/cdaboo/cfod/twistedcaldav/test/test_sql.py	2015-06-24 19:47:21 UTC (rev 14913)
+++ CalendarServer/branches/users/cdaboo/cfod/twistedcaldav/test/test_sql.py	2015-06-25 18:47:00 UTC (rev 14914)
@@ -107,6 +107,7 @@
         self.assertFalse(hasattr(db, "_db_connection"))
         self.assertTrue(db._db() is not None)
         self.assertTrue(db._db_connection is not None)
+        db._db_close()
 
 
     def test_connect_autocommit(self):
@@ -117,6 +118,7 @@
         self.assertFalse(hasattr(db, "_db_connection"))
         self.assertTrue(db._db() is not None)
         self.assertTrue(db._db_connection is not None)
+        db._db_close()
 
 
     def test_readwrite(self):
@@ -129,6 +131,7 @@
         q = db._db().execute("SELECT * from TESTTYPE")
         items = [i for i in q.fetchall()]
         self.assertEqual(items, [("FOO", "BAR")])
+        db._db_close()
 
 
     def test_readwrite_autocommit(self):
@@ -140,6 +143,7 @@
         q = db._db().execute("SELECT * from TESTTYPE")
         items = [i for i in q.fetchall()]
         self.assertEqual(items, [("FOO", "BAR")])
+        db._db_close()
 
 
     def test_readwrite_cursor(self):
@@ -150,6 +154,7 @@
         db._db_execute("INSERT into TESTTYPE (KEY, VALUE) values (:1, :2)", "FOO", "BAR")
         items = db._db_execute("SELECT * from TESTTYPE")
         self.assertEqual(items, [("FOO", "BAR")])
+        db._db_close()
 
 
     def test_readwrite_cursor_autocommit(self):
@@ -160,6 +165,7 @@
         db._db_execute("INSERT into TESTTYPE (KEY, VALUE) values (:1, :2)", "FOO", "BAR")
         items = db._db_execute("SELECT * from TESTTYPE")
         self.assertEqual(items, [("FOO", "BAR")])
+        db._db_close()
 
 
     def test_readwrite_rollback(self):
@@ -171,6 +177,7 @@
         db._db_rollback()
         items = db._db_execute("SELECT * from TESTTYPE")
         self.assertEqual(items, [])
+        db._db_close()
 
 
     def test_close(self):
@@ -194,6 +201,7 @@
                 try:
                     db = SQL.TestDBPauseInInit(dbname)
                     db._db()
+                    db._db_close()
                     self.result = True
                 except:
                     self.result = False
@@ -224,6 +232,7 @@
         self.assertRaises(SQL.TestDBRecreateUpgrade.RecreateDBException, db._db)
         items = db._db_execute("SELECT * from TESTTYPE")
         self.assertEqual(items, [])
+        db._db_close()
 
 
     def test_version_upgrade_persistent(self):
@@ -249,6 +258,7 @@
         self.assertTrue(db._db() is not None)
         items = db._db_execute("SELECT * from TESTTYPE")
         self.assertEqual(items, [("FOO", "BAR")])
+        db._db_close()
 
 
     def test_version_upgrade_persistent_add_index(self):
@@ -268,3 +278,4 @@
         self.assertTrue(db._db() is not None)
         items = db._db_execute("SELECT * from TESTTYPE")
         self.assertEqual(items, [("FOO", "BAR")])
+        db._db_close()

Modified: CalendarServer/branches/users/cdaboo/cfod/twistedcaldav/test/test_timezones.py
===================================================================
--- CalendarServer/branches/users/cdaboo/cfod/twistedcaldav/test/test_timezones.py	2015-06-24 19:47:21 UTC (rev 14913)
+++ CalendarServer/branches/users/cdaboo/cfod/twistedcaldav/test/test_timezones.py	2015-06-25 18:47:00 UTC (rev 14914)
@@ -325,3 +325,5 @@
 
         self.assertTrue(os.path.exists(os.path.join(config.DataRoot, "zoneinfo")))
         self.assertTrue(os.path.exists(os.path.join(config.DataRoot, "zoneinfo", "America", "New_York.ics")))
+
+    test_copyPackage_Concurrency.skip = "This tests needs to use separate processes rather than threads to work properly as the FilesystemLock object is process-based "

Modified: CalendarServer/branches/users/cdaboo/cfod/twistedcaldav/test/test_upgrade.py
===================================================================
--- CalendarServer/branches/users/cdaboo/cfod/twistedcaldav/test/test_upgrade.py	2015-06-24 19:47:21 UTC (rev 14913)
+++ CalendarServer/branches/users/cdaboo/cfod/twistedcaldav/test/test_upgrade.py	2015-06-25 18:47:00 UTC (rev 14914)
@@ -1502,6 +1502,7 @@
         )
 
         yield txn.commit()
+        sqliteProxyService.close()
 
 
     def test_resourcesXML(self):

Modified: CalendarServer/branches/users/cdaboo/cfod/twistedcaldav/upgrade.py
===================================================================
--- CalendarServer/branches/users/cdaboo/cfod/twistedcaldav/upgrade.py	2015-06-24 19:47:21 UTC (rev 14913)
+++ CalendarServer/branches/users/cdaboo/cfod/twistedcaldav/upgrade.py	2015-06-25 18:47:00 UTC (rev 14914)
@@ -1077,6 +1077,7 @@
     yield txn.commit()
 
     # Remove the old file
+    service.close()
     os.remove(service.dbpath)
     journalPath = service.dbpath + "-journal"
     if os.path.exists(journalPath):

Modified: CalendarServer/branches/users/cdaboo/cfod/txdav/caldav/datastore/test/test_file.py
===================================================================
--- CalendarServer/branches/users/cdaboo/cfod/txdav/caldav/datastore/test/test_file.py	2015-06-24 19:47:21 UTC (rev 14913)
+++ CalendarServer/branches/users/cdaboo/cfod/txdav/caldav/datastore/test/test_file.py	2015-06-25 18:47:00 UTC (rev 14914)
@@ -23,6 +23,7 @@
 # FileStorageTests, or implementation-agnostic methods on CommonTests.
 
 from pycalendar.datetime import DateTime
+from twext.enterprise.ienterprise import AlreadyFinishedError
 from twext.python.filepath import CachingFilePath as FilePath
 from twisted.internet.defer import inlineCallbacks
 from twisted.trial import unittest
@@ -116,6 +117,15 @@
         setUpCalendarStore(self)
 
 
+    @inlineCallbacks
+    def tearDown(self):
+        super(CalendarStoreTest, self).tearDown()
+        try:
+            yield self.txn.commit()
+        except AlreadyFinishedError:
+            pass
+
+
     def test_calendarHomeWithUID_dot(self):
         """
         Filenames starting with "." are reserved by this
@@ -136,6 +146,15 @@
         return setUpHome1(self)
 
 
+    @inlineCallbacks
+    def tearDown(self):
+        super(CalendarHomeTest, self).tearDown()
+        try:
+            yield self.txn.commit()
+        except AlreadyFinishedError:
+            pass
+
+
     def test_init(self):
         """
         L{CalendarHome} has C{_path} and L{_calendarStore} attributes,
@@ -194,6 +213,15 @@
         return setUpCalendar1(self)
 
 
+    @inlineCallbacks
+    def tearDown(self):
+        super(CalendarTest, self).tearDown()
+        try:
+            yield self.txn.commit()
+        except AlreadyFinishedError:
+            pass
+
+
     def test_init(self):
         """
         L{Calendar.__init__} sets private attributes to reflect its constructor
@@ -231,6 +259,7 @@
         index = calendar._index
         self.assertEquals(set((yield index.calendarObjects())),
                           set((yield calendar.calendarObjects())))
+        index._oldIndex._db_close()
 
 
     @inlineCallbacks
@@ -376,11 +405,13 @@
             (yield self.calendar1.calendarObjectWithName("1.ics")).component(),
             VComponent.fromString(event1modified_text)
         )
+        index = self.calendar1._index
         yield self.doThenUndo()
         self.assertEquals(
             (yield self.calendar1.calendarObjectWithName("1.ics")).component(),
             originalComponent
         )
+        index._oldIndex._db_close()
 
 
     @testUnimplemented
@@ -418,6 +449,15 @@
         self.object1 = yield self.calendar1.calendarObjectWithName("1.ics")
 
 
+    @inlineCallbacks
+    def tearDown(self):
+        super(CalendarObjectTest, self).tearDown()
+        try:
+            yield self.txn.commit()
+        except AlreadyFinishedError:
+            pass
+
+
     def test_init(self):
         """
         L{CalendarObject} has instance attributes, C{_path} and C{_calendar},
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.macosforge.org/pipermail/calendarserver-changes/attachments/20150625/cf9a1dfb/attachment-0001.html>


More information about the calendarserver-changes mailing list