def test_delete(self): """.""" from invenio_groups.models import Group, Membership from invenio_accounts.models import User g = Group.create(name="test") u = User(email="*****@*****.**", password="******") db.session.add(u) db.session.commit() Membership.create(g, u) self.assertEqual(Membership.query.count(), 1) Membership.delete(g, u) self.assertEqual(Membership.query.count(), 0) self.assertIsNone(Membership.delete(g, u))
def test_query_by_group(self): """.""" from invenio_groups.models import Group, Membership, \ MembershipState from invenio_accounts.models import User from flask.ext.sqlalchemy import BaseQuery g = Group.create(name="test") Group.create(name="test2") u = User(email="*****@*****.**", password="******") u2 = User(email="[email protected]", password="******") db.session.add(u) db.session.commit() Membership.create(g, u, MembershipState.ACTIVE) self.assertIsInstance(Membership.query_by_group(g), BaseQuery) self.assertEqual(Membership.query_by_group(g).count(), 1) self.assertEqual(Membership.query_by_group(u2).count(), 0)
def test_get(self): """.""" from invenio_groups.models import Group, Membership from invenio_accounts.models import User g = Group.create(name="test") u = User(email="*****@*****.**", password="******") u2 = User(email="[email protected]", password="******") db.session.add(u) db.session.add(u2) db.session.commit() Membership.create(g, u) m = Membership.get(g, u) m2 = Membership.get(g, u2) self.assertEqual(m.group.id, g.id) self.assertEqual(m.user.id, u.id) self.assertIsNone(m2)
def users(): """Load default users and groups.""" from invenio_groups.models import Group, Membership, \ PrivacyPolicy, SubscriptionPolicy admin = accounts.datastore.create_user( email='*****@*****.**', password=encrypt_password('123456'), active=True, ) reader = accounts.datastore.create_user( email='*****@*****.**', password=encrypt_password('123456'), active=True, ) admins = Group.create(name='admins', admins=[admin]) for i in range(10): Group.create(name='group-{0}'.format(i), admins=[admin]) Membership.create(admins, reader) db.session.commit()
def test_query_invitations(self): """.""" from invenio_groups.models import Group, Membership, \ MembershipState from invenio_accounts.models import User from flask.ext.sqlalchemy import BaseQuery g = Group.create(name="test") u1 = User(email="*****@*****.**", password="******") u2 = User(email="[email protected]", password="******") u3 = User(email="[email protected]", password="******") db.session.add_all([u1, u2, u3]) db.session.commit() Membership.create(g, u1, MembershipState.ACTIVE) Membership.create(g, u2, MembershipState.PENDING_USER) Membership.create(g, u3, MembershipState.PENDING_ADMIN) self.assertIsInstance(Membership.query_by_user(u1), BaseQuery) self.assertEqual(Membership.query_invitations(u1).count(), 0) self.assertEqual(Membership.query_invitations(u2).count(), 1) self.assertEqual(Membership.query_invitations(u3).count(), 0)
def test_accept(self): """.""" from invenio_groups.models import Group, Membership, \ MembershipState from invenio_accounts.models import User g = Group.create(name="test") u = User(email="*****@*****.**", password="******") db.session.add(u) db.session.commit() m = Membership.create(g, u, MembershipState.PENDING_ADMIN) m.accept() self.assertEqual(m.state, MembershipState.ACTIVE)
def test_create(self): """.""" from invenio_groups.models import Group, Membership, \ MembershipState from invenio_accounts.models import User g = Group.create(name="test") u = User(email="*****@*****.**", password="******") db.session.add(u) db.session.commit() m = Membership.create(g, u) self.assertEqual(m.state, MembershipState.ACTIVE) self.assertEqual(m.group.name, g.name) self.assertEqual(m.user.id, u.id) self.assertRaises( FlushError, Membership.create, g, u)
def test_query_requests(self): """.""" from invenio_groups.models import Group, Membership, \ MembershipState from invenio_accounts.models import User from flask.ext.sqlalchemy import BaseQuery a = User(email="*****@*****.**", password="******") u1 = User(email="*****@*****.**", password="******") u2 = User(email="[email protected]", password="******") db.session.add_all([a, u1, u2]) db.session.commit() g = Group.create(name="test", admins=[a]) Membership.create(g, u1, MembershipState.PENDING_ADMIN) Membership.create(g, u2, MembershipState.PENDING_USER) self.assertIsInstance(Membership.query_requests(u1), BaseQuery) self.assertEqual(Membership.query_requests(a).count(), 1) ad = Group.create(name="admin") g2 = Group.create(name="test2", admins=[ad]) u3 = User(email="[email protected]", password="******") u4 = User(email="[email protected]", password="******") u5 = User(email="[email protected]", password="******") db.session.add_all([u3, u4, u5]) db.session.commit() Membership.create(ad, u3, MembershipState.ACTIVE) Membership.create(g2, u4, MembershipState.PENDING_ADMIN) Membership.create(g2, u5, MembershipState.PENDING_USER) self.assertEqual(Membership.query_requests(u3).count(), 1)