mirror of
				https://github.com/ae-utbm/sith.git
				synced 2025-11-03 18:43:04 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			44 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			44 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
from django.contrib.auth.models import Permission
 | 
						|
from django.test import TestCase
 | 
						|
from django.urls import reverse
 | 
						|
from model_bakery import baker
 | 
						|
from pytest_django.asserts import assertRedirects
 | 
						|
 | 
						|
from club.models import Club, Membership
 | 
						|
from core.baker_recipes import subscriber_user
 | 
						|
from core.models import User
 | 
						|
 | 
						|
 | 
						|
class TestSubscriptionPermission(TestCase):
 | 
						|
    @classmethod
 | 
						|
    def setUpTestData(cls):
 | 
						|
        cls.user: User = subscriber_user.make()
 | 
						|
        cls.admin = baker.make(User, is_superuser=True)
 | 
						|
        cls.club = baker.make(Club)
 | 
						|
        baker.make(Membership, user=cls.user, club=cls.club, role=7)
 | 
						|
 | 
						|
    def test_give_permission(self):
 | 
						|
        self.client.force_login(self.admin)
 | 
						|
        response = self.client.post(
 | 
						|
            reverse("subscription:perms"), {"groups": [self.club.board_group_id]}
 | 
						|
        )
 | 
						|
        assertRedirects(response, reverse("subscription:perms"))
 | 
						|
        assert self.user.has_perm("subscription.add_subscription")
 | 
						|
 | 
						|
    def test_remove_permission(self):
 | 
						|
        self.client.force_login(self.admin)
 | 
						|
        response = self.client.post(reverse("subscription:perms"), {"groups": []})
 | 
						|
        assertRedirects(response, reverse("subscription:perms"))
 | 
						|
        assert not self.user.has_perm("subscription.add_subscription")
 | 
						|
 | 
						|
    def test_subscription_page_access(self):
 | 
						|
        self.client.force_login(self.user)
 | 
						|
        response = self.client.get(reverse("subscription:subscription"))
 | 
						|
        assert response.status_code == 403
 | 
						|
 | 
						|
        self.club.board_group.permissions.add(
 | 
						|
            Permission.objects.get(codename="add_subscription")
 | 
						|
        )
 | 
						|
        response = self.client.get(reverse("subscription:subscription"))
 | 
						|
        assert response.status_code == 200
 |