From 6bc2d71a0ec6e5bfab71f708bef30af80a089df3 Mon Sep 17 00:00:00 2001 From: i701 Date: Sun, 6 Jul 2025 21:23:35 +0500 Subject: [PATCH] =?UTF-8?q?test(payment):=20add=20PaymentTests=20for=20can?= =?UTF-8?q?celing=20payments=20functionality=20=E2=9C=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- billing/tests.py | 46 +++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 45 insertions(+), 1 deletion(-) diff --git a/billing/tests.py b/billing/tests.py index 9964be4..329396c 100644 --- a/billing/tests.py +++ b/billing/tests.py @@ -3,7 +3,7 @@ from django.urls import reverse from rest_framework import status from rest_framework.test import APIClient from django.contrib.auth import get_user_model -from .models import Topup +from .models import Topup, Payment from .serializers import TopupSerializer from django.utils import timezone from datetime import timedelta @@ -205,3 +205,47 @@ class TopupTests(TestCase): response = self.client.delete(url, format="json") self.assertEqual(response.status_code, status.HTTP_204_NO_CONTENT) self.assertEqual(Topup.objects.count(), 0) + + +class PaymentTests(TestCase): + def setUp(self): + self.client = APIClient() + self.real_user = User.objects.create_user( + username="testuser", + password="testpassword", + first_name=REAL_USER_FIRST_NAME, + last_name=REAL_USER_LAST_NAME, + acc_no="7770000010629", + is_admin=True, + ) + self.user = User.objects.create_user( + username="plskillme", + password="modewasgayithink", + first_name="mode", + last_name="hussain", + acc_no="1122334455", + ) + self.admin_user = User.objects.create_superuser( + username="adminuser", + password="adminpassword", + email="admin@example.com", + first_name="Admin", + last_name="User", + acc_no="987654321", + ) + self.client.force_authenticate(user=self.real_user) + + def test_cancel_payment(self): + payment = Payment.objects.create( + amount=100.00, + user=self.real_user, + status="PENDING", + number_of_months=1, + paid=False, + ) + url = reverse("cancel-payment", kwargs={"pk": payment.pk}) + response = self.client.patch(url, format="json") + self.assertEqual(response.status_code, status.HTTP_200_OK) + payment.refresh_from_db() + self.assertEqual(payment.status, "CANCELLED") + self.assertFalse(payment.paid)