Move django_comment_client to discussion/

This commit is contained in:
Nimisha Asthagiri
2019-04-29 02:09:00 -04:00
parent b949452eb2
commit e160b23903
67 changed files with 100 additions and 81 deletions

View File

@@ -78,7 +78,7 @@ class Role(models.Model):
course_id = CourseKeyField(max_length=255, blank=True, db_index=True)
class Meta(object):
# use existing table that was originally created from django_comment_client app
# use existing table that was originally created from lms.djangoapps.discussion.django_comment_client app
db_table = 'django_comment_client_role'
def __unicode__(self):
@@ -134,7 +134,7 @@ class Permission(models.Model):
roles = models.ManyToManyField(Role, related_name="permissions")
class Meta(object):
# use existing table that was originally created from django_comment_client app
# use existing table that was originally created from lms.djangoapps.discussion.django_comment_client app
db_table = 'django_comment_client_permission'
def __unicode__(self):

View File

@@ -23,7 +23,7 @@ from courseware.tabs import get_course_tab_list
from courseware.tests.factories import StudentModuleFactory
from courseware.tests.helpers import LoginEnrollmentTestCase
from courseware.testutils import FieldOverrideTestMixin
from django_comment_client.utils import has_forum_access
from lms.djangoapps.discussion.django_comment_client.utils import has_forum_access
from django_comment_common.models import FORUM_ROLE_ADMINISTRATOR
from django_comment_common.utils import are_permissions_roles_seeded
from edx_django_utils.cache import RequestCache

View File

