utils.py 2.14 KB
Newer Older
1 2 3
"""
Utilities for tests within the django_comment_client module.
"""
4
from mock import patch
5

6
from openedx.core.djangoapps.course_groups.tests.helpers import CohortFactory
7 8 9
from django_comment_common.models import Role
from django_comment_common.utils import seed_permissions_roles
from student.tests.factories import CourseEnrollmentFactory, UserFactory
10
from util.testing import UrlResetMixin
11
from xmodule.modulestore.tests.factories import CourseFactory
12
from xmodule.modulestore.tests.django_utils import SharedModuleStoreTestCase
13

14

15
class CohortedTestCase(UrlResetMixin, SharedModuleStoreTestCase):
16 17 18
    """
    Sets up a course with a student, a moderator and their cohorts.
    """
19
    @classmethod
20
    @patch.dict("django.conf.settings.FEATURES", {"ENABLE_DISCUSSION_SERVICE": True})
21 22 23
    def setUpClass(cls):
        super(CohortedTestCase, cls).setUpClass()
        cls.course = CourseFactory.create(
24 25 26 27 28
            cohort_config={
                "cohorted": True,
                "cohorted_discussions": ["cohorted_topic"]
            }
        )
29 30 31 32 33 34 35 36 37
        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()

38 39 40 41 42 43
        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))
44 45 46 47 48 49 50 51 52 53
        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]
        )