def test_groups(engine, session): _create_all(session) alice = User.get_by_username(session, "alice") alice.groups.append(Group.get_by_name(session, "users")) alice.groups.append(Group.get_by_name(session, "admins")) session.commit() alice = User.get_by_username(session, "alice") assert ["admins", "users"] == sorted(group.name for group in alice.groups)
def test_group_permissions(engine, session): _create_all(session) admins = Group.get_by_name(session, "admins") admins.permissions.append(Permission.get_by_name(session, "READ")) admins.permissions.append(Permission.get_by_name(session, "WRITE")) session.commit() admins = Group.get_by_name(session, "admins") assert ["READ", "WRITE"] == sorted(permission.name for permission in admins.permissions)
def _create_all(session): alice = User(username="******") assert MODEL_MAPPING["User"] is User session.add(alice) users_group = Group(name="users") assert MODEL_MAPPING["Group"] is Group session.add(users_group) admins_group = Group(name="admins") session.add(admins_group) read_permission = Permission(name="READ") assert MODEL_MAPPING["Permission"] is Permission session.add(read_permission) write_permission = Permission(name="WRITE") session.add(write_permission) session.commit()
def test_permissions(engine, session): _create_all(session) alice = User.get_by_username(session, "alice") admins = Group.get_by_name(session, "admins") admins.users.append(alice) write_permission = Permission.get_by_name(session, "WRITE") write_permission.groups.append(admins) alice.user_permissions.append(Permission.get_by_name(session, "READ")) session.commit() alice = User.get_by_username(session, "alice") assert ["READ", "WRITE"] == sorted(permission.name for permission in alice.permissions)