import pytest
from apps.accounts.models import User
from apps.subscriptions.models import Plan
from apps.process.utils import yt_down_allow,yt_up_allow
from datetime import timedelta

def test_create_basic_plan(db,basic_plan_factory):
    assert Plan.objects.all().count() == 0

    basic_plan_factory.create()
    assert Plan.objects.all().count() == 1
def test_super_user_youtube_download_permission(db,super_user_factory):
    user = super_user_factory.create()
    assert yt_down_allow(user.email) == True

def test_super_user_youtube_upload_permission(db,super_user_factory):
    user = super_user_factory.create()
    assert yt_up_allow(user.email) == True

def test_normal_user_basic_download_permission(db,basic_subscription_factory):
    subscription = basic_subscription_factory.create()
    assert yt_down_allow(subscription.user.email) == False

def test_normal_user_basic_upload_permission(db,basic_subscription_factory):
    subscription = basic_subscription_factory.create()
    assert yt_up_allow(subscription.user.email) == False

def test_subscription_end_time(db,basic_subscription_factory):
    basic_user = basic_subscription_factory.create()
    subscription_start = basic_user.start_time
    assert basic_user.ends_time == timedelta(days=int(basic_user.plan.duration_days))+subscription_start


