def test_group_query_by_user(app): """.""" with app.app_context(): from invenio_groups.models import Group, Membership, \ GroupAdmin, MembershipState from invenio_accounts.models import User u1 = User(email="[email protected]", password="******") u2 = User(email="[email protected]", password="******") u3 = User(email="[email protected]", password="******") db.session.add(u1) db.session.add(u2) db.session.add(u3) db.session.commit() g1 = Group.create(name="test1", admins=[u1]) g2 = Group.create(name="test2", admins=[u1]) g1.add_member(u2, state=MembershipState.PENDING_ADMIN) g1.add_member(u3, state=MembershipState.ACTIVE) g2.add_member(u2, state=MembershipState.ACTIVE) assert Group.query.count() == 2 assert GroupAdmin.query.count() == 2 assert Membership.query.count() == 3 assert Group.query_by_user(u1).count() == 2 assert Group.query_by_user(u1, with_pending=True).count() == 2 assert Group.query_by_user(u2).count() == 1 assert Group.query_by_user(u2, with_pending=True).count() == 2 assert Group.query_by_user(u3).count() == 1 assert Group.query_by_user(u3, with_pending=True).count() == 1 assert 1 == Group.query_by_user( u3, with_pending=True, eager=[Group.members]).count()