From 63244b514d84e38398665bc9de4c3495e8ff1648 Mon Sep 17 00:00:00 2001 From: Calen Pennington Date: Fri, 4 Aug 2017 13:14:13 -0400 Subject: [PATCH] Use a consistent CourseModeFactory from the course_modes module, rather than using one from student --- .../djangoapps/course_modes/tests/factories.py | 2 +- .../djangoapps/enrollment/tests/test_data.py | 3 ++- .../djangoapps/enrollment/tests/test_views.py | 3 ++- .../tests/test_bulk_change_enrollment.py | 3 ++- .../management/tests/test_change_enrollment.py | 3 ++- common/djangoapps/student/tests/factories.py | 18 ------------------ .../student/tests/test_enrollment.py | 3 ++- common/djangoapps/student/tests/test_models.py | 3 ++- .../djangoapps/student/tests/test_refunds.py | 3 ++- common/djangoapps/student/tests/tests.py | 3 ++- .../commerce/api/v0/tests/test_views.py | 2 +- lms/djangoapps/instructor/tests/test_api.py | 3 ++- .../tests/test_registration_codes.py | 3 ++- .../instructor_analytics/tests/test_basic.py | 3 ++- .../instructor_task/tests/test_tasks_helper.py | 3 ++- .../shoppingcart/tests/test_views.py | 16 ++++++++-------- 16 files changed, 34 insertions(+), 40 deletions(-) diff --git a/common/djangoapps/course_modes/tests/factories.py b/common/djangoapps/course_modes/tests/factories.py index f170059adb..7983440862 100644 --- a/common/djangoapps/course_modes/tests/factories.py +++ b/common/djangoapps/course_modes/tests/factories.py @@ -17,7 +17,7 @@ class CourseModeFactory(DjangoModelFactory): model = CourseMode course_id = CourseLocator('MITx', '999', 'Robot_Super_Course') - mode_slug = 'audit' + mode_slug = CourseMode.DEFAULT_MODE_SLUG currency = 'usd' expiration_datetime = None suggested_prices = '' diff --git a/common/djangoapps/enrollment/tests/test_data.py b/common/djangoapps/enrollment/tests/test_data.py index 3c9be7c40b..e0ab60f643 100644 --- a/common/djangoapps/enrollment/tests/test_data.py +++ b/common/djangoapps/enrollment/tests/test_data.py @@ -12,6 +12,7 @@ from nose.tools import raises from pytz import UTC from course_modes.models import CourseMode +from course_modes.tests.factories import CourseModeFactory from enrollment import data from enrollment.errors import ( CourseEnrollmentClosedError, @@ -21,7 +22,7 @@ from enrollment.errors import ( ) from openedx.core.lib.exceptions import CourseNotFoundError from student.models import AlreadyEnrolledError, CourseEnrollment, CourseFullError, EnrollmentClosedError -from student.tests.factories import CourseModeFactory, UserFactory +from student.tests.factories import UserFactory from xmodule.modulestore.tests.django_utils import ModuleStoreTestCase from xmodule.modulestore.tests.factories import CourseFactory diff --git a/common/djangoapps/enrollment/tests/test_views.py b/common/djangoapps/enrollment/tests/test_views.py index fdbb8ab9e1..1cfc11578f 100644 --- a/common/djangoapps/enrollment/tests/test_views.py +++ b/common/djangoapps/enrollment/tests/test_views.py @@ -23,6 +23,7 @@ from xmodule.modulestore.tests.django_utils import ModuleStoreTestCase from xmodule.modulestore.tests.factories import CourseFactory, check_mongo_calls_range from course_modes.models import CourseMode +from course_modes.tests.factories import CourseModeFactory from enrollment import api from enrollment.errors import CourseEnrollmentError from enrollment.views import EnrollmentUserThrottle @@ -34,7 +35,7 @@ from openedx.core.lib.django_test_client_utils import get_absolute_url from openedx.features.enterprise_support.tests.mixins.enterprise import EnterpriseServiceMockMixin from student.models import CourseEnrollment from student.roles import CourseStaffRole -from student.tests.factories import AdminFactory, CourseModeFactory, UserFactory +from student.tests.factories import AdminFactory, UserFactory from util.models import RateLimitConfiguration from util.testing import UrlResetMixin diff --git a/common/djangoapps/student/management/tests/test_bulk_change_enrollment.py b/common/djangoapps/student/management/tests/test_bulk_change_enrollment.py index 56d43241da..00c903631d 100644 --- a/common/djangoapps/student/management/tests/test_bulk_change_enrollment.py +++ b/common/djangoapps/student/management/tests/test_bulk_change_enrollment.py @@ -4,7 +4,8 @@ from django.core.management import call_command from django.core.management.base import CommandError from mock import patch, call -from student.tests.factories import UserFactory, CourseModeFactory, CourseEnrollmentFactory +from course_modes.tests.factories import CourseModeFactory +from student.tests.factories import UserFactory, CourseEnrollmentFactory from student.models import CourseEnrollment, EVENT_NAME_ENROLLMENT_MODE_CHANGED from xmodule.modulestore.tests.django_utils import SharedModuleStoreTestCase from xmodule.modulestore.tests.factories import CourseFactory diff --git a/common/djangoapps/student/management/tests/test_change_enrollment.py b/common/djangoapps/student/management/tests/test_change_enrollment.py index 1d554ba47b..5cfb8d9592 100644 --- a/common/djangoapps/student/management/tests/test_change_enrollment.py +++ b/common/djangoapps/student/management/tests/test_change_enrollment.py @@ -7,7 +7,8 @@ from django.core.management import call_command from xmodule.modulestore.tests.factories import CourseFactory from xmodule.modulestore.tests.django_utils import SharedModuleStoreTestCase -from student.tests.factories import UserFactory, CourseModeFactory +from course_modes.tests.factories import CourseModeFactory +from student.tests.factories import UserFactory from student.models import CourseEnrollment diff --git a/common/djangoapps/student/tests/factories.py b/common/djangoapps/student/tests/factories.py index 44bf74b9d2..313098d5c4 100644 --- a/common/djangoapps/student/tests/factories.py +++ b/common/djangoapps/student/tests/factories.py @@ -60,24 +60,6 @@ class UserProfileFactory(DjangoModelFactory): allow_certificate = True -class CourseModeFactory(DjangoModelFactory): - class Meta(object): - model = CourseMode - - course_id = None - mode_display_name = CourseMode.DEFAULT_MODE.name - mode_slug = CourseMode.DEFAULT_MODE_SLUG - suggested_prices = '' - currency = 'usd' - expiration_datetime = None - - @lazy_attribute - def min_price(self): - if CourseMode.is_verified_slug(self.mode_slug): - return random.randint(1, 100) - return 0 - - class RegistrationFactory(DjangoModelFactory): class Meta(object): model = Registration diff --git a/common/djangoapps/student/tests/test_enrollment.py b/common/djangoapps/student/tests/test_enrollment.py index 9aaf3f23aa..b05891291b 100644 --- a/common/djangoapps/student/tests/test_enrollment.py +++ b/common/djangoapps/student/tests/test_enrollment.py @@ -10,10 +10,11 @@ from mock import patch from nose.plugins.attrib import attr from course_modes.models import CourseMode +from course_modes.tests.factories import CourseModeFactory from openedx.core.djangoapps.embargo.test_utils import restrict_course from student.models import CourseEnrollment, CourseFullError from student.roles import CourseInstructorRole, CourseStaffRole -from student.tests.factories import CourseModeFactory, UserFactory +from student.tests.factories import UserFactory from util.testing import UrlResetMixin from xmodule.modulestore.tests.django_utils import SharedModuleStoreTestCase from xmodule.modulestore.tests.factories import CourseFactory diff --git a/common/djangoapps/student/tests/test_models.py b/common/djangoapps/student/tests/test_models.py index ad8d68d071..927fa9117a 100644 --- a/common/djangoapps/student/tests/test_models.py +++ b/common/djangoapps/student/tests/test_models.py @@ -12,11 +12,12 @@ from django.db.models import signals from django.db.models.functions import Lower from course_modes.models import CourseMode +from course_modes.tests.factories import CourseModeFactory from openedx.core.djangoapps.schedules.models import Schedule from openedx.core.djangoapps.schedules.tests.factories import ScheduleFactory from openedx.core.djangolib.testing.utils import skip_unless_lms from student.models import CourseEnrollment -from student.tests.factories import CourseEnrollmentFactory, UserFactory, CourseModeFactory +from student.tests.factories import CourseEnrollmentFactory, UserFactory from xmodule.modulestore.tests.django_utils import SharedModuleStoreTestCase from xmodule.modulestore.tests.factories import CourseFactory diff --git a/common/djangoapps/student/tests/test_refunds.py b/common/djangoapps/student/tests/test_refunds.py index 11849cbd0a..9d0a4c6c42 100644 --- a/common/djangoapps/student/tests/test_refunds.py +++ b/common/djangoapps/student/tests/test_refunds.py @@ -20,11 +20,12 @@ from slumber.exceptions import HttpClientError, HttpServerError # These imports refer to lms djangoapps. # Their testcases are only run under lms. +from course_modes.tests.factories import CourseModeFactory from certificates.models import CertificateStatuses, GeneratedCertificate # pylint: disable=import-error from certificates.tests.factories import GeneratedCertificateFactory # pylint: disable=import-error from openedx.core.djangoapps.commerce.utils import ECOMMERCE_DATE_FORMAT from student.models import CourseEnrollment, CourseEnrollmentAttribute -from student.tests.factories import CourseModeFactory, UserFactory +from student.tests.factories import UserFactory from xmodule.modulestore.tests.django_utils import SharedModuleStoreTestCase from xmodule.modulestore.tests.factories import CourseFactory diff --git a/common/djangoapps/student/tests/tests.py b/common/djangoapps/student/tests/tests.py index 31a10d5a39..5af0bb977a 100644 --- a/common/djangoapps/student/tests/tests.py +++ b/common/djangoapps/student/tests/tests.py @@ -27,6 +27,7 @@ from bulk_email.models import Optout # pylint: disable=import-error from certificates.models import CertificateStatuses # pylint: disable=import-error from certificates.tests.factories import GeneratedCertificateFactory # pylint: disable=import-error from course_modes.models import CourseMode +from course_modes.tests.factories import CourseModeFactory from lms.djangoapps.verify_student.models import SoftwareSecurePhotoVerification from openedx.core.djangoapps.catalog.tests.factories import CourseFactory as CatalogCourseFactory from openedx.core.djangoapps.catalog.tests.factories import CourseRunFactory, ProgramFactory, generate_course_run_key @@ -41,7 +42,7 @@ from student.models import ( unique_id_for_user, user_by_anonymous_id ) -from student.tests.factories import CourseEnrollmentFactory, CourseModeFactory, UserFactory +from student.tests.factories import CourseEnrollmentFactory, UserFactory from student.views import _cert_info, complete_course_mode_info, process_survey_link from util.model_utils import USER_SETTINGS_CHANGED_EVENT_NAME from util.testing import EventTestMixin diff --git a/lms/djangoapps/commerce/api/v0/tests/test_views.py b/lms/djangoapps/commerce/api/v0/tests/test_views.py index cb3d84bd93..19394e2641 100644 --- a/lms/djangoapps/commerce/api/v0/tests/test_views.py +++ b/lms/djangoapps/commerce/api/v0/tests/test_views.py @@ -26,7 +26,7 @@ from openedx.core.djangoapps.embargo.test_utils import restrict_course from openedx.core.djangoapps.waffle_utils.testutils import override_waffle_flag from openedx.core.lib.django_test_client_utils import get_absolute_url from student.models import CourseEnrollment -from student.tests.factories import CourseModeFactory +from course_modes.tests.factories import CourseModeFactory from student.tests.tests import EnrollmentEventTestMixin from xmodule.modulestore.django import modulestore from xmodule.modulestore.tests.django_utils import ModuleStoreTestCase diff --git a/lms/djangoapps/instructor/tests/test_api.py b/lms/djangoapps/instructor/tests/test_api.py index f731629620..faeabb7185 100644 --- a/lms/djangoapps/instructor/tests/test_api.py +++ b/lms/djangoapps/instructor/tests/test_api.py @@ -34,6 +34,7 @@ from bulk_email.models import BulkEmailFlag, CourseEmail, CourseEmailTemplate from certificates.models import CertificateStatuses from certificates.tests.factories import GeneratedCertificateFactory from course_modes.models import CourseMode +from course_modes.tests.factories import CourseModeFactory from courseware.models import StudentFieldOverride, StudentModule from courseware.tests.factories import ( BetaTesterFactory, @@ -87,7 +88,7 @@ from student.models import ( NonExistentCourseError ) from student.roles import CourseBetaTesterRole, CourseFinanceAdminRole, CourseInstructorRole, CourseSalesAdminRole -from student.tests.factories import AdminFactory, CourseModeFactory, UserFactory +from student.tests.factories import AdminFactory, UserFactory from xmodule.fields import Date from xmodule.modulestore import ModuleStoreEnum from xmodule.modulestore.tests.django_utils import ModuleStoreTestCase, SharedModuleStoreTestCase diff --git a/lms/djangoapps/instructor/tests/test_registration_codes.py b/lms/djangoapps/instructor/tests/test_registration_codes.py index 9cc4c6d733..64f52cc38e 100644 --- a/lms/djangoapps/instructor/tests/test_registration_codes.py +++ b/lms/djangoapps/instructor/tests/test_registration_codes.py @@ -9,6 +9,7 @@ from django.utils.translation import ugettext as _ from nose.plugins.attrib import attr from course_modes.models import CourseMode +from course_modes.tests.factories import CourseModeFactory from courseware.tests.factories import InstructorFactory from shoppingcart.models import ( CourseRegCodeItem, @@ -20,7 +21,7 @@ from shoppingcart.models import ( ) from student.models import CourseEnrollment from student.roles import CourseSalesAdminRole -from student.tests.factories import CourseModeFactory, UserFactory +from student.tests.factories import UserFactory from xmodule.modulestore.tests.django_utils import SharedModuleStoreTestCase from xmodule.modulestore.tests.factories import CourseFactory diff --git a/lms/djangoapps/instructor_analytics/tests/test_basic.py b/lms/djangoapps/instructor_analytics/tests/test_basic.py index ceb738800c..50d7279f69 100644 --- a/lms/djangoapps/instructor_analytics/tests/test_basic.py +++ b/lms/djangoapps/instructor_analytics/tests/test_basic.py @@ -15,6 +15,7 @@ from nose.plugins.attrib import attr from opaque_keys.edx.locator import UsageKey from course_modes.models import CourseMode +from course_modes.tests.factories import CourseModeFactory from courseware.tests.factories import InstructorFactory from instructor_analytics.basic import ( AVAILABLE_FEATURES, @@ -43,7 +44,7 @@ from shoppingcart.models import ( ) from student.models import CourseEnrollment, CourseEnrollmentAllowed from student.roles import CourseSalesAdminRole -from student.tests.factories import CourseModeFactory, UserFactory +from student.tests.factories import UserFactory from xmodule.modulestore.tests.django_utils import ModuleStoreTestCase from xmodule.modulestore.tests.factories import CourseFactory diff --git a/lms/djangoapps/instructor_task/tests/test_tasks_helper.py b/lms/djangoapps/instructor_task/tests/test_tasks_helper.py index 6e82663896..1c0ab58aba 100644 --- a/lms/djangoapps/instructor_task/tests/test_tasks_helper.py +++ b/lms/djangoapps/instructor_task/tests/test_tasks_helper.py @@ -29,6 +29,7 @@ from capa.tests.response_xml_factory import MultipleChoiceResponseXMLFactory from certificates.models import CertificateStatuses, GeneratedCertificate from certificates.tests.factories import CertificateWhitelistFactory, GeneratedCertificateFactory from course_modes.models import CourseMode +from course_modes.tests.factories import CourseModeFactory from courseware.tests.factories import InstructorFactory from instructor_analytics.basic import UNAVAILABLE from lms.djangoapps.grades.models import PersistentCourseGrade @@ -75,7 +76,7 @@ from shoppingcart.models import ( PaidCourseRegistration ) from student.models import ALLOWEDTOENROLL_TO_ENROLLED, CourseEnrollment, CourseEnrollmentAllowed, ManualEnrollmentAudit -from student.tests.factories import CourseEnrollmentFactory, CourseModeFactory, UserFactory +from student.tests.factories import CourseEnrollmentFactory, UserFactory from survey.models import SurveyAnswer, SurveyForm from xmodule.modulestore import ModuleStoreEnum from xmodule.modulestore.tests.django_utils import SharedModuleStoreTestCase diff --git a/lms/djangoapps/shoppingcart/tests/test_views.py b/lms/djangoapps/shoppingcart/tests/test_views.py index 35b439275b..30a2cb50ed 100644 --- a/lms/djangoapps/shoppingcart/tests/test_views.py +++ b/lms/djangoapps/shoppingcart/tests/test_views.py @@ -26,6 +26,7 @@ from pytz import UTC from common.test.utils import XssTestMixin from course_modes.models import CourseMode +from course_modes.tests.factories import CourseModeFactory from courseware.tests.factories import InstructorFactory from edxmako.shortcuts import render_to_response from openedx.core.djangoapps.embargo.test_utils import restrict_course @@ -47,7 +48,7 @@ from shoppingcart.tests.payment_fake import PaymentFakeView from shoppingcart.views import _can_download_report, _get_date_from_str, initialize_report from student.models import CourseEnrollment from student.roles import CourseSalesAdminRole -from student.tests.factories import AdminFactory, CourseModeFactory, UserFactory +from student.tests.factories import AdminFactory, UserFactory from util.date_utils import get_default_time_display from util.testing import UrlResetMixin from xmodule.modulestore.tests.django_utils import ModuleStoreTestCase, SharedModuleStoreTestCase @@ -178,13 +179,12 @@ class ShoppingCartViewsTests(SharedModuleStoreTestCase, XssTestMixin): """ Adds a course mode to the test course. """ - mode = CourseModeFactory.create() - mode.course_id = self.course.id - mode.min_price = min_price - mode.mode_slug = mode_slug - mode.expiration_date = expiration_date - mode.save() - return mode + return CourseModeFactory( + course_id=self.course.id, + min_price=min_price, + mode_slug=mode_slug, + expiration_date=expiration_date, + ) def add_course_to_user_cart(self, course_key): """