Example #1
0
 def begin(self, timeout=None):
     self.connection = yield from self.driver.acquire()
     self.cursor = yield from self.connection.cursor(timeout)
     log.info('begin transaction #{}'.format(id(self)))
     renderer = registry.get(interfaces.IDialect)()
     stmt = renderer.render_begin_transaction()
     yield from self.cursor.execute(stmt)
     return self
Example #2
0
 def begin(self, timeout=None):
     self.connection = yield from self.driver.acquire()
     self.cursor = yield from self.connection.cursor(timeout)
     log.info('begin transaction #{}'.format(id(self)))
     renderer = registry.get(interfaces.IDialect)()
     stmt = renderer.render_begin_transaction()
     yield from self.cursor.execute(stmt)
     return self
Example #3
0
    def test_registry(self):

        from zope.interface import Interface, implementer
        from aiorm import registry

        class IAdaptable(Interface):
            pass

        class IAdapter(Interface):
            pass

        class IAdapter2(Interface):
            pass

        @implementer(IAdaptable)
        class Adaptable:
            pass

        @implementer(IAdapter)
        class Adapter:
            pass

        @implementer(IAdapter2)
        class Adapter2:
            pass

        self.assertRaises(NotImplementedError, registry.get, IAdapter)
        registry.register(Adapter, adapt=IAdaptable)  # introspect iface
        self.assertRaises(ValueError, registry.register, Adapter, adapt=IAdaptable)
        registry.register(Adaptable, IAdaptable, adapt=IAdaptable)  # explicit
        registry.register(Adapter2, adapt=Adaptable)

        # 3 "types" accepted for the adapt parameter
        self.assertEqual(registry.get(IAdapter, adapt=IAdaptable), Adapter)
        self.assertEqual(registry.get(IAdapter, adapt=Adaptable), Adapter)
        self.assertEqual(registry.get(IAdapter, adapt=Adaptable()), Adapter)

        self.assertEqual(registry.get(IAdaptable, adapt=IAdaptable), Adaptable)
        self.assertEqual(registry.get(IAdaptable, adapt=Adaptable), Adaptable)

        registry.unregister(Adapter, IAdaptable)
        self.assertRaises(NotImplementedError, registry.get, IAdapter, adapt=IAdaptable)
        registry.unregister(Adapter)
        registry.unregister(Adapter2)
Example #4
0
 def rollback(self):
     try:
         if not self.cursor:
             raise RuntimeError('transaction #{} not begun'.format(id(self)))
         log.warning('rolling back transaction #{}'.format(id(self)))
         renderer = registry.get(interfaces.IDialect)()
         stmt = renderer.render_rollback_transaction()
         yield from self.cursor.execute(stmt)
     finally:
         self._release()
Example #5
0
 def __getattr__(self, key):
     """
     Use zope.interface for easy extensability.
     If you want to had your own statement, register your own interface,
     with your own implementation in aiorm registry.
     """
     iface = 'I' + ''.join(txt.capitalize() for txt in key.split('_'))
     iface = getattr(interfaces, iface)
     self._child = registry.get(iface)(self)
     return self._child
Example #6
0
 def commit(self):
     try:
         if not self.cursor:
             raise RuntimeError('transaction #{} not begun'.format(id(self)))
         log.info('commiting transaction #{}'.format(id(self)))
         renderer = registry.get(interfaces.IDialect)()
         stmt = renderer.render_commit_transaction()
         yield from self.cursor.execute(stmt)
     finally:
         self._release()
Example #7
0
 def __getattr__(self, key):
     """
     Use zope.interface for easy extensability.
     If you want to had your own statement, register your own interface,
     with your own implementation in aiorm registry.
     """
     iface = 'I' + ''.join(txt.capitalize() for txt in key.split('_'))
     iface = getattr(interfaces, iface)
     self._child = registry.get(iface)(self)
     return self._child
Example #8
0
 def __getattr__(self, key):
     """
     Use zope.interface for easy extensability.
     If you want to had your own statement, register your own interface,
     with your own implementation in aiorm registry.
     """
     iface = ['I'] + [word.capitalize() for word in  key.split('_')]
     iface = getattr(interfaces, ''.join(iface))
     self._child = registry.get(iface)(self._query)
     return self._child
Example #9
0
 def __getattr__(self, key):
     """
     Use zope.interface for easy extensability.
     If you want to had your own statement, register your own interface,
     with your own implementation in aiorm registry.
     """
     iface = ['I'] + [word.capitalize() for word in key.split('_')]
     iface = getattr(interfaces, ''.join(iface))
     self._child = registry.get(iface)(self._query)
     return self._child
Example #10
0
 def rollback(self):
     try:
         if not self.cursor:
             raise RuntimeError('transaction #{} not begun'.format(
                 id(self)))
         log.warning('rolling back transaction #{}'.format(id(self)))
         renderer = registry.get(interfaces.IDialect)()
         stmt = renderer.render_rollback_transaction()
         yield from self.cursor.execute(stmt)
     finally:
         self._release()
Example #11
0
 def commit(self):
     try:
         if not self.cursor:
             raise RuntimeError('transaction #{} not begun'.format(
                 id(self)))
         log.info('commiting transaction #{}'.format(id(self)))
         renderer = registry.get(interfaces.IDialect)()
         stmt = renderer.render_commit_transaction()
         yield from self.cursor.execute(stmt)
     finally:
         self._release()
Example #12
0
        def aiotest():
            from aiorm import registry
            from aiorm.orm import Transaction
            from aiorm.orm import interfaces

            yield from registry.connect('/sample')

            cursor = registry.get(interfaces.IDialect)()
            cursor.configure_mock(**{'render_rollback_transaction.return_value':
                                          'rollback_transaction'})

            transaction = yield from Transaction('sample').begin()
            yield from transaction.rollback()
            cursor.render_rollback_transaction.assert_called_once_with()
            self.assertEqual(driver.DummyCursor.last_query,
                             'rollback_transaction')

            yield from registry.disconnect('sample')
Example #13
0
        def aiotest():
            from aiorm import registry
            from aiorm.orm import Transaction
            from aiorm.orm import interfaces

            yield from registry.connect('/sample')

            cursor = registry.get(interfaces.IDialect)()
            cursor.configure_mock(
                **
                {'render_begin_transaction.return_value': 'begin_transaction'})

            transaction = Transaction('sample')
            yield from transaction.begin()
            cursor.render_begin_transaction.assert_called_once_with()
            self.assertEqual(driver.DummyCursor.last_query,
                             'begin_transaction')

            yield from registry.disconnect('sample')
Example #14
0
 def render_sql(self):
     renderer = registry.get(interfaces.IDialect)()
     renderer.render_delete(*self._args, **self._kwargs)
     return renderer.query, renderer.parameters
Example #15
0
 def render_sql(self):
     renderer = registry.get(interfaces.IDialect)()
     renderer.render_select(*self._args, **self._kwargs)
     if self._child:
         self._child.render_sql(renderer)
     return renderer.query, renderer.parameters
Example #16
0
 def render_sql(self):
     renderer = registry.get(interfaces.ICreateTableDialect)()
     renderer.render_create_table(*self._args, **self._kwargs)
     return renderer.query, []
Example #17
0
 def render_sql(self):
     renderer = registry.get(interfaces.IDialect)()
     renderer.render_delete(*self._args, **self._kwargs)
     return renderer.query, renderer.parameters