test: for entitlements tasks.expire_and_create_entitlements
This commit is contained in:
@@ -11,8 +11,9 @@ import pytz
|
||||
from django.test import TestCase
|
||||
|
||||
from common.djangoapps.entitlements import tasks
|
||||
from common.djangoapps.entitlements.models import CourseEntitlementPolicy
|
||||
from common.djangoapps.entitlements.models import CourseEntitlement, CourseEntitlementPolicy
|
||||
from common.djangoapps.entitlements.tests.factories import CourseEntitlementFactory
|
||||
from common.djangoapps.student.tests.factories import AdminFactory
|
||||
from openedx.core.djangolib.testing.utils import skip_unless_lms
|
||||
|
||||
|
||||
@@ -103,3 +104,63 @@ class TestExpireOldEntitlementsTaskIntegration(TestCase):
|
||||
entitlement.refresh_from_db()
|
||||
|
||||
assert entitlement.expired_at is not None
|
||||
|
||||
|
||||
@skip_unless_lms
|
||||
class TestExpireAndCreateEntitlementsTaskIntegration(TestCase):
|
||||
"""
|
||||
Tests for the 'expire_and_create_entitlements' method.
|
||||
"""
|
||||
SUPPORT_USERNAME = 'support_username'
|
||||
|
||||
def setUp(self):
|
||||
"""
|
||||
Set up user for tests.
|
||||
"""
|
||||
# Mock support user
|
||||
AdminFactory.create(username=self.SUPPORT_USERNAME)
|
||||
|
||||
def test_actually_expired(self):
|
||||
"""
|
||||
Integration test with CourseEntitlement to make sure we are calling the
|
||||
correct API.
|
||||
"""
|
||||
entitlement = make_entitlement()
|
||||
|
||||
# Sanity check
|
||||
assert entitlement.expired_at is None
|
||||
|
||||
# Run enforcement
|
||||
tasks.expire_and_create_entitlements.delay(
|
||||
[entitlement.id],
|
||||
self.SUPPORT_USERNAME,
|
||||
).get()
|
||||
entitlement.refresh_from_db()
|
||||
|
||||
assert entitlement.expired_at is not None
|
||||
|
||||
|
||||
def test_actually_created(self):
|
||||
"""
|
||||
Integration test with CourseEntitlement to make sure we are creating an
|
||||
entitlement after expiring it.
|
||||
"""
|
||||
entitlement = make_entitlement()
|
||||
|
||||
# Sanity check
|
||||
assert not CourseEntitlement.objects.filter(
|
||||
course_uuid=entitlement.course_uuid,
|
||||
expired_at=None
|
||||
).exclude(id=entitlement.id).exists()
|
||||
|
||||
# Run enforcement
|
||||
tasks.expire_and_create_entitlements.delay(
|
||||
[entitlement.id],
|
||||
self.SUPPORT_USERNAME,
|
||||
).get()
|
||||
entitlement.refresh_from_db()
|
||||
|
||||
assert CourseEntitlement.objects.filter(
|
||||
course_uuid=entitlement.course_uuid,
|
||||
expired_at=None
|
||||
).exclude(id=entitlement.id).exists()
|
||||
|
||||
Reference in New Issue
Block a user