def aioSetUp(self): from aiorm import registry from aiorm.orm.dialect.postgresql import Dialect, CreateTableDialect registry.register(Dialect) registry.register(CreateTableDialect) yield from registry.connect('/sample')
def includeme(config): from aiorm.driver.postgresql.aiopg import Driver from aiorm.orm.dialect.postgresql import Dialect config.add_tween('pyramid_aiorm.transaction.tween_factory', under=EXCVIEW) settings = {key:val for key, val in config.get_settings().items() if key.startswith('aiorm.')} driver_cls = settings.pop('aiorm.driver', 'aiorm.driver.postgresql.aiopg') driver_cls = getattr(importlib.import_module(driver_cls), 'Driver') registry.register(driver_cls) dialect = settings.pop('aiorm.driver', 'aiorm.orm.dialect.postgresql') dialect = importlib.import_module(dialect) dialect_cls = getattr(dialect, 'Dialect') registry.register(dialect_cls) dialect_cls = getattr(dialect, 'CreateTableDialect') registry.register(dialect_cls) ignored = len('aiorm.db.') for key, url in settings.items(): if not key.startswith('aiorm.db.'): continue name = key[ignored:] yield from registry.connect(url, name=name) scanmods = aslist(settings['aiorm.scan'], flatten=True) for scanmod in scanmods: orm.scan(scanmod)
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)
def setUp(self): registry.register(DummyDialect, IDialect)
def setUp(self): registry.register(DummyCreateTableDialect, ICreateTableDialect)
return renderer.query, renderer.parameters @implementer(interfaces.IGroupBy) class GroupBy(Statement): """ A Where clause statement """ def render_sql(self, renderer): renderer.render_group_by(*self._args, **self._kwargs) if self._child: self._child.render_sql(renderer) return renderer.query, renderer.parameters @implementer(interfaces.IOrderBy) class OrderBy(Statement): def render_sql(self, renderer): renderer.render_order_by(*self._args, **self._kwargs) if self._child: self._child.render_sql(renderer) return renderer.query, renderer.parameters registry.register(Where, interfaces.IWhere) registry.register(Join, interfaces.IJoin) registry.register(LeftJoin, interfaces.ILeftJoin) registry.register(Limit, interfaces.ILimit) registry.register(GroupBy, interfaces.IGroupBy) registry.register(OrderBy, interfaces.IOrderBy)
def setUpClass(cls): registry.register(DummyDriver)
@implementer(interfaces.IJoin) class Join(Statement): def render_sql(self, renderer): renderer.render_join(*self._args, **self._kwargs) if self._child: self._child.render_sql(renderer) return renderer.query, renderer.parameters @implementer(interfaces.ILeftJoin) class LeftJoin(Statement): def render_sql(self, renderer): renderer.render_left_join(*self._args, **self._kwargs) if self._child: self._child.render_sql(renderer) return renderer.query, renderer.parameters @implementer(interfaces.IWhere) class Where(Statement): def render_sql(self, renderer): renderer.render_where(*self._args, **self._kwargs) if self._child: self._child.render_sql(renderer) return renderer.query, renderer.parameters registry.register(Where, interfaces.IWhere) registry.register(Join, interfaces.IJoin) registry.register(LeftJoin, interfaces.ILeftJoin)
renderer.render_join(*self._args, **self._kwargs) if self._child: self._child.render_sql(renderer) return renderer.query, renderer.parameters @implementer(interfaces.ILeftJoin) class LeftJoin(Statement): def render_sql(self, renderer): renderer.render_left_join(*self._args, **self._kwargs) if self._child: self._child.render_sql(renderer) return renderer.query, renderer.parameters @implementer(interfaces.IWhere) class Where(Statement): def render_sql(self, renderer): renderer.render_where(*self._args, **self._kwargs) if self._child: self._child.render_sql(renderer) return renderer.query, renderer.parameters registry.register(Where, interfaces.IWhere) registry.register(Join, interfaces.IJoin) registry.register(LeftJoin, interfaces.ILeftJoin)