From 45ab72b43282d90d9ee316347b8ad2971ca0fb1a Mon Sep 17 00:00:00 2001 From: Devon Meunier Date: Tue, 10 Sep 2013 10:18:47 -0400 Subject: Added __len__ to AppenderQuery/AppenderMixin. --- lib/sqlalchemy/orm/dynamic.py | 3 +++ test/orm/test_dynamic.py | 6 ++++++ 2 files changed, 9 insertions(+) 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, -- cgit v1.2.1