.. changelog::
:version: 1.0.16
+ .. change::
+ :tags: bug, orm
+ :tickets: 3798
+ :versions: 1.1.0
+
+ Fixed bug where the ArgumentError raised for an invalid bind
+ sent to a Session via :meth:`.Session.bind_mapper`,
+ :meth:`.Session.bind_table`,
+ or the constructor would fail to be correctly raised.
+
.. change::
:tags: bug, mssql
:tickes: 3791
insp = inspect(key)
except sa_exc.NoInspectionAvailable:
if not isinstance(key, type):
- raise exc.ArgumentError(
- "Not acceptable bind target: %s" %
- key)
+ raise sa_exc.ArgumentError(
+ "Not an acceptable bind target: %s" % key)
else:
self.__binds[key] = bind
else:
for selectable in insp._all_tables:
self.__binds[selectable] = bind
else:
- raise exc.ArgumentError(
- "Not acceptable bind target: %s" %
- key)
+ raise sa_exc.ArgumentError(
+ "Not an acceptable bind target: %s" % key)
def bind_mapper(self, mapper, bind):
"""Associate a :class:`.Mapper` with a "bind", e.g. a :class:`.Engine`
sess.close()
+ def test_bind_arg(self):
+ sess = Session()
+
+ assert_raises_message(
+ sa.exc.ArgumentError,
+ "Not an acceptable bind target: foobar",
+ sess.bind_mapper, "foobar", testing.db
+ )
+
+ mapper(self.classes.User, self.tables.users)
+ u_object = self.classes.User()
+
+ assert_raises_message(
+ sa.exc.ArgumentError,
+ "Not an acceptable bind target: User()",
+ sess.bind_mapper, u_object, testing.db
+ )
+
@engines.close_open_connections
def test_bound_connection(self):
users, User = self.tables.users, self.classes.User