Esempio n. 1
0
def test_restore_organization(organization_plan_factory, mocker):
    patched = mocker.patch(
        "squarelet.organizations.tasks.send_cache_invalidations")
    mocker.patch("stripe.Plan.create")
    today = date.today()
    organization_plan = organization_plan_factory()

    subsc_update_cancel = SubscriptionFactory(update_on=today - timedelta(1),
                                              plan=organization_plan,
                                              cancelled=True)
    subsc_update_later = SubscriptionFactory(update_on=today + timedelta(1),
                                             plan=organization_plan)
    subsc_update = SubscriptionFactory(update_on=today - timedelta(1),
                                       plan=organization_plan)

    tasks.restore_organization()

    subsc_update_later.refresh_from_db()
    subsc_update.refresh_from_db()

    # update cancel should have been deleted
    assert not Subscription.objects.filter(pk=subsc_update_cancel.pk).exists()

    # update later should have not been changed
    assert subsc_update_later.plan == organization_plan
    assert subsc_update_later.update_on == today + timedelta(1)

    assert subsc_update.plan == organization_plan
    assert subsc_update.update_on == today + relativedelta(months=1)

    assert patched.call_args[0][0] == "organization"
    assert set(patched.call_args[0][1]) == set([
        subsc_update.organization.uuid, subsc_update_cancel.organization.uuid
    ])
Esempio n. 2
0
 def test_destroy(self, api_client, user, mocker):
     """Test cancelling a subscription"""
     mocker.patch("stripe.Plan.create")
     mocked_stripe_subscription = mocker.patch(
         "squarelet.organizations.models.Subscription.stripe_subscription")
     organization = OrganizationFactory(admins=[user])
     subscription = SubscriptionFactory(organization=organization)
     api_client.force_authenticate(user=user)
     response = api_client.delete(
         f"/pp-api/organizations/{organization.uuid}/subscriptions/"
         f"{subscription.pk}/")
     assert response.status_code == status.HTTP_204_NO_CONTENT
     subscription.refresh_from_db()
     assert subscription.cancelled
     assert mocked_stripe_subscription.cancel_at_period_end is True
     mocked_stripe_subscription.save.assert_called_once()