mirror of
https://gitlab.com/allianceauth/allianceauth.git
synced 2026-02-10 00:56:19 +01:00
Begin fixing tests.
Use custom django-navhelper
This commit is contained in:
@@ -9,13 +9,13 @@ except ImportError:
|
||||
|
||||
from django.test import TestCase
|
||||
from django.contrib.auth.models import Group, Permission
|
||||
|
||||
from alliance_auth.tests.auth_utils import AuthUtils
|
||||
from authentication.models import State
|
||||
|
||||
|
||||
class ServicesSignalsTestCase(TestCase):
|
||||
def setUp(self):
|
||||
self.member = AuthUtils.create_member('auth_member')
|
||||
self.member = AuthUtils.create_user('auth_member', disconnect_signals=True)
|
||||
self.none_user = AuthUtils.create_user('none_user', disconnect_signals=True)
|
||||
|
||||
@mock.patch('services.signals.transaction')
|
||||
@@ -50,7 +50,6 @@ class ServicesSignalsTestCase(TestCase):
|
||||
args, kwargs = svc.validate_user.call_args
|
||||
self.assertEqual(self.member, args[0])
|
||||
|
||||
|
||||
@mock.patch('services.signals.disable_user')
|
||||
def test_pre_delete_user(self, disable_user):
|
||||
|
||||
@@ -75,26 +74,6 @@ class ServicesSignalsTestCase(TestCase):
|
||||
args, kwargs = disable_user.call_args
|
||||
self.assertEqual(self.member, args[0])
|
||||
|
||||
@mock.patch('services.signals.set_state')
|
||||
def test_pre_save_user_activation(self, set_state):
|
||||
"""
|
||||
Test a user set inactive has disable_member called
|
||||
"""
|
||||
# Arrange, set user inactive first
|
||||
self.member.is_active = False
|
||||
self.member.save() # Signal Trigger (but not the one we want)
|
||||
|
||||
set_state.reset_mock()
|
||||
|
||||
# Act
|
||||
self.member.is_active = True
|
||||
self.member.save() # Signal Trigger
|
||||
|
||||
# Assert
|
||||
self.assertTrue(set_state.called)
|
||||
args, kwargs = set_state.call_args
|
||||
self.assertEqual(self.member, args[0])
|
||||
|
||||
@mock.patch('services.signals.transaction')
|
||||
@mock.patch('services.signals.ServicesHook')
|
||||
def test_m2m_changed_group_permissions(self, services_hook, transaction):
|
||||
@@ -153,3 +132,58 @@ class ServicesSignalsTestCase(TestCase):
|
||||
self.assertTrue(svc.validate_user.called)
|
||||
args, kwargs = svc.validate_user.call_args
|
||||
self.assertEqual(self.member, args[0])
|
||||
|
||||
@mock.patch('services.signals.transaction')
|
||||
@mock.patch('services.signals.ServicesHook')
|
||||
def test_m2m_changed_user_state_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()
|
||||
|
||||
AuthUtils.disconnect_signals()
|
||||
test_state = State.objects.create(name="Test state", priority=150)
|
||||
self.member.profile.state = test_state
|
||||
self.member.profile.save()
|
||||
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_state.permissions.add(perm)
|
||||
|
||||
# Act, should trigger m2m change
|
||||
test_state.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])
|
||||
|
||||
@mock.patch('services.signals.ServicesHook')
|
||||
def test_state_changed_services_valudation(self, services_hook):
|
||||
"""
|
||||
Test a user changing state has service accounts validated
|
||||
"""
|
||||
svc = mock.Mock()
|
||||
svc.validate_user.return_value = None
|
||||
svc.access_perm = 'auth.access_testsvc'
|
||||
|
||||
services_hook.get_services.return_value = [svc]
|
||||
|
||||
test_state = State.objects.create(name="Test state", priority=150, public=True)
|
||||
self.member.profile.state = test_state
|
||||
self.member.profile.save()
|
||||
|
||||
# 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])
|
||||
Reference in New Issue
Block a user