Coverage for website/payments/tests/api/v2/test_views.py: 100.00%
42 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.test import Client, TestCase, override_settings
2from django.urls import reverse
3from django.utils import timezone
5from freezegun import freeze_time
7from payments.models import BankAccount, Batch, Payment, PaymentUser
10@freeze_time("2019-04-01")
11@override_settings(SUSPEND_SIGNALS=True)
12class PaymentListViewTest(TestCase):
13 """Test for the PaymentListView."""
15 fixtures = ["members.json"]
17 @classmethod
18 def setUpTestData(cls):
19 cls.login_user = PaymentUser.objects.filter(last_name="Wiggers").first()
20 cls.account1 = BankAccount.objects.create(
21 owner=cls.login_user,
22 initials="J1",
23 last_name="Test",
24 iban="NL91ABNA0417164300",
25 valid_from="2019-03-01",
26 signature="sig",
27 mandate_no="11-2",
28 )
29 cls.payment1 = Payment.objects.create(
30 created_at=timezone.datetime(year=2019, month=3, day=1),
31 paid_by=cls.login_user,
32 processed_by=cls.login_user,
33 notes="Testing Payment 1",
34 amount=10,
35 type=Payment.TPAY,
36 )
38 def setUp(self):
39 self.account1.refresh_from_db()
40 self.payment1.refresh_from_db()
41 self.client = Client()
42 self.client.force_login(self.login_user)
44 def test_settled_filter(self):
45 """Test if the view shows payments."""
46 response = self.client.get(
47 reverse("api:v2:payments:payments-list"),
48 follow=True,
49 )
50 self.assertEqual(200, response.status_code)
51 self.assertContains(response, "Testing Payment 1")
53 response = self.client.get(
54 reverse("api:v2:payments:payments-list") + "?settled=yes",
55 follow=True,
56 )
57 self.assertEqual(200, response.status_code)
58 self.assertNotContains(response, "Testing Payment 1")
60 response = self.client.get(
61 reverse("api:v2:payments:payments-list") + "?settled=no",
62 follow=True,
63 )
64 self.assertEqual(200, response.status_code)
65 self.assertContains(response, "Testing Payment 1")
67 self.payment1.batch = Batch.objects.create(processed=False)
68 self.payment1.save()
69 self.payment1.batch.processed = True
70 self.payment1.batch.save()
72 response = self.client.get(
73 reverse("api:v2:payments:payments-list"),
74 follow=True,
75 )
76 self.assertEqual(200, response.status_code)
77 self.assertContains(response, "Testing Payment 1")
79 response = self.client.get(
80 reverse("api:v2:payments:payments-list") + "?settled=yes",
81 follow=True,
82 )
83 self.assertEqual(200, response.status_code)
84 self.assertContains(response, "Testing Payment 1")
86 response = self.client.get(
87 reverse("api:v2:payments:payments-list") + "?settled=no",
88 follow=True,
89 )
90 self.assertEqual(200, response.status_code)
91 self.assertNotContains(response, "Testing Payment 1")