Coverage for website/reimbursements/tests/test_admin.py: 100.00%

30 statements  

« prev     ^ index     » next       coverage.py v7.6.7, created at 2025-08-14 10:31 +0000

1from django.contrib.admin.sites import AdminSite 

2from django.test import TestCase 

3from django.utils import timezone 

4 

5from members.models import Member 

6from reimbursements.admin import ReimbursementsAdmin 

7from reimbursements.models import Reimbursement 

8 

9 

10class MockRequest: 

11 def __init__(self, user): 

12 self.user = user 

13 

14 

15class ReimbursementsAdminTests(TestCase): 

16 def setUp(self): 

17 self.site = AdminSite() 

18 self.user = Member.objects.create_user(username="testuser", password="12345") 

19 self.superuser = Member.objects.create_superuser( 

20 username="admin", password="12345", email="admin@example.com" 

21 ) 

22 self.reimbursement = Reimbursement.objects.create( 

23 owner=self.user, 

24 description="Test reimbursement", 

25 amount=100, 

26 date_incurred=timezone.now(), 

27 ) 

28 self.admin = ReimbursementsAdmin(model=Reimbursement, admin_site=self.site) 

29 

30 def test_get_queryset_for_superuser(self): 

31 request = MockRequest(self.superuser) 

32 queryset = self.admin.get_queryset(request) 

33 self.assertIn(self.reimbursement, queryset) 

34 

35 def test_get_queryset_for_normal_user(self): 

36 request = MockRequest(self.user) 

37 queryset = self.admin.get_queryset(request) 

38 self.assertIn(self.reimbursement, queryset) 

39 

40 def test_has_view_permission(self): 

41 request = MockRequest(self.user) 

42 request.member = self.user 

43 self.assertTrue(self.admin.has_view_permission(request, self.reimbursement)) 

44 request.user = self.superuser 

45 self.assertTrue(self.admin.has_view_permission(request, self.reimbursement))