def test_create_refunds_with_existing_refund(self): """ The method should NOT create refunds for lines that have already been refunded. """ order = self.create_order() RefundLineFactory(order_line=order.lines.first()) actual = create_refunds([order], self.course.id) self.assertEqual(actual, [])
def test_num_items(self): """ The method should return the total number of items being refunded. """ refund = RefundFactory() self.assertEqual(refund.num_items, 1) RefundLineFactory(quantity=3, refund=refund) self.assertEqual(refund.num_items, 4)
def test_refunded_line(self): """ View should NOT create a refund if an order/line is found, and has an existing refund. """ order = self.create_order() Refund.objects.all().delete() RefundLineFactory(order_line=order.lines.first()) self.assertEqual(Refund.objects.count(), 1) data = self._get_data(self.user.username, self.course_id) response = self.client.post(self.path, data, JSON_CONTENT_TYPE) self.assert_ok_response(response) self.assertEqual(Refund.objects.count(), 1)
def test_create_with_lines_with_existing_refund(self, refund_status, refund_created): """ Refund.create_with_lines should not create RefundLines for order lines which have already been refunded. """ order = self.create_order(user=UserFactory()) line = order.lines.first() RefundLineFactory(order_line=line, status=refund_status) with LogCapture(LOGGER_NAME) as logger: refund = Refund.create_with_lines(order, [line]) self.assertEqual(isinstance(refund, Refund), refund_created) if refund_created: self.assert_refund_creation_logged(logger, refund, order)
def test_create_with_lines_with_existing_refund(self): """ Refund.create_with_lines should not create RefundLines for order lines which have already been refunded. """ order = self.create_order(user=UserFactory()) line = order.lines.first() RefundLineFactory(order_line=line) with LogCapture(LOGGER_NAME) as l: refund = Refund.create_with_lines(order, [line]) self.assertEqual(refund, None) l.check()
def _get_instance(self, **kwargs): return RefundLineFactory(**kwargs)