51 lines
1.7 KiB
Python
51 lines
1.7 KiB
Python
import bson
|
|
|
|
from pillar.tests import AbstractPillarTest
|
|
|
|
|
|
class UsersTest(AbstractPillarTest):
|
|
def setUp(self, **kwargs):
|
|
super().setUp(**kwargs)
|
|
|
|
self.group_names = [f'test{num}' for num in range(10)]
|
|
self.group_map = self.create_standard_groups(additional_groups=self.group_names)
|
|
|
|
def test_add_user_to_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']])
|
|
|
|
db_user = self.fetch_user_from_db(user_id)
|
|
self.assertEqual([self.group_map['subscriber']], db_user['groups'])
|
|
|
|
with self.app.test_request_context():
|
|
users.add_user_to_group(user_id, self.group_map['test1'])
|
|
|
|
db_user = self.fetch_user_from_db(user_id)
|
|
self.assertEqual([
|
|
self.group_map['subscriber'],
|
|
self.group_map['test1'],
|
|
], db_user['groups'])
|
|
|
|
def test_add_user_to_group_no_initial_groups(self):
|
|
from pillar.api import users
|
|
|
|
user_id = bson.ObjectId(24 * '1')
|
|
self.create_user(user_id, roles=set())
|
|
|
|
with self.app.test_request_context():
|
|
# Ensure the user doesn't even have a 'groups' property.
|
|
users_coll = self.app.db('users')
|
|
users_coll.update_one({'_id': user_id}, {'$unset': {'groups': 1}})
|
|
db_user = self.fetch_user_from_db(user_id)
|
|
self.assertNotIn('groups', db_user)
|
|
|
|
users.add_user_to_group(user_id, self.group_map['test1'])
|
|
|
|
db_user = self.fetch_user_from_db(user_id)
|
|
self.assertEqual([
|
|
self.group_map['test1'],
|
|
], db_user['groups'])
|