From: Jason Kirtland Date: Sat, 9 Feb 2008 19:15:45 +0000 (+0000) Subject: - Better error messaging on failed collection bulk-assignments X-Git-Tag: rel_0_4_3~19 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=1ddf4af3552cf28739fb8ca1be7e521767cc034c;p=thirdparty%2Fsqlalchemy%2Fsqlalchemy.git - Better error messaging on failed collection bulk-assignments --- diff --git a/lib/sqlalchemy/orm/collections.py b/lib/sqlalchemy/orm/collections.py index 5f701bccc4..45f978ba89 100644 --- a/lib/sqlalchemy/orm/collections.py +++ b/lib/sqlalchemy/orm/collections.py @@ -507,10 +507,15 @@ class CollectionAdapter(object): receiving_type = sautil.duck_type_collection(self._data()) if obj is None or setting_type != receiving_type: + given = obj is None and 'None' or obj.__class__.__name__ + if receiving_type is None: + wanted = self._data().__class__.__name__ + else: + wanted = receiving_type.__name__ + raise TypeError( - "Incompatible collection type: %s is not %s-like" % - (type(obj).__class__.__name__, - receiving_type.__class__.__name__)) + "Incompatible collection type: %s is not %s-like" % ( + given, wanted)) # If the object is an adapted collection, return the (iterable) adapter. if getattr(obj, '_sa_adapter', None) is not None: