Added function to easily remove someone from a group.

This commit is contained in:
2017-05-24 10:56:41 +02:00
parent 8c1dbf984b
commit 5e721c61b9
2 changed files with 67 additions and 14 deletions

View File

@@ -48,3 +48,41 @@ class UsersTest(AbstractPillarTest):
self.assertEqual([
self.group_map['test1'],
], db_user['groups'])
def test_remove_user_from_group_happy(self):
from pillar.api import users
user_id = bson.ObjectId(24 * '1')
self.create_user(user_id, roles={'subscriber'}, groups=[
self.group_map['subscriber'],
self.group_map['test1'],
])
# Remove from existing group
with self.app.test_request_context():
users.remove_user_from_group(user_id, self.group_map['test1'])
db_user = self.fetch_user_from_db(user_id)
self.assertEqual([self.group_map['subscriber']], db_user['groups'])
# Remove same group again, should be no-op
with self.app.test_request_context():
users.remove_user_from_group(user_id, self.group_map['test1'])
db_user = self.fetch_user_from_db(user_id)
self.assertEqual([self.group_map['subscriber']], db_user['groups'])
# Remove from last group, should result in empty list.
with self.app.test_request_context():
users.remove_user_from_group(user_id, self.group_map['subscriber'])
db_user = self.fetch_user_from_db(user_id)
self.assertEqual([], db_user['groups'])
# Remove non-existing group from empty list, should also work.
with self.app.test_request_context():
users.remove_user_from_group(user_id, bson.ObjectId())
db_user = self.fetch_user_from_db(user_id)
self.assertEqual([], db_user['groups'])