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
« 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
5from members.models import Member
6from reimbursements.admin import ReimbursementsAdmin
7from reimbursements.models import Reimbursement
10class MockRequest:
11 def __init__(self, user):
12 self.user = user
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)
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)
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)
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))