34 lines
1.1 KiB
Python
34 lines
1.1 KiB
Python
|
import datetime
|
||
|
import pytz
|
||
|
|
||
|
from decimal import Decimal
|
||
|
from django.core.exceptions import ValidationError
|
||
|
|
||
|
from registrasion import models as rego
|
||
|
from registrasion.controllers.cart import CartController
|
||
|
from registrasion.controllers.invoice import InvoiceController
|
||
|
|
||
|
from test_cart import RegistrationCartTestCase
|
||
|
|
||
|
UTC = pytz.timezone('UTC')
|
||
|
|
||
|
|
||
|
class RefundTestCase(RegistrationCartTestCase):
|
||
|
|
||
|
def test_refund_marks_void_and_unpaid_and_cart_released(self):
|
||
|
current_cart = CartController.for_user(self.USER_1)
|
||
|
|
||
|
# Should be able to create an invoice after the product is added
|
||
|
current_cart.add_to_cart(self.PROD_1, 1)
|
||
|
invoice = InvoiceController.for_cart(current_cart.cart)
|
||
|
|
||
|
invoice.pay("A Payment!", invoice.invoice.value)
|
||
|
self.assertFalse(invoice.invoice.void)
|
||
|
self.assertTrue(invoice.invoice.paid)
|
||
|
self.assertFalse(invoice.invoice.cart.released)
|
||
|
|
||
|
invoice.refund("A Refund!", invoice.invoice.value)
|
||
|
self.assertTrue(invoice.invoice.void)
|
||
|
self.assertFalse(invoice.invoice.paid)
|
||
|
self.assertTrue(invoice.invoice.cart.released)
|