def setUp(self): self.member = AuthUtils.create_member('auth_member') self.member.set_password('password') self.member.email = '*****@*****.**' self.member.save() self.none_user = AuthUtils.create_user('none_user', disconnect_signals=True) self.none_user2 = AuthUtils.create_user('none_user2', disconnect_signals=True) self.none_user3 = AuthUtils.create_user('none_user3', disconnect_signals=True) self.no_perm_user = AuthUtils.create_user('no_perm_user', disconnect_signals=True) self.no_perm_user.set_password('password') AuthUtils.disconnect_signals() self.no_perm_group = Group.objects.create(name="No Permission Group") self.test_group = Group.objects.create(name="Test group") self.test_group.user_set.add(self.none_user) self.test_group.user_set.add(self.none_user2) self.test_group.user_set.add(self.none_user3) self.permission = Permission.objects.get_by_natural_key(codename='audit_permissions', app_label='permissions_tool', model='permissionstool') self.test_group.permissions.add(self.permission) self.member.user_permissions.add(self.permission) AuthUtils.connect_signals()
def setUp(self): self.member = AuthUtils.create_member('auth_member') self.member.set_password('password') self.member.email = '*****@*****.**' self.member.save() self.none_user = AuthUtils.create_user('none_user', disconnect_signals=True) self.none_user2 = AuthUtils.create_user('none_user2', disconnect_signals=True) self.none_user3 = AuthUtils.create_user('none_user3', disconnect_signals=True) self.no_perm_user = AuthUtils.create_user('no_perm_user', disconnect_signals=True) self.no_perm_user.set_password('password') AuthUtils.disconnect_signals() self.no_perm_group = Group.objects.create(name="No Permission Group") self.test_group = Group.objects.create(name="Test group") self.test_group.user_set.add(self.none_user) self.test_group.user_set.add(self.none_user2) self.test_group.user_set.add(self.none_user3) self.permission = Permission.objects.get_by_natural_key( codename='audit_permissions', app_label='permissions_tool', model='permissionstool') self.test_group.permissions.add(self.permission) self.member.user_permissions.add(self.permission) AuthUtils.connect_signals()
def test_m2m_changed_group_permissions(self, services_hook, transaction): from django.contrib.contenttypes.models import ContentType svc = mock.Mock() svc.validate_user.return_value = None svc.access_perm = 'auth.access_testsvc' services_hook.get_services.return_value = [svc] # Overload transaction.on_commit so everything happens synchronously transaction.on_commit = lambda fn: fn() test_group = Group.objects.create(name="Test group") AuthUtils.disconnect_signals() self.member.groups.add(test_group) AuthUtils.connect_signals() ct = ContentType.objects.get(app_label='auth', model='permission') perm = Permission.objects.create(name="Test perm", codename="access_testsvc", content_type=ct) test_group.permissions.add(perm) # Act, should trigger m2m change test_group.permissions.remove(perm) # Assert self.assertTrue(services_hook.get_services.called) self.assertTrue(svc.validate_user.called) args, kwargs = svc.validate_user.call_args self.assertEqual(self.member, args[0])