Ejemplo n.º 1
0
 def test_configuration(self):
     # verify defaults ....
     expected = 0
     # ... on db
     db = self.db
     self.assertEqual(db.getCacheSizeBytes(), expected)
     self.assertEqual(db.getHistoricalCacheSizeBytes(), expected)
     # ... on connection
     conn = self.conn
     self.assertEqual(conn._cache.cache_size_bytes, expected)
     # verify explicit setting ...
     expected = 10000
     # ... on db
     db = databaseFromString("<zodb>\n"
                             "  cache-size-bytes %d\n"
                             "  historical-cache-size-bytes %d\n"
                             "  <mappingstorage />\n"
                             "</zodb>" % (expected, expected + 1))
     self.assertEqual(db.getCacheSizeBytes(), expected)
     self.assertEqual(db.getHistoricalCacheSizeBytes(), expected + 1)
     # ... on connectionB
     conn = db.open()
     self.assertEqual(conn._cache.cache_size_bytes, expected)
     # test huge (larger than 4 byte) size limit
     db = databaseFromString("<zodb>\n"
                             "  cache-size-bytes 8GB\n"
                             "  <mappingstorage />\n"
                             "</zodb>")
     self.assertEqual(db.getCacheSizeBytes(), 0x1 << 33)
Ejemplo n.º 2
0
 def test_configuration(self):
     # verify defaults ....
     expected = 0
     # ... on db
     db = self.db
     self.assertEqual(db.getCacheSizeBytes(), expected)
     self.assertEqual(db.getHistoricalCacheSizeBytes(), expected)
     # ... on connection
     conn = self.conn
     self.assertEqual(conn._cache.cache_size_bytes, expected)
     # verify explicit setting ...
     expected = 10000
     # ... on db
     db = databaseFromString("<zodb>\n"
                             "  cache-size-bytes %d\n"
                             "  historical-cache-size-bytes %d\n"
                             "  <mappingstorage />\n"
                             "</zodb>"
                             % (expected, expected+1)
                             )
     self.assertEqual(db.getCacheSizeBytes(), expected)
     self.assertEqual(db.getHistoricalCacheSizeBytes(), expected+1)
     # ... on connectionB
     conn = db.open()
     self.assertEqual(conn._cache.cache_size_bytes, expected)
     # test huge (larger than 4 byte) size limit
     db = databaseFromString("<zodb>\n"
                             "  cache-size-bytes 8GB\n"
                             "  <mappingstorage />\n"
                             "</zodb>"
                             )
     self.assertEqual(db.getCacheSizeBytes(), 0x1 << 33)
Ejemplo n.º 3
0
    def test_must_have_relstorage(self):
        with self.assertRaisesRegexp(AssertionError, "Invalid storage"):
            databaseFromString("""\
                %import newt.db

                <newtdb foo>
                  <zodb>
                  <mappingstorage>
                  </mappingstorage>
                  </zodb>
                </newtdb>
            """)
Ejemplo n.º 4
0
 def setUp(self):
     ZODB.tests.util.TestCase.setUp(self)
     self.db = db = databaseFromString("<zodb>\n<mappingstorage/>\n</zodb>")
     self.conn = c = db.open()
     self.obj = obj = _PlayPersistent()
     c.root()['obj'] = obj
     transaction.commit()
Ejemplo n.º 5
0
 def setUp(self):
     ZODB.tests.util.TestCase.setUp(self)
     self.db = db = databaseFromString("<zodb>\n<mappingstorage/>\n</zodb>")
     self.conn = c = db.open()
     self.obj = obj = _PlayPersistent()
     c.root()['obj'] = obj
     transaction.commit()
Ejemplo n.º 6
0
    def test_newt(self):
        db = databaseFromString("""\
            %%import newt.db

            <newtdb foo>
              <zodb>
                <relstorage>
                  <newt>
                    <postgresql>
                      dsn dbname=%s
                    </postgresql>
                  </newt>
                </relstorage>
              </zodb>
            </newtdb>
            """ % self.dbname)

        from .._db import NewtDB
        self.assertEqual(db.__class__, NewtDB)
        from relstorage.storage import RelStorage
        self.assertEqual(db.storage.__class__, RelStorage)
        from .._adapter import Adapter
        self.assertEqual(db.storage._adapter.__class__, Adapter)

        db.close()
