mirror of
https://github.com/i701/sarlink-portal-api.git
synced 2025-07-08 00:36:31 +00:00
test(payment): add PaymentTests for canceling payments functionality ✅
This commit is contained in:
@ -3,7 +3,7 @@ from django.urls import reverse
|
|||||||
from rest_framework import status
|
from rest_framework import status
|
||||||
from rest_framework.test import APIClient
|
from rest_framework.test import APIClient
|
||||||
from django.contrib.auth import get_user_model
|
from django.contrib.auth import get_user_model
|
||||||
from .models import Topup
|
from .models import Topup, Payment
|
||||||
from .serializers import TopupSerializer
|
from .serializers import TopupSerializer
|
||||||
from django.utils import timezone
|
from django.utils import timezone
|
||||||
from datetime import timedelta
|
from datetime import timedelta
|
||||||
@ -205,3 +205,47 @@ class TopupTests(TestCase):
|
|||||||
response = self.client.delete(url, format="json")
|
response = self.client.delete(url, format="json")
|
||||||
self.assertEqual(response.status_code, status.HTTP_204_NO_CONTENT)
|
self.assertEqual(response.status_code, status.HTTP_204_NO_CONTENT)
|
||||||
self.assertEqual(Topup.objects.count(), 0)
|
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)
|
||||||
|
Reference in New Issue
Block a user