@@ -213,7 +213,10 @@ class TestTemplates(TestDiscussionXBlock):
Test for has_permission method.
"""
permission_canary = object()
with mock.patch('django_comment_client.permissions.has_permission', return_value=permission_canary) as has_perm:
with mock.patch(
'lms.djangoapps.discussion.django_comment_client.permissions.has_permission',
return_value=permission_canary,
) as has_perm:
actual_permission = self.block.has_permission("test_permission")
self.assertEqual(actual_permission, permission_canary)
has_perm.assert_called_once_with(self.django_user_canary, 'test_permission', 'test_course')

View File

@@ -10,7 +10,6 @@ Discussions related functionality is scattered across a number of places and sho
* ``common/djangoapps/django_comment_common``
* ``lms/djangoapps/discussion``
* ``lms/djangoapps/django_comment_client``
* ``lms/djangoapps/notification_prefs``
* ``lms/djangoapps/notifier_api``
* ``openedx/core/lib/xblock_builtin/xblock_discussion``

View File

@@ -8,9 +8,9 @@ from eventtracking.processors.exceptions import EventEmissionExit
from opaque_keys import InvalidKeyError
from opaque_keys.edx.locator import CourseLocator
from django_comment_client.base.views import add_truncated_title_to_event_data
from django_comment_client.permissions import get_team
from django_comment_client.utils import get_cached_discussion_id_map_by_course_id
from lms.djangoapps.discussion.django_comment_client.base.views import add_truncated_title_to_event_data
from lms.djangoapps.discussion.django_comment_client.permissions import get_team
from lms.djangoapps.discussion.django_comment_client.utils import get_cached_discussion_id_map_by_course_id
from track.transformers import EventTransformer, EventTransformerRegistry
from track.views.segmentio import (
BI_SCREEN_VIEWED_EVENT_NAME,

View File

@@ -18,14 +18,14 @@ from six import text_type
from common.test.utils import MockSignalHandlerMixin, disable_signal
from course_modes.models import CourseMode
from course_modes.tests.factories import CourseModeFactory
from django_comment_client.base import views
from django_comment_client.tests.group_id import (
from lms.djangoapps.discussion.django_comment_client.base import views
from lms.djangoapps.discussion.django_comment_client.tests.group_id import (
CohortedTopicGroupIdTestMixin,
GroupIdAssertionMixin,
NonCohortedTopicGroupIdTestMixin
)
from django_comment_client.tests.unicode import UnicodeTestMixin
from django_comment_client.tests.utils import CohortedTestCase, ForumsEnableMixin
from lms.djangoapps.discussion.django_comment_client.tests.unicode import UnicodeTestMixin
from lms.djangoapps.discussion.django_comment_client.tests.utils import CohortedTestCase, ForumsEnableMixin
from django_comment_common.comment_client import Thread
from django_comment_common.models import (
assign_role,
@@ -641,7 +641,10 @@ class ViewsTestCase(
with self.assert_discussion_signals('thread_edited'):
self.update_thread_helper(mock_request)
@patch('django_comment_client.utils.get_discussion_categories_ids', return_value=["test_commentable"])
@patch(
'lms.djangoapps.discussion.django_comment_client.utils.get_discussion_categories_ids',
return_value=["test_commentable"],
)
def test_update_thread_wrong_commentable_id(self, mock_get_discussion_id_map, mock_request):
self._test_request_error(
"update_thread",
@@ -1233,7 +1236,10 @@ class UpdateThreadUnicodeTestCase(
cls.student = UserFactory.create()
CourseEnrollmentFactory(user=cls.student, course_id=cls.course.id)
@patch('django_comment_client.utils.get_discussion_categories_ids', return_value=["test_commentable"])
@patch(
'lms.djangoapps.discussion.django_comment_client.utils.get_discussion_categories_ids',
return_value=["test_commentable"],
)
@patch('django_comment_common.comment_client.utils.requests.request', autospec=True)
def _test_unicode_data(self, text, mock_request, mock_get_discussion_id_map):
self._set_mock_request_data(mock_request, {

View File

@@ -3,7 +3,7 @@ Base urls for the django_comment_client.
"""
from django.conf.urls import url
from django_comment_client.base import views
from lms.djangoapps.discussion.django_comment_client.base import views
urlpatterns = [
url(r'^upload$', views.upload, name='upload'),

View File

@@ -20,12 +20,12 @@ from django.views.decorators.http import require_GET, require_POST
from opaque_keys.edx.keys import CourseKey
from six import text_type
import django_comment_client.settings as cc_settings
import lms.djangoapps.discussion.django_comment_client.settings as cc_settings
import django_comment_common.comment_client as cc
from courseware.access import has_access
from courseware.courses import get_course_by_id, get_course_overview_with_access, get_course_with_access
from django_comment_client.permissions import check_permissions_by_view, get_team, has_permission
from django_comment_client.utils import (
from lms.djangoapps.discussion.django_comment_client.permissions import check_permissions_by_view, get_team, has_permission
from lms.djangoapps.discussion.django_comment_client.utils import (
JsonError,
JsonResponse,
add_courseware_context,

View File

@@ -3,7 +3,7 @@ import logging
from six import text_type
from django_comment_client.utils import JsonError
from lms.djangoapps.discussion.django_comment_client.utils import JsonError
from django_comment_common.comment_client import CommentClientRequestError
log = logging.getLogger(__name__)

View File

@@ -5,7 +5,7 @@ import urllib2
import pytest
from django_comment_client.tests.mock_cs_server.mock_cs_server import MockCommentServiceServer
from lms.djangoapps.discussion.django_comment_client.tests.mock_cs_server.mock_cs_server import MockCommentServiceServer
class MockCommentServiceServerTest(unittest.TestCase):

View File

@@ -4,7 +4,7 @@ import django.http
from django.test import TestCase
from six import text_type
import django_comment_client.middleware as middleware
import lms.djangoapps.discussion.django_comment_client.middleware as middleware
import django_comment_common.comment_client

View File

@@ -12,15 +12,15 @@ from mock import Mock, patch
from pytz import UTC
from six import text_type
import django_comment_client.utils as utils
import lms.djangoapps.discussion.django_comment_client.utils as utils
from course_modes.models import CourseMode
from course_modes.tests.factories import CourseModeFactory
from courseware.tabs import get_course_tab_list
from courseware.tests.factories import InstructorFactory
from django_comment_client.constants import TYPE_ENTRY, TYPE_SUBCATEGORY
from django_comment_client.tests.factories import RoleFactory
from django_comment_client.tests.unicode import UnicodeTestMixin
from django_comment_client.tests.utils import config_course_discussions, topic_name_to_id
from lms.djangoapps.discussion.django_comment_client.constants import TYPE_ENTRY, TYPE_SUBCATEGORY
from lms.djangoapps.discussion.django_comment_client.tests.factories import RoleFactory
from lms.djangoapps.discussion.django_comment_client.tests.unicode import UnicodeTestMixin
from lms.djangoapps.discussion.django_comment_client.tests.utils import config_course_discussions, topic_name_to_id
from django_comment_common.comment_client.utils import CommentClientMaintenanceError, perform_request
from django_comment_common.models import (
CourseDiscussionSettings,
@@ -1592,7 +1592,9 @@ class PermissionsTestCase(ModuleStoreTestCase):
user = mock.Mock()
user.id = 1
with mock.patch('django_comment_client.utils.check_permissions_by_view') as check_perm:
with mock.patch(
'lms.djangoapps.discussion.django_comment_client.utils.check_permissions_by_view'
) as check_perm:
check_perm.return_value = True
self.assertEqual(utils.get_ability(None, content, user), {
'editable': True,
@@ -1620,7 +1622,9 @@ class PermissionsTestCase(ModuleStoreTestCase):
"""
content = {'user_id': '1', 'type': 'thread'}
with mock.patch('django_comment_client.utils.check_permissions_by_view') as check_perm:
with mock.patch(
'lms.djangoapps.discussion.django_comment_client.utils.check_permissions_by_view'
) as check_perm:
# check_permissions_by_view returns false because user is not enrolled in the course.
check_perm.return_value = False
global_staff = UserFactory(username='global_staff', email='global_staff@edx.org', is_staff=True)
@@ -1721,7 +1725,10 @@ class GroupModeratorPermissionsTestCase(ModuleStoreTestCase):
# Give group moderator permissions to group_moderator
assign_role(self.course.id, self.group_moderator, 'Group Moderator')
@mock.patch('django_comment_client.permissions._check_condition', side_effect=_check_condition)
@mock.patch(
'lms.djangoapps.discussion.django_comment_client.permissions._check_condition',
side_effect=_check_condition,
)
def test_not_divided(self, check_condition_function):
"""
Group moderator should not have moderator permissions if the discussions are not divided.
@@ -1754,7 +1761,10 @@ class GroupModeratorPermissionsTestCase(ModuleStoreTestCase):
'can_report': True
})
@mock.patch('django_comment_client.permissions._check_condition', side_effect=_check_condition)
@mock.patch(
'lms.djangoapps.discussion.django_comment_client.permissions._check_condition',
side_effect=_check_condition,
)
def test_divided_within_group(self, check_condition_function):
"""
Group moderator should have moderator permissions within their group if the discussions are divided.
@@ -1783,7 +1793,10 @@ class GroupModeratorPermissionsTestCase(ModuleStoreTestCase):
'can_report': True
})
@mock.patch('django_comment_client.permissions._check_condition', side_effect=_check_condition)
@mock.patch(
'lms.djangoapps.discussion.django_comment_client.permissions._check_condition',
side_effect=_check_condition,
)
def test_divided_outside_group(self, check_condition_function):
"""
Group moderator should not have moderator permissions outside of their group.

View File

@@ -4,5 +4,5 @@ Urls for the django_comment_client.
from django.conf.urls import include, url
urlpatterns = [
url(r'', include('django_comment_client.base.urls')),
url(r'', include('lms.djangoapps.discussion.django_comment_client.base.urls')),
]

View File

@@ -15,9 +15,9 @@ from six import text_type
from courseware import courses
from courseware.access import has_access
from django_comment_client.constants import TYPE_ENTRY, TYPE_SUBCATEGORY
from django_comment_client.permissions import check_permissions_by_view, get_team, has_permission
from django_comment_client.settings import MAX_COMMENT_DEPTH
from lms.djangoapps.discussion.django_comment_client.constants import TYPE_ENTRY, TYPE_SUBCATEGORY
from lms.djangoapps.discussion.django_comment_client.permissions import check_permissions_by_view, get_team, has_permission
from lms.djangoapps.discussion.django_comment_client.settings import MAX_COMMENT_DEPTH
from django_comment_common.models import (
FORUM_ROLE_STUDENT,
FORUM_ROLE_COMMUNITY_TA,

View File

@@ -5,7 +5,7 @@ Views handling read (GET) requests for the Discussion tab and inline discussions
from django.conf import settings
from django.utils.translation import ugettext_noop
import django_comment_client.utils as utils
import lms.djangoapps.discussion.django_comment_client.utils as utils
from courseware.tabs import EnrolledTab
from xmodule.tabs import TabFragmentViewMixin

View File

@@ -24,8 +24,8 @@ from lms.djangoapps.discussion.rest_api.permissions import (
get_initializable_thread_fields
)
from lms.djangoapps.discussion.rest_api.serializers import CommentSerializer, DiscussionTopicSerializer, ThreadSerializer, get_context
from django_comment_client.base.views import track_comment_created_event, track_thread_created_event, track_voted_event
from django_comment_client.utils import get_accessible_discussion_xblocks, get_group_id_for_user, is_commentable_divided
from lms.djangoapps.discussion.django_comment_client.base.views import track_comment_created_event, track_thread_created_event, track_voted_event
from lms.djangoapps.discussion.django_comment_client.utils import get_accessible_discussion_xblocks, get_group_id_for_user, is_commentable_divided
from django_comment_common.comment_client.comment import Comment
from django_comment_common.comment_client.thread import Thread
from django_comment_common.comment_client.utils import CommentClientRequestError

View File

@@ -12,7 +12,7 @@ from rest_framework import serializers
from discussion.views import get_divided_discussions
from lms.djangoapps.discussion.rest_api.permissions import NON_UPDATABLE_COMMENT_FIELDS, NON_UPDATABLE_THREAD_FIELDS, get_editable_fields
from lms.djangoapps.discussion.rest_api.render import render_body
from django_comment_client.utils import is_comment_too_deep, get_group_id_for_user, get_group_name
from lms.djangoapps.discussion.django_comment_client.utils import is_comment_too_deep, get_group_id_for_user, get_group_name
from django_comment_common.models import (
FORUM_ROLE_ADMINISTRATOR,
FORUM_ROLE_COMMUNITY_TA,

View File

@@ -38,7 +38,7 @@ from lms.djangoapps.discussion.rest_api.tests.utils import (
make_minimal_cs_thread,
make_paginated_api_response
)
from django_comment_client.tests.utils import ForumsEnableMixin
from lms.djangoapps.discussion.django_comment_client.tests.utils import ForumsEnableMixin
from django_comment_common.models import (
FORUM_ROLE_ADMINISTRATOR,
FORUM_ROLE_COMMUNITY_TA,

View File

@@ -11,7 +11,7 @@ from django.test.client import RequestFactory
from lms.djangoapps.discussion.rest_api.serializers import CommentSerializer, ThreadSerializer, get_context
from lms.djangoapps.discussion.rest_api.tests.utils import CommentsServiceMockMixin, make_minimal_cs_comment, make_minimal_cs_thread
from django_comment_client.tests.utils import ForumsEnableMixin
from lms.djangoapps.discussion.django_comment_client.tests.utils import ForumsEnableMixin
from django_comment_common.comment_client.comment import Comment
from django_comment_common.comment_client.thread import Thread
from django_comment_common.models import (

View File

@@ -29,7 +29,7 @@ from lms.djangoapps.discussion.rest_api.tests.utils import (
make_minimal_cs_thread,
make_paginated_api_response
)
from django_comment_client.tests.utils import ForumsEnableMixin, config_course_discussions, topic_name_to_id
from lms.djangoapps.discussion.django_comment_client.tests.utils import ForumsEnableMixin, config_course_discussions, topic_name_to_id
from django_comment_common.models import CourseDiscussionSettings, Role
from django_comment_common.utils import seed_permissions_roles
from openedx.core.djangoapps.course_groups.tests.helpers import config_course_cohorts

View File

@@ -17,7 +17,7 @@ from rest_framework.views import APIView
from rest_framework.viewsets import ViewSet
from six import text_type
from django_comment_client.utils import available_division_schemes
from lms.djangoapps.discussion.django_comment_client.utils import available_division_schemes
from django_comment_common import comment_client
from django_comment_common.models import Role
from django_comment_common.utils import get_course_discussion_settings, set_course_discussion_settings

View File

@@ -10,7 +10,7 @@ from django.utils.translation import ugettext as _
from django.template.defaultfilters import escapejs
from django.urls import reverse
from django_comment_client.permissions import has_permission
from lms.djangoapps.discussion.django_comment_client.permissions import has_permission
from openedx.core.djangolib.js_utils import dump_js_escaped_json, js_escaped_string
from openedx.core.djangolib.markup import HTML
%>

View File

@@ -10,7 +10,7 @@ from django.utils.translation import ugettext as _, ungettext
from django.template.defaultfilters import escapejs
from django.urls import reverse
from django_comment_client.permissions import has_permission
from lms.djangoapps.discussion.django_comment_client.permissions import has_permission
from openedx.core.djangolib.js_utils import dump_js_escaped_json, js_escaped_string
%>

View File

@@ -14,21 +14,21 @@ from six import text_type
from course_modes.models import CourseMode
from course_modes.tests.factories import CourseModeFactory
from django_comment_client.constants import TYPE_ENTRY, TYPE_SUBCATEGORY
from django_comment_client.permissions import get_team
from django_comment_client.tests.group_id import (
from lms.djangoapps.discussion.django_comment_client.constants import TYPE_ENTRY, TYPE_SUBCATEGORY
from lms.djangoapps.discussion.django_comment_client.permissions import get_team
from lms.djangoapps.discussion.django_comment_client.tests.group_id import (
CohortedTopicGroupIdTestMixin,
GroupIdAssertionMixin,
NonCohortedTopicGroupIdTestMixin
)
from django_comment_client.tests.unicode import UnicodeTestMixin
from django_comment_client.tests.utils import (
from lms.djangoapps.discussion.django_comment_client.tests.unicode import UnicodeTestMixin
from lms.djangoapps.discussion.django_comment_client.tests.utils import (
CohortedTestCase,
ForumsEnableMixin,
config_course_discussions,
topic_name_to_id
)
from django_comment_client.utils import strip_none
from lms.djangoapps.discussion.django_comment_client.utils import strip_none
from django_comment_common.comment_client.utils import CommentClientPaginatedResult
from django_comment_common.models import (
CourseDiscussionSettings,

View File

@@ -23,16 +23,16 @@ from opaque_keys.edx.keys import CourseKey
from rest_framework import status
from web_fragments.fragment import Fragment
import django_comment_client.utils as utils
import lms.djangoapps.discussion.django_comment_client.utils as utils
import django_comment_common.comment_client as cc
from lms.djangoapps.experiments.utils import get_experiment_user_metadata_context
from courseware.access import has_access
from courseware.courses import get_course_with_access
from courseware.views.views import CourseTabView
from django_comment_client.base.views import track_thread_viewed_event
from django_comment_client.constants import TYPE_ENTRY
from django_comment_client.permissions import get_team, has_permission
from django_comment_client.utils import (
from lms.djangoapps.discussion.django_comment_client.base.views import track_thread_viewed_event
from lms.djangoapps.discussion.django_comment_client.constants import TYPE_ENTRY
from lms.djangoapps.discussion.django_comment_client.permissions import get_team, has_permission
from lms.djangoapps.discussion.django_comment_client.utils import (
add_courseware_context,
available_division_schemes,
course_discussion_division_enabled,

View File

@@ -48,7 +48,7 @@ from bulk_email.models import BulkEmailFlag, CourseEmail
from courseware.access import has_access
from courseware.courses import get_course_by_id, get_course_with_access
from courseware.models import StudentModule
from django_comment_client.utils import (
from lms.djangoapps.discussion.django_comment_client.utils import (
get_course_discussion_settings,
get_group_id_for_user,
get_group_name,

View File

@@ -30,7 +30,7 @@ from class_dashboard.dashboard_data import get_array_section_has_problem, get_se
from course_modes.models import CourseMode, CourseModesArchive
from courseware.access import has_access
from courseware.courses import get_course_by_id, get_studio_url
from django_comment_client.utils import available_division_schemes, has_forum_access
from lms.djangoapps.discussion.django_comment_client.utils import available_division_schemes, has_forum_access
from django_comment_common.models import FORUM_ROLE_ADMINISTRATOR, CourseDiscussionSettings
from edxmako.shortcuts import render_to_response
from edx_when.api import is_enabled_for_course

View File

@@ -82,7 +82,7 @@ def comment_endorsed_handler(sender, **kwargs): # pylint: disable=unused-argume
def handle_activity(user, post, original_author_id=None):
"""
Handle user activity from django_comment_client and discussion.rest_api
Handle user activity from lms.djangoapps.discussion.django_comment_client and discussion.rest_api
and update the user's last activity date. Checks if the user who
performed the action is the original author, and that the
discussion has the team context.

View File

@@ -22,7 +22,7 @@ from rest_framework.views import APIView
from rest_framework_oauth.authentication import OAuth2Authentication
from courseware.courses import get_course_with_access, has_access
from django_comment_client.utils import has_discussion_privileges
from lms.djangoapps.discussion.django_comment_client.utils import has_discussion_privileges
from lms.djangoapps.teams.models import CourseTeam, CourseTeamMembership
from edx_rest_framework_extensions.paginators import DefaultPagination, paginate_search_results
from openedx.core.lib.api.parsers import MergePatchParser

View File

@@ -1242,7 +1242,7 @@ MIDDLEWARE_CLASSES = [
'mobile_api.middleware.AppVersionUpgrade',
'openedx.core.djangoapps.header_control.middleware.HeaderControlMiddleware',
'microsite_configuration.middleware.MicrositeMiddleware',
'django_comment_client.middleware.AjaxExceptionMiddleware',
'lms.djangoapps.discussion.django_comment_client.middleware.AjaxExceptionMiddleware',
'django.middleware.common.CommonMiddleware',
'django.contrib.sites.middleware.CurrentSiteMiddleware',
'edx_rest_framework_extensions.auth.jwt.middleware.JwtAuthCookieMiddleware',
@@ -1291,7 +1291,7 @@ MIDDLEWARE_CLASSES = [
# Must be after DarkLangMiddleware.
'django.middleware.locale.LocaleMiddleware',
'django_comment_client.utils.ViewNameMiddleware',
'lms.djangoapps.discussion.django_comment_client.utils.ViewNameMiddleware',
'codejail.django_integration.ConfigureCodeJailMiddleware',
# catches any uncaught RateLimitExceptions and returns a 403 instead of a 500
@@ -2123,7 +2123,6 @@ INSTALLED_APPS = [
'openedx.core.djangoapps.util.apps.UtilConfig',
# Discussion forums
'django_comment_client',
'django_comment_common',
# Notes

View File

@@ -36,7 +36,7 @@ import logging
LOG_OVERRIDES = [
('track.contexts', logging.CRITICAL),
('track.middleware', logging.CRITICAL),
('django_comment_client.utils', logging.CRITICAL),
('lms.djangoapps.discussion.django_comment_client.utils', logging.CRITICAL),
]
for log_name, log_level in LOG_OVERRIDES:
logging.getLogger(log_name).setLevel(log_level)
@@ -60,7 +60,7 @@ DJFS = {
INSTALLED_APPS += ['debug_toolbar', 'debug_toolbar_mongo']
MIDDLEWARE_CLASSES += [
'django_comment_client.utils.QueryCountDebugMiddleware',
'lms.djangoapps.discussion.django_comment_client.utils.QueryCountDebugMiddleware',
'debug_toolbar.middleware.DebugToolbarMiddleware',
]

View File

@@ -710,7 +710,7 @@ if settings.FEATURES.get('ENABLE_DISCUSSION_SERVICE'):
r'^courses/{}/discussion/'.format(
settings.COURSE_ID_PATTERN,
),
include('django_comment_client.urls')
include('lms.djangoapps.discussion.django_comment_client.urls')
),
url(
r'^notification_prefs/enable/',

View File

@@ -17,7 +17,7 @@ from opaque_keys.edx.django.models import CourseKeyField, UsageKeyField
from six import text_type
from config_models.models import ConfigurationModel
from lms.djangoapps import django_comment_client
from lms.djangoapps.discussion import django_comment_client
from openedx.core.djangoapps.catalog.models import CatalogIntegration
from openedx.core.djangoapps.lang_pref.api import get_closest_released_language
from openedx.core.djangoapps.models.course_details import CourseDetails

View File

@@ -161,7 +161,7 @@ class DiscussionXBlock(XBlock, StudioEditableXBlockMixin, XmlParserMixin):
:rtype: bool
"""
# normal import causes the xmodule_assets command to fail due to circular import - hence importing locally
from django_comment_client.permissions import has_permission
from lms.djangoapps.discussion.django_comment_client.permissions import has_permission
return has_permission(self.django_user, permission, self.course_key)

View File

@@ -19,7 +19,7 @@ from django_comment_common.models import (
FORUM_ROLE_COMMUNITY_TA,
Role
)
from django_comment_client.tests.factories import RoleFactory
from lms.djangoapps.discussion.django_comment_client.tests.factories import RoleFactory
from course_modes.tests.factories import CourseModeFactory
from experiments.models import ExperimentData, ExperimentKeyValue
from xmodule.partitions.partitions import ENROLLMENT_TRACK_PARTITION_ID

View File

@@ -15,7 +15,7 @@ import json
from django.utils.translation import ugettext as _
from django.template.defaultfilters import escapejs
from django_comment_client.permissions import has_permission
from lms.djangoapps.discussion.django_comment_client.permissions import has_permission
from openedx.core.djangolib.js_utils import dump_js_escaped_json, js_escaped_string
from openedx.core.djangolib.markup import HTML
from openedx.features.course_experience import course_home_page_title

View File

@@ -11,7 +11,7 @@ import ddt
import mock
from course_modes.models import CourseMode
from django_comment_client.tests.factories import RoleFactory
from lms.djangoapps.discussion.django_comment_client.tests.factories import RoleFactory
from django_comment_common.models import (
FORUM_ROLE_ADMINISTRATOR,
FORUM_ROLE_MODERATOR,

View File

@@ -11,7 +11,7 @@ from django.utils.translation import ugettext as _
from django.template.defaultfilters import escapejs
from django.urls import reverse
from django_comment_client.permissions import has_permission
from lms.djangoapps.discussion.django_comment_client.permissions import has_permission
from openedx.core.djangolib.js_utils import dump_js_escaped_json, js_escaped_string
from openedx.core.djangolib.markup import HTML
from openedx.features.course_experience import UNIFIED_COURSE_TAB_FLAG, SHOW_REVIEWS_TOOL_FLAG

View File

@@ -21,14 +21,6 @@ from waffle.testutils import override_flag
from course_modes.models import CourseMode
from course_modes.tests.factories import CourseModeFactory
from courseware.tests.helpers import get_expiration_banner_text
from django_comment_client.tests.factories import RoleFactory
from django_comment_common.models import (
FORUM_ROLE_ADMINISTRATOR,
FORUM_ROLE_COMMUNITY_TA,
FORUM_ROLE_GROUP_MODERATOR,
FORUM_ROLE_MODERATOR
)
from experiments.models import ExperimentData
from lms.djangoapps.commerce.models import CommerceConfiguration
from lms.djangoapps.commerce.utils import EcommerceService
@@ -41,8 +33,15 @@ from lms.djangoapps.courseware.tests.factories import (
OrgStaffFactory,
StaffFactory
)
from lms.djangoapps.discussion.django_comment_client.tests.factories import RoleFactory
from openedx.core.djangoapps.content.course_overviews.models import CourseOverview
from openedx.core.djangoapps.dark_lang.models import DarkLangConfig
from openedx.core.djangoapps.django_comment_common.models import (
FORUM_ROLE_ADMINISTRATOR,
FORUM_ROLE_COMMUNITY_TA,
FORUM_ROLE_GROUP_MODERATOR,
FORUM_ROLE_MODERATOR
)
from openedx.core.djangoapps.schedules.tests.factories import ScheduleFactory
from openedx.core.djangoapps.waffle_utils.testutils import WAFFLE_TABLES, override_waffle_flag
from openedx.features.course_duration_limits.config import EXPERIMENT_DATA_HOLDBACK_KEY, EXPERIMENT_ID

View File

@@ -12,7 +12,7 @@ from django.utils.translation import ugettext as _
from django.template.defaultfilters import escapejs
from django.urls import reverse
from django_comment_client.permissions import has_permission
from lms.djangoapps.discussion.django_comment_client.permissions import has_permission
from openedx.core.djangolib.js_utils import dump_js_escaped_json, js_escaped_string
from openedx.core.djangolib.markup import HTML
from openedx.features.course_experience import course_home_page_title