|  | 
| 40 | 40 | from plans.taxation.eu import EUTaxationPolicy | 
| 41 | 41 | from plans.validators import ModelCountValidator | 
| 42 | 42 | from plans.views import CreateOrderView | 
|  | 43 | +from plans.admin import OrderAdmin, make_order_invoice | 
| 43 | 44 | 
 | 
| 44 | 45 | User = get_user_model() | 
| 45 | 46 | BillingInfo = AbstractBillingInfo.get_concrete_model() | 
| @@ -1775,6 +1776,40 @@ def test_has_automatic_renewal(self): | 
| 1775 | 1776 |             ) | 
| 1776 | 1777 | 
 | 
| 1777 | 1778 | 
 | 
|  | 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 | + | 
| 1778 | 1813 | class TasksTestCase(TestCase): | 
| 1779 | 1814 |     def setUp(self): | 
| 1780 | 1815 |         self.user = baker .make ("User" , email="[email protected]" , username="foo bar" ) | 
|  | 
0 commit comments