Ejemplo n.º 7
0
    def test_mvccadapterNewTransactionVsInvalidations(self):
        """
        Check that polled invalidations are consistent with the TID at which
        the transaction operates. Otherwise, it's like we miss invalidations.
        """
        db = databaseFromString("<zodb>\n<mappingstorage/>\n</zodb>")
        try:
            t1 = transaction.TransactionManager()
            c1 = db.open(t1)
            r1 = c1.root()
            r1['a'] = 1
            t1.commit()
            t2 = transaction.TransactionManager()
            c2 = db.open(t2)
            c2.root()['b'] = 1
            s1 = c1._storage
            l1 = s1._lock

            @contextmanager
            def beforeLock1():
                s1._lock = l1
                t2.commit()
                with l1:
                    yield

            s1._lock = beforeLock1()
            t1.begin()
            self.assertIs(s1._lock, l1)
            self.assertIn('b', r1)
        finally:
            db.close()
Ejemplo n.º 8
0
 def setUp(self):
     ZODB.tests.util.TestCase.setUp(self)
     from ZODB.Connection import Connection
     self.db = db = databaseFromString("<zodb>\n<mappingstorage/>\n</zodb>")
     self.datamgr = self.db.open()
     self.object = StubObject()
     self.datamgr.add(self.object)
     transaction.commit()
     self.handler = loggingsupport.InstalledHandler("ZODB")
Ejemplo n.º 9
0
 def setUp(self):
     ZODB.tests.util.TestCase.setUp(self)
     from ZODB.Connection import Connection
     self.db = db = databaseFromString("<zodb>\n<mappingstorage/>\n</zodb>")
     self.datamgr = self.db.open()
     self.object = StubObject()
     self.datamgr.add(self.object)
     transaction.commit()
     self.handler = loggingsupport.InstalledHandler("ZODB")
Ejemplo n.º 10
0
 def __new__(self, *args, **kwargs):
     db = None
     if 'string' in kwargs:
         db = config.databaseFromString(kwargs['string'])
     if 'file' in kwargs:
         db = config.databaseFromFile(kwargs['file'])
     if 'url' in kwargs:
         db = config.databaseFromURL(kwargs['url'])
     if not db:
         raise ValueError('unable to obtain ZODB object from arguments')
     alsoProvides(db, IZODBDatabase)
     return db
Ejemplo n.º 11
0
 def __new__(self, *args, **kwargs):
     db = None
     if 'string' in kwargs:
         db = config.databaseFromString(kwargs['string'])
     if 'file' in kwargs:
         db = config.databaseFromFile(kwargs['file'])
     if 'url' in kwargs:
         db = config.databaseFromURL(kwargs['url'])
     if not db:
         raise ValueError('unable to obtain ZODB object from arguments')
     alsoProvides(db, IZODBDatabase)
     return db
Ejemplo n.º 12
0
    def test_aux(self):
        from newt.db import pg_connection
        conn = pg_connection(self.dsn)
        with conn:
            with conn.cursor() as cursor:
                cursor.execute("create table extra (zoid bigint)")
                cursor.execute("create table extra2 (zoid bigint)")
        conn.close()

        db = databaseFromString("""\
            %%import newt.db

            <newtdb foo>
              <zodb>
                <relstorage>
                  <newt>
                    auxiliary-tables extra extra2
                    <postgresql>
                      dsn dbname=%s
                    </postgresql>
                  </newt>
                </relstorage>
              </zodb>
            </newtdb>
            """ % self.dbname)

        from .._db import NewtDB
        self.assertEqual(db.__class__, NewtDB)
        from relstorage.storage import RelStorage
        self.assertEqual(db.storage.__class__, RelStorage)
        from .._adapter import Adapter
        self.assertEqual(db.storage._adapter.__class__, Adapter)
        self.assertEqual(db.storage._adapter.mover.auxiliary_tables,
                         ['extra', 'extra2'])

        db.close()
Ejemplo n.º 13
0
 def test_connection_interface(self):
     from ZODB.interfaces import IConnection
     db = databaseFromString("<zodb>\n<mappingstorage/>\n</zodb>")
     cn = db.open()
     verifyObject(IConnection, cn)
Ejemplo n.º 14
0
 def test_connection_interface(self):
     from ZODB.interfaces import IConnection
     db = databaseFromString("<zodb>\n<mappingstorage/>\n</zodb>")
     cn = db.open()
     verifyObject(IConnection, cn)
Ejemplo n.º 15
0
def databaseFromDict(**kw):
    return databaseFromString(
        "%%import neo.client\n"
        "<zodb>\n <NEOStorage>\n%s </NEOStorage>\n</zodb>\n" %
        ''.join('  %s %s\n' % x for x in kw.iteritems()))