This specifically enables/disables the underlying comment service client used to make calls to the service. When disabled, this client will now throw an exception which can be propagated upwards so that callers can make the right decision about how to notify users of the error, or handle retry, etc etc.
66 lines
2.4 KiB
Python
66 lines
2.4 KiB
Python
"""
|
|
Utilities for tests within the django_comment_client module.
|
|
"""
|
|
from mock import patch
|
|
|
|
from openedx.core.djangoapps.course_groups.tests.helpers import CohortFactory
|
|
from django_comment_common.models import Role, ForumsConfig
|
|
from django_comment_common.utils import seed_permissions_roles
|
|
from student.tests.factories import CourseEnrollmentFactory, UserFactory
|
|
from util.testing import UrlResetMixin
|
|
from xmodule.modulestore.tests.factories import CourseFactory
|
|
from xmodule.modulestore.tests.django_utils import SharedModuleStoreTestCase
|
|
|
|
|
|
class ForumsEnableMixin(object):
|
|
"""
|
|
Ensures that the forums are enabled for a given test class.
|
|
"""
|
|
def setUp(self):
|
|
super(ForumsEnableMixin, self).setUp()
|
|
|
|
config = ForumsConfig.current()
|
|
config.enabled = True
|
|
config.save()
|
|
|
|
|
|
class CohortedTestCase(ForumsEnableMixin, UrlResetMixin, SharedModuleStoreTestCase):
|
|
"""
|
|
Sets up a course with a student, a moderator and their cohorts.
|
|
"""
|
|
@classmethod
|
|
@patch.dict("django.conf.settings.FEATURES", {"ENABLE_DISCUSSION_SERVICE": True})
|
|
def setUpClass(cls):
|
|
super(CohortedTestCase, cls).setUpClass()
|
|
cls.course = CourseFactory.create(
|
|
cohort_config={
|
|
"cohorted": True,
|
|
"cohorted_discussions": ["cohorted_topic"]
|
|
}
|
|
)
|
|
cls.course.discussion_topics["cohorted topic"] = {"id": "cohorted_topic"}
|
|
cls.course.discussion_topics["non-cohorted topic"] = {"id": "non_cohorted_topic"}
|
|
fake_user_id = 1
|
|
cls.store.update_item(cls.course, fake_user_id)
|
|
|
|
@patch.dict("django.conf.settings.FEATURES", {"ENABLE_DISCUSSION_SERVICE": True})
|
|
def setUp(self):
|
|
super(CohortedTestCase, self).setUp()
|
|
|
|
seed_permissions_roles(self.course.id)
|
|
self.student = UserFactory.create()
|
|
self.moderator = UserFactory.create()
|
|
CourseEnrollmentFactory(user=self.student, course_id=self.course.id)
|
|
CourseEnrollmentFactory(user=self.moderator, course_id=self.course.id)
|
|
self.moderator.roles.add(Role.objects.get(name="Moderator", course_id=self.course.id))
|
|
self.student_cohort = CohortFactory.create(
|
|
name="student_cohort",
|
|
course_id=self.course.id,
|
|
users=[self.student]
|
|
)
|
|
self.moderator_cohort = CohortFactory.create(
|
|
name="moderator_cohort",
|
|
course_id=self.course.id,
|
|
users=[self.moderator]
|
|
)
|