import pytest
from pathlib import Path
from django.conf import settings
import json
from apps.subscriptions.utils import CancelSubscription

def test_gen_token_return_success() -> None:
    cancel = CancelSubscription(
        CLIENT_ID = settings.PAYPAL_CLIENTID,
        CLIENT_SECRET = settings.PAYPAL_SECRETID
    )
    assert cancel.gen_token().status_code == 200
    assert "access_token" in cancel.gen_token().text
def test_get_canceled_subscription_details():
    subscription = CancelSubscription(
        CLIENT_ID = settings.PAYPAL_CLIENTID,
        CLIENT_SECRET = settings.PAYPAL_SECRETID
    )
    response = subscription.get_subscription_details("I-S7711JE15M21")
    assert response.status_code == 200
    content = json.loads(response.content)
    assert content['status'] == "CANCELLED"


def test_get_active_subscription_details():
    subscription = CancelSubscription(
        CLIENT_ID = settings.PAYPAL_CLIENTID,
        CLIENT_SECRET = settings.PAYPAL_SECRETID
    )
    response = subscription.get_subscription_details("I-J5827JFEA7L1")
    assert response.status_code == 200
    content = json.loads(response.content)
    assert content['status'] == "ACTIVE"

@pytest.mark.skip("Subscription id already canceled")
def test_cancel_subscription() -> None:
    cancel = CancelSubscription(
        CLIENT_ID=settings.PAYPAL_CLIENTID,
        CLIENT_SECRET=settings.PAYPAL_SECRETID
    )
    assert cancel.cancel_subscription("I-S7711JE15M21").status_code == 204