diff --git a/cms/djangoapps/contentstore/rest_api/v1/tests/test_views.py b/cms/djangoapps/contentstore/rest_api/v1/tests/test_views.py index 46d5f9d90f..751d09799d 100644 --- a/cms/djangoapps/contentstore/rest_api/v1/tests/test_views.py +++ b/cms/djangoapps/contentstore/rest_api/v1/tests/test_views.py @@ -8,8 +8,9 @@ from opaque_keys.edx.keys import CourseKey from rest_framework import status from rest_framework.test import APITestCase +from common.djangoapps.student.tests.factories import GlobalStaffFactory from common.djangoapps.student.tests.factories import UserFactory -from lms.djangoapps.courseware.tests.factories import GlobalStaffFactory, InstructorFactory +from lms.djangoapps.courseware.tests.factories import InstructorFactory from xmodule.modulestore.django import modulestore from xmodule.modulestore.tests.django_utils import ModuleStoreTestCase from xmodule.modulestore.tests.factories import CourseFactory diff --git a/common/djangoapps/student/tests/factories.py b/common/djangoapps/student/tests/factories.py index 27e762cbd1..fa0e165030 100644 --- a/common/djangoapps/student/tests/factories.py +++ b/common/djangoapps/student/tests/factories.py @@ -25,6 +25,7 @@ from common.djangoapps.student.models import ( UserProfile, UserStanding ) +from common.djangoapps.student.roles import GlobalStaff # Factories are self documenting @@ -226,3 +227,16 @@ class AccountRecoveryFactory(DjangoModelFactory): # lint-amnesty, pylint: disab user = None secondary_email = factory.Sequence('robot+test+recovery+{}@edx.org'.format) is_active = True + + +# pylint: disable=unused-argument +class GlobalStaffFactory(UserFactory): + """ + Returns a User object with global staff access + """ + last_name = 'GlobalStaff' + + @factory.post_generation + def set_staff(self, _create, _extracted, **kwargs): + GlobalStaff().add_users(self) +# pylint: enable=unused-argument diff --git a/lms/djangoapps/certificates/tests/test_api.py b/lms/djangoapps/certificates/tests/test_api.py index 233498cf14..d953276801 100644 --- a/lms/djangoapps/certificates/tests/test_api.py +++ b/lms/djangoapps/certificates/tests/test_api.py @@ -29,6 +29,7 @@ from common.djangoapps.course_modes.tests.factories import CourseModeFactory from common.djangoapps.student.models import CourseEnrollment from common.djangoapps.student.tests.factories import ( CourseEnrollmentFactory, + GlobalStaffFactory, UserFactory ) from common.djangoapps.util.testing import EventTestMixin @@ -70,7 +71,6 @@ from lms.djangoapps.certificates.tests.factories import ( GeneratedCertificateFactory, CertificateInvalidationFactory ) -from lms.djangoapps.courseware.tests.factories import GlobalStaffFactory from lms.djangoapps.grades.tests.utils import mock_passing_grade from openedx.core.djangoapps.site_configuration.tests.test_util import with_site_configuration diff --git a/lms/djangoapps/courseware/tests/factories.py b/lms/djangoapps/courseware/tests/factories.py index bb81bc1d9a..1477536e56 100644 --- a/lms/djangoapps/courseware/tests/factories.py +++ b/lms/djangoapps/courseware/tests/factories.py @@ -20,7 +20,6 @@ from common.djangoapps.student.roles import ( CourseBetaTesterRole, CourseInstructorRole, CourseStaffRole, - GlobalStaff, OrgInstructorRole, OrgStaffRole ) @@ -111,17 +110,6 @@ class OrgInstructorFactory(UserFactory): if extracted is None: raise ValueError("Must specify a CourseKey for an org-instructor user") OrgInstructorRole(extracted.org).add_users(self) - - -class GlobalStaffFactory(UserFactory): - """ - Returns a User object with global staff access - """ - last_name = "GlobalStaff" - - @factory.post_generation - def set_staff(self, create, extracted, **kwargs): - GlobalStaff().add_users(self) # pylint: enable=unused-argument diff --git a/lms/djangoapps/courseware/tests/test_access.py b/lms/djangoapps/courseware/tests/test_access.py index c82723323f..e49a16ae7a 100644 --- a/lms/djangoapps/courseware/tests/test_access.py +++ b/lms/djangoapps/courseware/tests/test_access.py @@ -24,7 +24,6 @@ import lms.djangoapps.courseware.access_response as access_response from lms.djangoapps.courseware.masquerade import CourseMasquerade from lms.djangoapps.courseware.tests.factories import ( BetaTesterFactory, - GlobalStaffFactory, InstructorFactory, StaffFactory, UserFactory @@ -42,6 +41,7 @@ from common.djangoapps.student.tests.factories import ( CourseEnrollmentAllowedFactory, CourseEnrollmentFactory ) +from common.djangoapps.student.tests.factories import GlobalStaffFactory from common.djangoapps.util.milestones_helpers import fulfill_course_milestone, set_prerequisite_courses from xmodule.course_module import ( CATALOG_VISIBILITY_ABOUT, diff --git a/lms/djangoapps/courseware/tests/test_module_render.py b/lms/djangoapps/courseware/tests/test_module_render.py index f2d0f0e76c..d1f348b745 100644 --- a/lms/djangoapps/courseware/tests/test_module_render.py +++ b/lms/djangoapps/courseware/tests/test_module_render.py @@ -42,6 +42,7 @@ from xblock.test.tools import TestRuntime # lint-amnesty, pylint: disable=wrong from capa.tests.response_xml_factory import OptionResponseXMLFactory # lint-amnesty, pylint: disable=reimported from common.djangoapps.course_modes.models import CourseMode # lint-amnesty, pylint: disable=reimported +from common.djangoapps.student.tests.factories import GlobalStaffFactory from lms.djangoapps.courseware import module_render as render from lms.djangoapps.courseware.access_response import AccessResponse from lms.djangoapps.courseware.courses import get_course_info_section, get_course_with_access @@ -51,7 +52,6 @@ from lms.djangoapps.courseware.model_data import FieldDataCache from lms.djangoapps.courseware.models import StudentModule from lms.djangoapps.courseware.module_render import get_module_for_descriptor, hash_resource from lms.djangoapps.courseware.tests.factories import ( - GlobalStaffFactory, RequestFactoryNoCsrf, StudentModuleFactory, UserFactory diff --git a/lms/djangoapps/courseware/tests/test_navigation.py b/lms/djangoapps/courseware/tests/test_navigation.py index 54282d0355..766a63fda2 100644 --- a/lms/djangoapps/courseware/tests/test_navigation.py +++ b/lms/djangoapps/courseware/tests/test_navigation.py @@ -11,7 +11,7 @@ from django.test.utils import override_settings from django.urls import reverse from edx_toggles.toggles.testutils import override_waffle_flag -from lms.djangoapps.courseware.tests.factories import GlobalStaffFactory +from common.djangoapps.student.tests.factories import GlobalStaffFactory from lms.djangoapps.courseware.tests.helpers import LoginEnrollmentTestCase from openedx.features.course_experience import DISABLE_COURSE_OUTLINE_PAGE_FLAG from common.djangoapps.student.tests.factories import UserFactory diff --git a/lms/djangoapps/courseware/tests/test_view_authentication.py b/lms/djangoapps/courseware/tests/test_view_authentication.py index 5bdfe2a9ce..b16bd2a72c 100644 --- a/lms/djangoapps/courseware/tests/test_view_authentication.py +++ b/lms/djangoapps/courseware/tests/test_view_authentication.py @@ -9,10 +9,10 @@ from unittest.mock import patch import pytz from django.urls import reverse +from common.djangoapps.student.tests.factories import GlobalStaffFactory from lms.djangoapps.courseware.access import has_access from lms.djangoapps.courseware.tests.factories import ( BetaTesterFactory, - GlobalStaffFactory, InstructorFactory, OrgInstructorFactory, OrgStaffFactory, diff --git a/lms/djangoapps/courseware/tests/test_views.py b/lms/djangoapps/courseware/tests/test_views.py index c5bfd6c783..beb9265a48 100644 --- a/lms/djangoapps/courseware/tests/test_views.py +++ b/lms/djangoapps/courseware/tests/test_views.py @@ -35,6 +35,7 @@ from capa.tests.response_xml_factory import MultipleChoiceResponseXMLFactory from common.djangoapps.course_modes.models import CourseMode from common.djangoapps.course_modes.tests.factories import CourseModeFactory from freezegun import freeze_time # lint-amnesty, pylint: disable=wrong-import-order +from common.djangoapps.student.tests.factories import GlobalStaffFactory from lms.djangoapps.certificates import api as certs_api from lms.djangoapps.certificates.models import ( CertificateGenerationConfiguration, @@ -47,7 +48,7 @@ from lms.djangoapps.commerce.utils import EcommerceService from lms.djangoapps.courseware.access_utils import check_course_open_for_learner from lms.djangoapps.courseware.model_data import FieldDataCache, set_score from lms.djangoapps.courseware.module_render import get_module, handle_xblock_callback -from lms.djangoapps.courseware.tests.factories import GlobalStaffFactory, RequestFactoryNoCsrf, StudentModuleFactory +from lms.djangoapps.courseware.tests.factories import RequestFactoryNoCsrf, StudentModuleFactory from lms.djangoapps.courseware.tests.helpers import get_expiration_banner_text from lms.djangoapps.courseware.testutils import RenderXBlockTestMixin from lms.djangoapps.courseware.toggles import ( diff --git a/lms/djangoapps/grades/rest_api/v1/tests/mixins.py b/lms/djangoapps/grades/rest_api/v1/tests/mixins.py index 799b99dada..01638254d0 100644 --- a/lms/djangoapps/grades/rest_api/v1/tests/mixins.py +++ b/lms/djangoapps/grades/rest_api/v1/tests/mixins.py @@ -8,7 +8,7 @@ from datetime import datetime from pytz import UTC from common.djangoapps.student.tests.factories import CourseEnrollmentFactory, UserFactory -from lms.djangoapps.courseware.tests.factories import GlobalStaffFactory +from common.djangoapps.student.tests.factories import GlobalStaffFactory from lms.djangoapps.program_enrollments.tests.factories import ProgramCourseEnrollmentFactory, ProgramEnrollmentFactory from openedx.core.djangoapps.content.course_overviews.tests.factories import CourseOverviewFactory from xmodule.modulestore.tests.django_utils import TEST_DATA_SPLIT_MODULESTORE, SharedModuleStoreTestCase diff --git a/lms/djangoapps/grades/rest_api/v1/tests/test_grading_policy_view.py b/lms/djangoapps/grades/rest_api/v1/tests/test_grading_policy_view.py index 6c19b263c5..195486b3b1 100644 --- a/lms/djangoapps/grades/rest_api/v1/tests/test_grading_policy_view.py +++ b/lms/djangoapps/grades/rest_api/v1/tests/test_grading_policy_view.py @@ -10,8 +10,9 @@ from django.urls import reverse from pytz import UTC from capa.tests.response_xml_factory import MultipleChoiceResponseXMLFactory +from common.djangoapps.student.tests.factories import GlobalStaffFactory from common.djangoapps.student.tests.factories import UserFactory -from lms.djangoapps.courseware.tests.factories import GlobalStaffFactory, StaffFactory +from lms.djangoapps.courseware.tests.factories import StaffFactory from openedx.core.djangoapps.oauth_dispatch.tests.factories import AccessTokenFactory, ApplicationFactory from xmodule.modulestore import ModuleStoreEnum from xmodule.modulestore.tests.django_utils import SharedModuleStoreTestCase diff --git a/lms/djangoapps/instructor/tests/test_api.py b/lms/djangoapps/instructor/tests/test_api.py index 8707bbc0c8..6d9712bc85 100644 --- a/lms/djangoapps/instructor/tests/test_api.py +++ b/lms/djangoapps/instructor/tests/test_api.py @@ -52,7 +52,8 @@ from common.djangoapps.student.roles import ( CourseFinanceAdminRole, CourseInstructorRole, ) -from common.djangoapps.student.tests.factories import CourseEnrollmentFactory, UserFactory # lint-amnesty, pylint: disable=unused-import +from common.djangoapps.student.tests.factories import CourseEnrollmentFactory, UserFactory +from common.djangoapps.student.tests.factories import GlobalStaffFactory from lms.djangoapps.bulk_email.models import BulkEmailFlag, CourseEmail, CourseEmailTemplate from lms.djangoapps.certificates.api import generate_user_certificates from lms.djangoapps.certificates.models import CertificateStatuses @@ -62,7 +63,6 @@ from lms.djangoapps.certificates.tests.factories import ( from lms.djangoapps.courseware.models import StudentModule from lms.djangoapps.courseware.tests.factories import ( BetaTesterFactory, - GlobalStaffFactory, InstructorFactory, StaffFactory, ) diff --git a/lms/djangoapps/instructor/tests/test_certificates.py b/lms/djangoapps/instructor/tests/test_certificates.py index 4a2eb412a8..962db41a9e 100644 --- a/lms/djangoapps/instructor/tests/test_certificates.py +++ b/lms/djangoapps/instructor/tests/test_certificates.py @@ -20,6 +20,7 @@ from django.urls import reverse from capa.xqueue_interface import XQueueInterface from common.djangoapps.course_modes.models import CourseMode from common.djangoapps.student.models import CourseEnrollment +from common.djangoapps.student.tests.factories import GlobalStaffFactory from lms.djangoapps.certificates import api as certs_api from lms.djangoapps.certificates.models import ( CertificateGenerationConfiguration, @@ -33,7 +34,7 @@ from lms.djangoapps.certificates.tests.factories import ( CertificateWhitelistFactory, GeneratedCertificateFactory ) -from lms.djangoapps.courseware.tests.factories import GlobalStaffFactory, InstructorFactory, UserFactory +from lms.djangoapps.courseware.tests.factories import InstructorFactory, UserFactory from lms.djangoapps.grades.tests.utils import mock_passing_grade from lms.djangoapps.verify_student.services import IDVerificationService from lms.djangoapps.verify_student.tests.factories import SoftwareSecurePhotoVerificationFactory diff --git a/lms/djangoapps/program_enrollments/rest_api/v1/tests/test_views.py b/lms/djangoapps/program_enrollments/rest_api/v1/tests/test_views.py index 608831cdb1..9e0e961e71 100644 --- a/lms/djangoapps/program_enrollments/rest_api/v1/tests/test_views.py +++ b/lms/djangoapps/program_enrollments/rest_api/v1/tests/test_views.py @@ -26,11 +26,12 @@ from common.djangoapps.course_modes.models import CourseMode from common.djangoapps.student.models import CourseEnrollment from common.djangoapps.student.roles import CourseStaffRole from common.djangoapps.student.tests.factories import CourseEnrollmentFactory, UserFactory +from common.djangoapps.student.tests.factories import GlobalStaffFactory from common.djangoapps.third_party_auth.tests.factories import SAMLProviderConfigFactory from lms.djangoapps.bulk_email.models import BulkEmailFlag, Optout from lms.djangoapps.certificates.models import CertificateStatuses from lms.djangoapps.certificates.tests.factories import GeneratedCertificateFactory -from lms.djangoapps.courseware.tests.factories import GlobalStaffFactory, InstructorFactory +from lms.djangoapps.courseware.tests.factories import InstructorFactory from lms.djangoapps.grades.api import CourseGradeFactory from lms.djangoapps.program_enrollments.constants import ProgramCourseOperationStatuses as CourseStatuses from lms.djangoapps.program_enrollments.constants import ProgramOperationStatuses as ProgramStatuses diff --git a/openedx/core/djangoapps/discussions/tests/test_views.py b/openedx/core/djangoapps/discussions/tests/test_views.py index 7fc6228ad0..d3dcb9c499 100644 --- a/openedx/core/djangoapps/discussions/tests/test_views.py +++ b/openedx/core/djangoapps/discussions/tests/test_views.py @@ -10,8 +10,8 @@ from opaque_keys.edx.keys import CourseKey from rest_framework import status from rest_framework.test import APITestCase +from common.djangoapps.student.tests.factories import GlobalStaffFactory from common.djangoapps.student.tests.factories import UserFactory -from lms.djangoapps.courseware.tests.factories import GlobalStaffFactory from lms.djangoapps.courseware.tests.factories import StaffFactory diff --git a/openedx/core/djangoapps/theming/tests/test_views.py b/openedx/core/djangoapps/theming/tests/test_views.py index 667b076106..08b75e23d2 100644 --- a/openedx/core/djangoapps/theming/tests/test_views.py +++ b/openedx/core/djangoapps/theming/tests/test_views.py @@ -8,7 +8,7 @@ from django.contrib.messages.middleware import MessageMiddleware from django.contrib.sites.models import Site from django.test import TestCase -from lms.djangoapps.courseware.tests.factories import GlobalStaffFactory +from common.djangoapps.student.tests.factories import GlobalStaffFactory from openedx.core.djangoapps.theming.middleware import CurrentSiteThemeMiddleware from common.djangoapps.student.tests.factories import UserFactory diff --git a/openedx/features/content_type_gating/tests/test_access.py b/openedx/features/content_type_gating/tests/test_access.py index 6d613c9d03..ad4a68b0b5 100644 --- a/openedx/features/content_type_gating/tests/test_access.py +++ b/openedx/features/content_type_gating/tests/test_access.py @@ -16,10 +16,10 @@ from pyquery import PyQuery as pq from lms.djangoapps.course_api.blocks.api import get_blocks from common.djangoapps.course_modes.tests.factories import CourseModeFactory +from common.djangoapps.student.tests.factories import GlobalStaffFactory from lms.djangoapps.courseware.module_render import load_single_xblock from lms.djangoapps.courseware.tests.factories import ( BetaTesterFactory, - GlobalStaffFactory, InstructorFactory, OrgInstructorFactory, OrgStaffFactory, diff --git a/openedx/features/content_type_gating/tests/test_partitions.py b/openedx/features/content_type_gating/tests/test_partitions.py index 6258e5714a..7d31f02c3d 100644 --- a/openedx/features/content_type_gating/tests/test_partitions.py +++ b/openedx/features/content_type_gating/tests/test_partitions.py @@ -4,7 +4,7 @@ from unittest.mock import Mock, patch from opaque_keys.edx.keys import CourseKey from common.djangoapps.course_modes.tests.factories import CourseModeFactory -from lms.djangoapps.courseware.tests.factories import GlobalStaffFactory +from common.djangoapps.student.tests.factories import GlobalStaffFactory from openedx.core.djangolib.testing.utils import CacheIsolationTestCase from openedx.features.content_type_gating.helpers import CONTENT_GATING_PARTITION_ID, FULL_ACCESS, LIMITED_ACCESS from openedx.features.content_type_gating.models import ContentTypeGatingConfig diff --git a/openedx/features/course_duration_limits/tests/test_course_expiration.py b/openedx/features/course_duration_limits/tests/test_course_expiration.py index 8040cf8438..127a122792 100644 --- a/openedx/features/course_duration_limits/tests/test_course_expiration.py +++ b/openedx/features/course_duration_limits/tests/test_course_expiration.py @@ -14,9 +14,9 @@ from common.djangoapps.course_modes.models import CourseMode from common.djangoapps.student.models import CourseEnrollment, FBEEnrollmentExclusion from common.djangoapps.student.roles import CourseInstructorRole from common.djangoapps.student.tests.factories import TEST_PASSWORD, CourseEnrollmentFactory, UserFactory +from common.djangoapps.student.tests.factories import GlobalStaffFactory from lms.djangoapps.courseware.tests.factories import ( BetaTesterFactory, - GlobalStaffFactory, InstructorFactory, OrgInstructorFactory, OrgStaffFactory, diff --git a/openedx/features/course_experience/tests/views/test_course_home.py b/openedx/features/course_experience/tests/views/test_course_home.py index 3dd3247dae..283144c738 100644 --- a/openedx/features/course_experience/tests/views/test_course_home.py +++ b/openedx/features/course_experience/tests/views/test_course_home.py @@ -21,6 +21,7 @@ from waffle.testutils import override_flag from common.djangoapps.course_modes.models import CourseMode from common.djangoapps.course_modes.tests.factories import CourseModeFactory +from common.djangoapps.student.tests.factories import GlobalStaffFactory from common.djangoapps.util.date_utils import strftime_localized_html from lms.djangoapps.experiments.models import ExperimentData from lms.djangoapps.commerce.models import CommerceConfiguration @@ -28,7 +29,6 @@ from lms.djangoapps.commerce.utils import EcommerceService from lms.djangoapps.course_goals.api import add_course_goal, remove_course_goal from lms.djangoapps.courseware.tests.factories import ( BetaTesterFactory, - GlobalStaffFactory, InstructorFactory, OrgInstructorFactory, OrgStaffFactory, diff --git a/openedx/tests/xblock_integration/test_crowdsource_hinter.py b/openedx/tests/xblock_integration/test_crowdsource_hinter.py index 3223a1da24..38c8691cb9 100644 --- a/openedx/tests/xblock_integration/test_crowdsource_hinter.py +++ b/openedx/tests/xblock_integration/test_crowdsource_hinter.py @@ -9,7 +9,7 @@ import simplejson as json from django.conf import settings from django.urls import reverse -from lms.djangoapps.courseware.tests.factories import GlobalStaffFactory +from common.djangoapps.student.tests.factories import GlobalStaffFactory from lms.djangoapps.courseware.tests.helpers import LoginEnrollmentTestCase from openedx.core.lib.url_utils import quote_slashes from xmodule.modulestore.tests.django_utils import SharedModuleStoreTestCase diff --git a/openedx/tests/xblock_integration/test_recommender.py b/openedx/tests/xblock_integration/test_recommender.py index cc1d9e6446..185f21502e 100644 --- a/openedx/tests/xblock_integration/test_recommender.py +++ b/openedx/tests/xblock_integration/test_recommender.py @@ -15,7 +15,7 @@ from ddt import data, ddt from django.conf import settings from django.urls import reverse -from lms.djangoapps.courseware.tests.factories import GlobalStaffFactory +from common.djangoapps.student.tests.factories import GlobalStaffFactory from lms.djangoapps.courseware.tests.helpers import LoginEnrollmentTestCase from openedx.core.lib.url_utils import quote_slashes from xmodule.modulestore.tests.django_utils import SharedModuleStoreTestCase