summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDevon Meunier <devon@ajah.ca>2013-09-10 10:18:47 -0400
committerDevon Meunier <devon@ajah.ca>2013-09-10 10:18:47 -0400
commit45ab72b43282d90d9ee316347b8ad2971ca0fb1a (patch)
tree28d1525991012407b503bf312247150c6fdbec3c
parent5a6895471fb6bf9afe9bdf017f1fa2c6246ae303 (diff)
downloadsqlalchemy-pr/28.tar.gz
Added __len__ to AppenderQuery/AppenderMixin.pr/28
-rw-r--r--lib/sqlalchemy/orm/dynamic.py3
-rw-r--r--test/orm/test_dynamic.py6
2 files changed, 9 insertions, 0 deletions
diff --git a/lib/sqlalchemy/orm/dynamic.py b/lib/sqlalchemy/orm/dynamic.py
index 4631e806f..1878893b0 100644
--- a/lib/sqlalchemy/orm/dynamic.py
+++ b/lib/sqlalchemy/orm/dynamic.py
@@ -249,6 +249,9 @@ class AppenderMixin(object):
else:
return self._clone(sess).__getitem__(index)
+ def __len__(self):
+ return self.count()
+
def count(self):
sess = self.session
if sess is None:
diff --git a/test/orm/test_dynamic.py b/test/orm/test_dynamic.py
index 21dcfd436..12b1cd254 100644
--- a/test/orm/test_dynamic.py
+++ b/test/orm/test_dynamic.py
@@ -169,6 +169,12 @@ class DynamicTest(_DynamicFixture, _fixtures.FixtureTest, AssertsCompiledSQL):
u = sess.query(User).first()
eq_(u.addresses.count(), 1)
+ def test_len(self):
+ User, Address = self._user_address_fixture()
+ sess = create_session()
+ u = sess.query(User).first()
+ eq_(len(u.addresses), 1)
+
def test_dynamic_on_backref(self):
users, Address, addresses, User = (self.tables.users,
self.classes.Address,