Skip to content

Commit fc31cb2

Browse files
committed
add test for make_order_invoice failure branch
1 parent 90da13a commit fc31cb2

File tree

1 file changed

+35
-0
lines changed

1 file changed

+35
-0
lines changed

plans/tests/tests.py

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,7 @@
4040
from plans.taxation.eu import EUTaxationPolicy
4141
from plans.validators import ModelCountValidator
4242
from plans.views import CreateOrderView
43+
from plans.admin import OrderAdmin, make_order_invoice
4344

4445
User = get_user_model()
4546
BillingInfo = AbstractBillingInfo.get_concrete_model()
@@ -1775,6 +1776,40 @@ def test_has_automatic_renewal(self):
17751776
)
17761777

17771778

1779+
class AdminActionsTestCase(TestCase):
1780+
fixtures = ["initial_plan", "test_django-plans_auth", "test_django-plans_plans"]
1781+
1782+
def setUp(self):
1783+
self.user = User.objects.get(username="test1")
1784+
self.plan_pricing = PlanPricing.objects.first()
1785+
self.modeladmin = OrderAdmin(Order, admin.site)
1786+
self.request = RequestFactory().get("/")
1787+
1788+
def test_make_order_invoice_not_completed(self):
1789+
"""
1790+
Test that make_order_invoice admin action doesn't create invoice for not completed order
1791+
and sends a message to user.
1792+
"""
1793+
order = Order.objects.create(
1794+
user=self.user,
1795+
pricing=self.plan_pricing.pricing,
1796+
amount=100,
1797+
plan=self.plan_pricing.plan,
1798+
completed=None,
1799+
)
1800+
queryset = Order.objects.filter(pk=order.pk)
1801+
1802+
self.modeladmin.message_user = mock.Mock()
1803+
make_order_invoice(self.modeladmin, self.request, queryset)
1804+
1805+
self.assertEqual(Invoice.objects.filter(order=order).count(), 0)
1806+
self.modeladmin.message_user.assert_called_with(
1807+
self.request,
1808+
f"Order {order.id} is has no completed date, cannot create invoice.",
1809+
"ERROR",
1810+
)
1811+
1812+
17781813
class TasksTestCase(TestCase):
17791814
def setUp(self):
17801815
self.user = baker.make("User", email="[email protected]", username="foo bar")

0 commit comments

Comments
 (0)