summaryrefslogtreecommitdiff
path: root/test/orm/test_bind.py
diff options
context:
space:
mode:
Diffstat (limited to 'test/orm/test_bind.py')
-rw-r--r--test/orm/test_bind.py409
1 files changed, 207 insertions, 202 deletions
diff --git a/test/orm/test_bind.py b/test/orm/test_bind.py
index f85c3de01..5c87d9429 100644
--- a/test/orm/test_bind.py
+++ b/test/orm/test_bind.py
@@ -15,10 +15,12 @@ class BindIntegrationTest(_fixtures.FixtureTest):
run_inserts = None
def test_mapped_binds(self):
- Address, addresses, users, User = (self.classes.Address,
- self.tables.addresses,
- self.tables.users,
- self.classes.User)
+ Address, addresses, users, User = (
+ self.classes.Address,
+ self.tables.addresses,
+ self.tables.users,
+ self.classes.User,
+ )
# ensure tables are unbound
m2 = sa.MetaData()
@@ -26,28 +28,43 @@ class BindIntegrationTest(_fixtures.FixtureTest):
addresses_unbound = addresses.tometadata(m2)
mapper(Address, addresses_unbound)
- mapper(User, users_unbound, properties={
- 'addresses': relationship(Address,
- backref=backref("user", cascade="all"),
- cascade="all")})
+ mapper(
+ User,
+ users_unbound,
+ properties={
+ "addresses": relationship(
+ Address,
+ backref=backref("user", cascade="all"),
+ cascade="all",
+ )
+ },
+ )
- sess = Session(binds={User: self.metadata.bind,
- Address: self.metadata.bind})
+ sess = Session(
+ binds={User: self.metadata.bind, Address: self.metadata.bind}
+ )
- u1 = User(id=1, name='ed')
+ u1 = User(id=1, name="ed")
sess.add(u1)
- eq_(sess.query(User).filter(User.id == 1).all(),
- [User(id=1, name='ed')])
+ eq_(
+ sess.query(User).filter(User.id == 1).all(),
+ [User(id=1, name="ed")],
+ )
# test expression binding
- sess.execute(users_unbound.insert(), params=dict(id=2,
- name='jack'))
- eq_(sess.execute(users_unbound.select(users_unbound.c.id
- == 2)).fetchall(), [(2, 'jack')])
+ sess.execute(users_unbound.insert(), params=dict(id=2, name="jack"))
+ eq_(
+ sess.execute(
+ users_unbound.select(users_unbound.c.id == 2)
+ ).fetchall(),
+ [(2, "jack")],
+ )
- eq_(sess.execute(users_unbound.select(User.id == 2)).fetchall(),
- [(2, 'jack')])
+ eq_(
+ sess.execute(users_unbound.select(User.id == 2)).fetchall(),
+ [(2, "jack")],
+ )
sess.execute(users_unbound.delete())
eq_(sess.execute(users_unbound.select()).fetchall(), [])
@@ -55,10 +72,12 @@ class BindIntegrationTest(_fixtures.FixtureTest):
sess.close()
def test_table_binds(self):
- Address, addresses, users, User = (self.classes.Address,
- self.tables.addresses,
- self.tables.users,
- self.classes.User)
+ Address, addresses, users, User = (
+ self.classes.Address,
+ self.tables.addresses,
+ self.tables.users,
+ self.classes.User,
+ )
# ensure tables are unbound
m2 = sa.MetaData()
@@ -66,27 +85,46 @@ class BindIntegrationTest(_fixtures.FixtureTest):
addresses_unbound = addresses.tometadata(m2)
mapper(Address, addresses_unbound)
- mapper(User, users_unbound, properties={
- 'addresses': relationship(Address,
- backref=backref("user", cascade="all"),
- cascade="all")})
+ mapper(
+ User,
+ users_unbound,
+ properties={
+ "addresses": relationship(
+ Address,
+ backref=backref("user", cascade="all"),
+ cascade="all",
+ )
+ },
+ )
- Session = sessionmaker(binds={users_unbound: self.metadata.bind,
- addresses_unbound: self.metadata.bind})
+ Session = sessionmaker(
+ binds={
+ users_unbound: self.metadata.bind,
+ addresses_unbound: self.metadata.bind,
+ }
+ )
sess = Session()
- u1 = User(id=1, name='ed')
+ u1 = User(id=1, name="ed")
sess.add(u1)
- eq_(sess.query(User).filter(User.id == 1).all(),
- [User(id=1, name='ed')])
+ eq_(
+ sess.query(User).filter(User.id == 1).all(),
+ [User(id=1, name="ed")],
+ )
- sess.execute(users_unbound.insert(), params=dict(id=2, name='jack'))
+ sess.execute(users_unbound.insert(), params=dict(id=2, name="jack"))
- eq_(sess.execute(users_unbound.select(users_unbound.c.id
- == 2)).fetchall(), [(2, 'jack')])
+ eq_(
+ sess.execute(
+ users_unbound.select(users_unbound.c.id == 2)
+ ).fetchall(),
+ [(2, "jack")],
+ )
- eq_(sess.execute(users_unbound.select(User.id == 2)).fetchall(),
- [(2, 'jack')])
+ eq_(
+ sess.execute(users_unbound.select(User.id == 2)).fetchall(),
+ [(2, "jack")],
+ )
sess.execute(users_unbound.delete())
eq_(sess.execute(users_unbound.select()).fetchall(), [])
@@ -99,20 +137,22 @@ class BindIntegrationTest(_fixtures.FixtureTest):
mapper(User, users)
session = create_session()
- session.execute(users.insert(), dict(name='Johnny'))
+ session.execute(users.insert(), dict(name="Johnny"))
- assert len(session.query(User).filter_by(name='Johnny').all()) == 1
+ assert len(session.query(User).filter_by(name="Johnny").all()) == 1
session.execute(users.delete())
- assert len(session.query(User).filter_by(name='Johnny').all()) == 0
+ assert len(session.query(User).filter_by(name="Johnny").all()) == 0
session.close()
def test_bind_arguments(self):
- users, Address, addresses, User = (self.tables.users,
- self.classes.Address,
- self.tables.addresses,
- self.classes.User)
+ users, Address, addresses, User = (
+ self.tables.users,
+ self.classes.Address,
+ self.tables.addresses,
+ self.classes.User,
+ )
mapper(User, users)
mapper(Address, addresses)
@@ -130,11 +170,16 @@ class BindIntegrationTest(_fixtures.FixtureTest):
assert sess.connection(mapper=Address, bind=e1).engine is e1
assert sess.connection(mapper=Address).engine is e2
assert sess.connection(clause=addresses.select()).engine is e2
- assert sess.connection(mapper=User,
- clause=addresses.select()).engine is e1
- assert sess.connection(mapper=User,
- clause=addresses.select(),
- bind=e2).engine is e2
+ assert (
+ sess.connection(mapper=User, clause=addresses.select()).engine
+ is e1
+ )
+ assert (
+ sess.connection(
+ mapper=User, clause=addresses.select(), bind=e2
+ ).engine
+ is e2
+ )
sess.close()
@@ -144,7 +189,9 @@ class BindIntegrationTest(_fixtures.FixtureTest):
assert_raises_message(
sa.exc.ArgumentError,
"Not an acceptable bind target: foobar",
- sess.bind_mapper, "foobar", testing.db
+ sess.bind_mapper,
+ "foobar",
+ testing.db,
)
mapper(self.classes.User, self.tables.users)
@@ -153,7 +200,9 @@ class BindIntegrationTest(_fixtures.FixtureTest):
assert_raises_message(
sa.exc.ArgumentError,
"Not an acceptable bind target: User()",
- sess.bind_mapper, u_object, testing.db
+ sess.bind_mapper,
+ u_object,
+ testing.db,
)
@engines.close_open_connections
@@ -165,17 +214,22 @@ class BindIntegrationTest(_fixtures.FixtureTest):
sess = create_session(bind=c)
sess.begin()
transaction = sess.transaction
- u = User(name='u1')
+ u = User(name="u1")
sess.add(u)
sess.flush()
- assert transaction._connection_for_bind(testing.db, None) \
- is transaction._connection_for_bind(c, None) is c
-
- assert_raises_message(sa.exc.InvalidRequestError,
- 'Session already has a Connection '
- 'associated',
- transaction._connection_for_bind,
- testing.db.connect(), None)
+ assert (
+ transaction._connection_for_bind(testing.db, None)
+ is transaction._connection_for_bind(c, None)
+ is c
+ )
+
+ assert_raises_message(
+ sa.exc.InvalidRequestError,
+ "Session already has a Connection " "associated",
+ transaction._connection_for_bind,
+ testing.db.connect(),
+ None,
+ )
transaction.rollback()
assert len(sess.query(User).all()) == 0
sess.close()
@@ -187,7 +241,7 @@ class BindIntegrationTest(_fixtures.FixtureTest):
c = testing.db.connect()
sess = create_session(bind=c, autocommit=False)
- u = User(name='u1')
+ u = User(name="u1")
sess.add(u)
sess.flush()
sess.close()
@@ -195,7 +249,7 @@ class BindIntegrationTest(_fixtures.FixtureTest):
assert c.scalar("select count(1) from users") == 0
sess = create_session(bind=c, autocommit=False)
- u = User(name='u2')
+ u = User(name="u2")
sess.add(u)
sess.flush()
sess.commit()
@@ -208,7 +262,7 @@ class BindIntegrationTest(_fixtures.FixtureTest):
trans = c.begin()
sess = create_session(bind=c, autocommit=True)
- u = User(name='u3')
+ u = User(name="u3")
sess.add(u)
sess.flush()
assert c.in_transaction()
@@ -218,13 +272,16 @@ class BindIntegrationTest(_fixtures.FixtureTest):
class SessionBindTest(fixtures.MappedTest):
-
@classmethod
def define_tables(cls, metadata):
- Table('test_table', metadata,
- Column('id', Integer, primary_key=True,
- test_needs_autoincrement=True),
- Column('data', Integer))
+ Table(
+ "test_table",
+ metadata,
+ Column(
+ "id", Integer, primary_key=True, test_needs_autoincrement=True
+ ),
+ Column("data", Integer),
+ )
@classmethod
def setup_classes(cls):
@@ -238,8 +295,8 @@ class SessionBindTest(fixtures.MappedTest):
meta = MetaData()
test_table.tometadata(meta)
- assert meta.tables['test_table'].bind is None
- mapper(Foo, meta.tables['test_table'])
+ assert meta.tables["test_table"].bind is None
+ mapper(Foo, meta.tables["test_table"])
def test_session_bind(self):
Foo = self.classes.Foo
@@ -255,7 +312,7 @@ class SessionBindTest(fixtures.MappedTest):
sess.flush()
assert sess.query(Foo).get(f.id) is f
finally:
- if hasattr(bind, 'close'):
+ if hasattr(bind, "close"):
bind.close()
def test_session_unbound(self):
@@ -265,29 +322,30 @@ class SessionBindTest(fixtures.MappedTest):
sess.add(Foo())
assert_raises_message(
sa.exc.UnboundExecutionError,
- ('Could not locate a bind configured on Mapper|Foo|test_table '
- 'or this Session'),
- sess.flush)
+ (
+ "Could not locate a bind configured on Mapper|Foo|test_table "
+ "or this Session"
+ ),
+ sess.flush,
+ )
class GetBindTest(fixtures.MappedTest):
@classmethod
def define_tables(cls, metadata):
+ Table("base_table", metadata, Column("id", Integer, primary_key=True))
Table(
- 'base_table', metadata,
- Column('id', Integer, primary_key=True)
+ "w_mixin_table", metadata, Column("id", Integer, primary_key=True)
)
Table(
- 'w_mixin_table', metadata,
- Column('id', Integer, primary_key=True)
+ "joined_sub_table",
+ metadata,
+ Column("id", ForeignKey("base_table.id"), primary_key=True),
)
Table(
- 'joined_sub_table', metadata,
- Column('id', ForeignKey('base_table.id'), primary_key=True)
- )
- Table(
- 'concrete_sub_table', metadata,
- Column('id', Integer, primary_key=True)
+ "concrete_sub_table",
+ metadata,
+ Column("id", Integer, primary_key=True),
)
@classmethod
@@ -313,171 +371,118 @@ class GetBindTest(fixtures.MappedTest):
mapper(cls.classes.BaseClass, cls.tables.base_table)
mapper(
cls.classes.JoinedSubClass,
- cls.tables.joined_sub_table, inherits=cls.classes.BaseClass)
+ cls.tables.joined_sub_table,
+ inherits=cls.classes.BaseClass,
+ )
mapper(
cls.classes.ConcreteSubClass,
- cls.tables.concrete_sub_table, inherits=cls.classes.BaseClass,
- concrete=True)
+ cls.tables.concrete_sub_table,
+ inherits=cls.classes.BaseClass,
+ concrete=True,
+ )
def _fixture(self, binds):
return Session(binds=binds)
def test_fallback_table_metadata(self):
session = self._fixture({})
- is_(
- session.get_bind(self.classes.BaseClass),
- testing.db
- )
+ is_(session.get_bind(self.classes.BaseClass), testing.db)
def test_bind_base_table_base_class(self):
base_class_bind = Mock()
- session = self._fixture({
- self.tables.base_table: base_class_bind
- })
+ session = self._fixture({self.tables.base_table: base_class_bind})
- is_(
- session.get_bind(self.classes.BaseClass),
- base_class_bind
- )
+ is_(session.get_bind(self.classes.BaseClass), base_class_bind)
def test_bind_base_table_joined_sub_class(self):
base_class_bind = Mock()
- session = self._fixture({
- self.tables.base_table: base_class_bind
- })
+ session = self._fixture({self.tables.base_table: base_class_bind})
- is_(
- session.get_bind(self.classes.BaseClass),
- base_class_bind
- )
- is_(
- session.get_bind(self.classes.JoinedSubClass),
- base_class_bind
- )
+ is_(session.get_bind(self.classes.BaseClass), base_class_bind)
+ is_(session.get_bind(self.classes.JoinedSubClass), base_class_bind)
def test_bind_joined_sub_table_joined_sub_class(self):
- base_class_bind = Mock(name='base')
- joined_class_bind = Mock(name='joined')
- session = self._fixture({
- self.tables.base_table: base_class_bind,
- self.tables.joined_sub_table: joined_class_bind
- })
-
- is_(
- session.get_bind(self.classes.BaseClass),
- base_class_bind
+ base_class_bind = Mock(name="base")
+ joined_class_bind = Mock(name="joined")
+ session = self._fixture(
+ {
+ self.tables.base_table: base_class_bind,
+ self.tables.joined_sub_table: joined_class_bind,
+ }
)
+
+ is_(session.get_bind(self.classes.BaseClass), base_class_bind)
# joined table inheritance has to query based on the base
# table, so this is what we expect
- is_(
- session.get_bind(self.classes.JoinedSubClass),
- base_class_bind
- )
+ is_(session.get_bind(self.classes.JoinedSubClass), base_class_bind)
def test_bind_base_table_concrete_sub_class(self):
base_class_bind = Mock()
- session = self._fixture({
- self.tables.base_table: base_class_bind
- })
+ session = self._fixture({self.tables.base_table: base_class_bind})
- is_(
- session.get_bind(self.classes.ConcreteSubClass),
- testing.db
- )
+ is_(session.get_bind(self.classes.ConcreteSubClass), testing.db)
def test_bind_sub_table_concrete_sub_class(self):
- base_class_bind = Mock(name='base')
- concrete_sub_bind = Mock(name='concrete')
-
- session = self._fixture({
- self.tables.base_table: base_class_bind,
- self.tables.concrete_sub_table: concrete_sub_bind
- })
-
- is_(
- session.get_bind(self.classes.BaseClass),
- base_class_bind
- )
- is_(
- session.get_bind(self.classes.ConcreteSubClass),
- concrete_sub_bind
+ base_class_bind = Mock(name="base")
+ concrete_sub_bind = Mock(name="concrete")
+
+ session = self._fixture(
+ {
+ self.tables.base_table: base_class_bind,
+ self.tables.concrete_sub_table: concrete_sub_bind,
+ }
)
+ is_(session.get_bind(self.classes.BaseClass), base_class_bind)
+ is_(session.get_bind(self.classes.ConcreteSubClass), concrete_sub_bind)
+
def test_bind_base_class_base_class(self):
base_class_bind = Mock()
- session = self._fixture({
- self.classes.BaseClass: base_class_bind
- })
+ session = self._fixture({self.classes.BaseClass: base_class_bind})
- is_(
- session.get_bind(self.classes.BaseClass),
- base_class_bind
- )
+ is_(session.get_bind(self.classes.BaseClass), base_class_bind)
def test_bind_mixin_class_simple_class(self):
base_class_bind = Mock()
- session = self._fixture({
- self.classes.MixinOne: base_class_bind
- })
+ session = self._fixture({self.classes.MixinOne: base_class_bind})
- is_(
- session.get_bind(self.classes.ClassWMixin),
- base_class_bind
- )
+ is_(session.get_bind(self.classes.ClassWMixin), base_class_bind)
def test_bind_base_class_joined_sub_class(self):
base_class_bind = Mock()
- session = self._fixture({
- self.classes.BaseClass: base_class_bind
- })
+ session = self._fixture({self.classes.BaseClass: base_class_bind})
- is_(
- session.get_bind(self.classes.JoinedSubClass),
- base_class_bind
- )
+ is_(session.get_bind(self.classes.JoinedSubClass), base_class_bind)
def test_bind_joined_sub_class_joined_sub_class(self):
- base_class_bind = Mock(name='base')
- joined_class_bind = Mock(name='joined')
- session = self._fixture({
- self.classes.BaseClass: base_class_bind,
- self.classes.JoinedSubClass: joined_class_bind
- })
-
- is_(
- session.get_bind(self.classes.BaseClass),
- base_class_bind
- )
- is_(
- session.get_bind(self.classes.JoinedSubClass),
- joined_class_bind
+ base_class_bind = Mock(name="base")
+ joined_class_bind = Mock(name="joined")
+ session = self._fixture(
+ {
+ self.classes.BaseClass: base_class_bind,
+ self.classes.JoinedSubClass: joined_class_bind,
+ }
)
+ is_(session.get_bind(self.classes.BaseClass), base_class_bind)
+ is_(session.get_bind(self.classes.JoinedSubClass), joined_class_bind)
+
def test_bind_base_class_concrete_sub_class(self):
base_class_bind = Mock()
- session = self._fixture({
- self.classes.BaseClass: base_class_bind
- })
+ session = self._fixture({self.classes.BaseClass: base_class_bind})
- is_(
- session.get_bind(self.classes.ConcreteSubClass),
- base_class_bind
- )
+ is_(session.get_bind(self.classes.ConcreteSubClass), base_class_bind)
def test_bind_sub_class_concrete_sub_class(self):
- base_class_bind = Mock(name='base')
- concrete_sub_bind = Mock(name='concrete')
-
- session = self._fixture({
- self.classes.BaseClass: base_class_bind,
- self.classes.ConcreteSubClass: concrete_sub_bind
- })
-
- is_(
- session.get_bind(self.classes.BaseClass),
- base_class_bind
- )
- is_(
- session.get_bind(self.classes.ConcreteSubClass),
- concrete_sub_bind
+ base_class_bind = Mock(name="base")
+ concrete_sub_bind = Mock(name="concrete")
+
+ session = self._fixture(
+ {
+ self.classes.BaseClass: base_class_bind,
+ self.classes.ConcreteSubClass: concrete_sub_bind,
+ }
)
+
+ is_(session.get_bind(self.classes.BaseClass), base_class_bind)
+ is_(session.get_bind(self.classes.ConcreteSubClass), concrete_sub_bind)