def test_positive_existed_authorised_user(self, mocked_stripe): # given product_code = "club1" StripeSession = namedtuple('Session', "id") session = StripeSession(id=f"{uuid.uuid4()}") mocked_stripe.checkout.Session.create.return_value = session self.client.authorise() # when response = self.client.get(reverse("pay"), data={ "product_code": product_code, }) # check self.assertTrue( User.objects.filter(email=self.existed_user.email).exists(), ) user_after: User = User.objects.get(email=self.existed_user.email) self.assertEqual(user_after.membership_platform_type, self.existed_user.membership_platform_type) self.assertEqual(user_after.full_name, self.existed_user.full_name) self.assertEqual(user_after.membership_started_at, self.existed_user.membership_started_at) self.assertAlmostEquals(user_after.membership_expires_at, self.existed_user.membership_expires_at) self.assertEqual(user_after.moderation_status, self.existed_user.moderation_status) self.assertTrue(Payment.get(reference=session.id)) self.assertContains(response=response, text="Платим 💰", status_code=200)
def test_positive_new_user(self, mocked_stripe): # given product_code = "club1" email = f"new-user-{uuid.uuid4()}@email.com" StripeSession = namedtuple('Session', "id") session = StripeSession(id=f"{uuid.uuid4()}") mocked_stripe.checkout.Session.create.return_value = session # when response = self.client.get(reverse("pay"), data={ "product_code": product_code, # "is_recurrent": PRODUCTS[product_code]["recurrent"], "email": email }) # check self.assertTrue(User.objects.filter(email=email).exists(), ) created_user: User = User.objects.get(email=email) self.assertEqual(created_user.email, email) self.assertEqual(created_user.membership_platform_type, User.MEMBERSHIP_PLATFORM_DIRECT) self.assertEqual(created_user.full_name, email.replace("@email.com", "")) self.assertAlmostEquals(created_user.membership_started_at, datetime.utcnow(), delta=timedelta(seconds=5)) self.assertAlmostEquals(created_user.membership_expires_at, datetime.utcnow() + timedelta(days=1), delta=timedelta(seconds=5)) self.assertEqual(created_user.moderation_status, User.MODERATION_STATUS_INTRO) self.assertTrue(Payment.get(reference=session.id)) self.assertContains(response=response, text="Платим 💰", status_code=200)
def test_get_payment_by_reference_positive(self): # when payment: Payment = Payment.get( reference=self.existed_payment.reference) # then self.assertIsNotNone(payment) self.assertEqual(payment.id, self.existed_payment.id)
def test_finish_payment_positive(self): result: Payment = Payment.finish( reference=self.existed_payment.reference, status=Payment.STATUS_SUCCESS, data={"some": "data"}) self.assertIsNotNone(result) # check it persistent payment = Payment.get(reference=result.reference) self.assertIsNotNone(payment) self.assertEqual(payment.id, self.existed_payment.id) self.assertEqual(payment.status, Payment.STATUS_SUCCESS) self.assertEqual(payment.data, '{"some": "data"}')
def done(request): payment = Payment.get(reference=request.GET.get("reference")) return render(request, "payments/messages/done.html", { "payment": payment, })
def test_get_payment_by_reference_not_existed_reference(self): payment: Payment = Payment.get(reference="wrong-not-existed-reference") self.assertIsNone(payment)