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

1from django.test import Client, TestCase, override_settings 

2from django.urls import reverse 

3from django.utils import timezone 

4 

5from freezegun import freeze_time 

6 

7from payments.models import BankAccount, Batch, Payment, PaymentUser 

8 

9 

10@freeze_time("2019-04-01") 

11@override_settings(SUSPEND_SIGNALS=True) 

12class PaymentListViewTest(TestCase): 

13 """Test for the PaymentListView.""" 

14 

15 fixtures = ["members.json"] 

16 

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 ) 

37 

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) 

43 

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") 

52 

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") 

59 

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") 

66 

67 self.payment1.batch = Batch.objects.create(processed=False) 

68 self.payment1.save() 

69 self.payment1.batch.processed = True 

70 self.payment1.batch.save() 

71 

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") 

78 

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") 

85 

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")