Commit 6c9b38dc by Calen Pennington Committed by GitHub

Merge pull request #15877 from edx/ret/course-mode-factory

Use a consistent CourseModeFactory from the course_modes module, rath…
parents 8df57c7c 63244b51
...@@ -17,7 +17,7 @@ class CourseModeFactory(DjangoModelFactory): ...@@ -17,7 +17,7 @@ class CourseModeFactory(DjangoModelFactory):
model = CourseMode model = CourseMode
course_id = CourseLocator('MITx', '999', 'Robot_Super_Course') course_id = CourseLocator('MITx', '999', 'Robot_Super_Course')
mode_slug = 'audit' mode_slug = CourseMode.DEFAULT_MODE_SLUG
currency = 'usd' currency = 'usd'
expiration_datetime = None expiration_datetime = None
suggested_prices = '' suggested_prices = ''
......
...@@ -12,6 +12,7 @@ from nose.tools import raises ...@@ -12,6 +12,7 @@ from nose.tools import raises
from pytz import UTC from pytz import UTC
from course_modes.models import CourseMode from course_modes.models import CourseMode
from course_modes.tests.factories import CourseModeFactory
from enrollment import data from enrollment import data
from enrollment.errors import ( from enrollment.errors import (
CourseEnrollmentClosedError, CourseEnrollmentClosedError,
...@@ -21,7 +22,7 @@ from enrollment.errors import ( ...@@ -21,7 +22,7 @@ from enrollment.errors import (
) )
from openedx.core.lib.exceptions import CourseNotFoundError from openedx.core.lib.exceptions import CourseNotFoundError
from student.models import AlreadyEnrolledError, CourseEnrollment, CourseFullError, EnrollmentClosedError 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.django_utils import ModuleStoreTestCase
from xmodule.modulestore.tests.factories import CourseFactory from xmodule.modulestore.tests.factories import CourseFactory
......
...@@ -23,6 +23,7 @@ from xmodule.modulestore.tests.django_utils import ModuleStoreTestCase ...@@ -23,6 +23,7 @@ from xmodule.modulestore.tests.django_utils import ModuleStoreTestCase
from xmodule.modulestore.tests.factories import CourseFactory, check_mongo_calls_range from xmodule.modulestore.tests.factories import CourseFactory, check_mongo_calls_range
from course_modes.models import CourseMode from course_modes.models import CourseMode
from course_modes.tests.factories import CourseModeFactory
from enrollment import api from enrollment import api
from enrollment.errors import CourseEnrollmentError from enrollment.errors import CourseEnrollmentError
from enrollment.views import EnrollmentUserThrottle from enrollment.views import EnrollmentUserThrottle
...@@ -34,7 +35,7 @@ from openedx.core.lib.django_test_client_utils import get_absolute_url ...@@ -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 openedx.features.enterprise_support.tests.mixins.enterprise import EnterpriseServiceMockMixin
from student.models import CourseEnrollment from student.models import CourseEnrollment
from student.roles import CourseStaffRole 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.models import RateLimitConfiguration
from util.testing import UrlResetMixin from util.testing import UrlResetMixin
......
...@@ -4,7 +4,8 @@ from django.core.management import call_command ...@@ -4,7 +4,8 @@ from django.core.management import call_command
from django.core.management.base import CommandError from django.core.management.base import CommandError
from mock import patch, call 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 student.models import CourseEnrollment, EVENT_NAME_ENROLLMENT_MODE_CHANGED
from xmodule.modulestore.tests.django_utils import SharedModuleStoreTestCase from xmodule.modulestore.tests.django_utils import SharedModuleStoreTestCase
from xmodule.modulestore.tests.factories import CourseFactory from xmodule.modulestore.tests.factories import CourseFactory
......
...@@ -7,7 +7,8 @@ from django.core.management import call_command ...@@ -7,7 +7,8 @@ from django.core.management import call_command
from xmodule.modulestore.tests.factories import CourseFactory from xmodule.modulestore.tests.factories import CourseFactory
from xmodule.modulestore.tests.django_utils import SharedModuleStoreTestCase 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 from student.models import CourseEnrollment
......
...@@ -60,24 +60,6 @@ class UserProfileFactory(DjangoModelFactory): ...@@ -60,24 +60,6 @@ class UserProfileFactory(DjangoModelFactory):
allow_certificate = True 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 RegistrationFactory(DjangoModelFactory):
class Meta(object): class Meta(object):
model = Registration model = Registration
......
...@@ -10,10 +10,11 @@ from mock import patch ...@@ -10,10 +10,11 @@ from mock import patch
from nose.plugins.attrib import attr from nose.plugins.attrib import attr
from course_modes.models import CourseMode from course_modes.models import CourseMode
from course_modes.tests.factories import CourseModeFactory
from openedx.core.djangoapps.embargo.test_utils import restrict_course from openedx.core.djangoapps.embargo.test_utils import restrict_course
from student.models import CourseEnrollment, CourseFullError from student.models import CourseEnrollment, CourseFullError
from student.roles import CourseInstructorRole, CourseStaffRole 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 util.testing import UrlResetMixin
from xmodule.modulestore.tests.django_utils import SharedModuleStoreTestCase from xmodule.modulestore.tests.django_utils import SharedModuleStoreTestCase
from xmodule.modulestore.tests.factories import CourseFactory from xmodule.modulestore.tests.factories import CourseFactory
......
...@@ -12,11 +12,12 @@ from django.db.models import signals ...@@ -12,11 +12,12 @@ from django.db.models import signals
from django.db.models.functions import Lower from django.db.models.functions import Lower
from course_modes.models import CourseMode 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.models import Schedule
from openedx.core.djangoapps.schedules.tests.factories import ScheduleFactory from openedx.core.djangoapps.schedules.tests.factories import ScheduleFactory
from openedx.core.djangolib.testing.utils import skip_unless_lms from openedx.core.djangolib.testing.utils import skip_unless_lms
from student.models import CourseEnrollment 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.django_utils import SharedModuleStoreTestCase
from xmodule.modulestore.tests.factories import CourseFactory from xmodule.modulestore.tests.factories import CourseFactory
......
...@@ -20,11 +20,12 @@ from slumber.exceptions import HttpClientError, HttpServerError ...@@ -20,11 +20,12 @@ from slumber.exceptions import HttpClientError, HttpServerError
# These imports refer to lms djangoapps. # These imports refer to lms djangoapps.
# Their testcases are only run under lms. # 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.models import CertificateStatuses, GeneratedCertificate # pylint: disable=import-error
from certificates.tests.factories import GeneratedCertificateFactory # 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 openedx.core.djangoapps.commerce.utils import ECOMMERCE_DATE_FORMAT
from student.models import CourseEnrollment, CourseEnrollmentAttribute 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.django_utils import SharedModuleStoreTestCase
from xmodule.modulestore.tests.factories import CourseFactory from xmodule.modulestore.tests.factories import CourseFactory
......
...@@ -27,6 +27,7 @@ from bulk_email.models import Optout # pylint: disable=import-error ...@@ -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.models import CertificateStatuses # pylint: disable=import-error
from certificates.tests.factories import GeneratedCertificateFactory # pylint: disable=import-error from certificates.tests.factories import GeneratedCertificateFactory # pylint: disable=import-error
from course_modes.models import CourseMode from course_modes.models import CourseMode
from course_modes.tests.factories import CourseModeFactory
from lms.djangoapps.verify_student.models import SoftwareSecurePhotoVerification 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 CourseFactory as CatalogCourseFactory
from openedx.core.djangoapps.catalog.tests.factories import CourseRunFactory, ProgramFactory, generate_course_run_key from openedx.core.djangoapps.catalog.tests.factories import CourseRunFactory, ProgramFactory, generate_course_run_key
...@@ -41,7 +42,7 @@ from student.models import ( ...@@ -41,7 +42,7 @@ from student.models import (
unique_id_for_user, unique_id_for_user,
user_by_anonymous_id 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 student.views import _cert_info, complete_course_mode_info, process_survey_link
from util.model_utils import USER_SETTINGS_CHANGED_EVENT_NAME from util.model_utils import USER_SETTINGS_CHANGED_EVENT_NAME
from util.testing import EventTestMixin from util.testing import EventTestMixin
......
...@@ -26,7 +26,7 @@ from openedx.core.djangoapps.embargo.test_utils import restrict_course ...@@ -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.djangoapps.waffle_utils.testutils import override_waffle_flag
from openedx.core.lib.django_test_client_utils import get_absolute_url from openedx.core.lib.django_test_client_utils import get_absolute_url
from student.models import CourseEnrollment 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 student.tests.tests import EnrollmentEventTestMixin
from xmodule.modulestore.django import modulestore from xmodule.modulestore.django import modulestore
from xmodule.modulestore.tests.django_utils import ModuleStoreTestCase from xmodule.modulestore.tests.django_utils import ModuleStoreTestCase
......
...@@ -34,6 +34,7 @@ from bulk_email.models import BulkEmailFlag, CourseEmail, CourseEmailTemplate ...@@ -34,6 +34,7 @@ from bulk_email.models import BulkEmailFlag, CourseEmail, CourseEmailTemplate
from certificates.models import CertificateStatuses from certificates.models import CertificateStatuses
from certificates.tests.factories import GeneratedCertificateFactory from certificates.tests.factories import GeneratedCertificateFactory
from course_modes.models import CourseMode from course_modes.models import CourseMode
from course_modes.tests.factories import CourseModeFactory
from courseware.models import StudentFieldOverride, StudentModule from courseware.models import StudentFieldOverride, StudentModule
from courseware.tests.factories import ( from courseware.tests.factories import (
BetaTesterFactory, BetaTesterFactory,
...@@ -87,7 +88,7 @@ from student.models import ( ...@@ -87,7 +88,7 @@ from student.models import (
NonExistentCourseError NonExistentCourseError
) )
from student.roles import CourseBetaTesterRole, CourseFinanceAdminRole, CourseInstructorRole, CourseSalesAdminRole 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.fields import Date
from xmodule.modulestore import ModuleStoreEnum from xmodule.modulestore import ModuleStoreEnum
from xmodule.modulestore.tests.django_utils import ModuleStoreTestCase, SharedModuleStoreTestCase from xmodule.modulestore.tests.django_utils import ModuleStoreTestCase, SharedModuleStoreTestCase
......
...@@ -9,6 +9,7 @@ from django.utils.translation import ugettext as _ ...@@ -9,6 +9,7 @@ from django.utils.translation import ugettext as _
from nose.plugins.attrib import attr from nose.plugins.attrib import attr
from course_modes.models import CourseMode from course_modes.models import CourseMode
from course_modes.tests.factories import CourseModeFactory
from courseware.tests.factories import InstructorFactory from courseware.tests.factories import InstructorFactory
from shoppingcart.models import ( from shoppingcart.models import (
CourseRegCodeItem, CourseRegCodeItem,
...@@ -20,7 +21,7 @@ from shoppingcart.models import ( ...@@ -20,7 +21,7 @@ from shoppingcart.models import (
) )
from student.models import CourseEnrollment from student.models import CourseEnrollment
from student.roles import CourseSalesAdminRole 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.django_utils import SharedModuleStoreTestCase
from xmodule.modulestore.tests.factories import CourseFactory from xmodule.modulestore.tests.factories import CourseFactory
......
...@@ -15,6 +15,7 @@ from nose.plugins.attrib import attr ...@@ -15,6 +15,7 @@ from nose.plugins.attrib import attr
from opaque_keys.edx.locator import UsageKey from opaque_keys.edx.locator import UsageKey
from course_modes.models import CourseMode from course_modes.models import CourseMode
from course_modes.tests.factories import CourseModeFactory
from courseware.tests.factories import InstructorFactory from courseware.tests.factories import InstructorFactory
from instructor_analytics.basic import ( from instructor_analytics.basic import (
AVAILABLE_FEATURES, AVAILABLE_FEATURES,
...@@ -43,7 +44,7 @@ from shoppingcart.models import ( ...@@ -43,7 +44,7 @@ from shoppingcart.models import (
) )
from student.models import CourseEnrollment, CourseEnrollmentAllowed from student.models import CourseEnrollment, CourseEnrollmentAllowed
from student.roles import CourseSalesAdminRole 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.django_utils import ModuleStoreTestCase
from xmodule.modulestore.tests.factories import CourseFactory from xmodule.modulestore.tests.factories import CourseFactory
......
...@@ -29,6 +29,7 @@ from capa.tests.response_xml_factory import MultipleChoiceResponseXMLFactory ...@@ -29,6 +29,7 @@ from capa.tests.response_xml_factory import MultipleChoiceResponseXMLFactory
from certificates.models import CertificateStatuses, GeneratedCertificate from certificates.models import CertificateStatuses, GeneratedCertificate
from certificates.tests.factories import CertificateWhitelistFactory, GeneratedCertificateFactory from certificates.tests.factories import CertificateWhitelistFactory, GeneratedCertificateFactory
from course_modes.models import CourseMode from course_modes.models import CourseMode
from course_modes.tests.factories import CourseModeFactory
from courseware.tests.factories import InstructorFactory from courseware.tests.factories import InstructorFactory
from instructor_analytics.basic import UNAVAILABLE from instructor_analytics.basic import UNAVAILABLE
from lms.djangoapps.grades.models import PersistentCourseGrade from lms.djangoapps.grades.models import PersistentCourseGrade
...@@ -75,7 +76,7 @@ from shoppingcart.models import ( ...@@ -75,7 +76,7 @@ from shoppingcart.models import (
PaidCourseRegistration PaidCourseRegistration
) )
from student.models import ALLOWEDTOENROLL_TO_ENROLLED, CourseEnrollment, CourseEnrollmentAllowed, ManualEnrollmentAudit 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 survey.models import SurveyAnswer, SurveyForm
from xmodule.modulestore import ModuleStoreEnum from xmodule.modulestore import ModuleStoreEnum
from xmodule.modulestore.tests.django_utils import SharedModuleStoreTestCase from xmodule.modulestore.tests.django_utils import SharedModuleStoreTestCase
......
...@@ -26,6 +26,7 @@ from pytz import UTC ...@@ -26,6 +26,7 @@ from pytz import UTC
from common.test.utils import XssTestMixin from common.test.utils import XssTestMixin
from course_modes.models import CourseMode from course_modes.models import CourseMode
from course_modes.tests.factories import CourseModeFactory
from courseware.tests.factories import InstructorFactory from courseware.tests.factories import InstructorFactory
from edxmako.shortcuts import render_to_response from edxmako.shortcuts import render_to_response
from openedx.core.djangoapps.embargo.test_utils import restrict_course from openedx.core.djangoapps.embargo.test_utils import restrict_course
...@@ -47,7 +48,7 @@ from shoppingcart.tests.payment_fake import PaymentFakeView ...@@ -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 shoppingcart.views import _can_download_report, _get_date_from_str, initialize_report
from student.models import CourseEnrollment from student.models import CourseEnrollment
from student.roles import CourseSalesAdminRole 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.date_utils import get_default_time_display
from util.testing import UrlResetMixin from util.testing import UrlResetMixin
from xmodule.modulestore.tests.django_utils import ModuleStoreTestCase, SharedModuleStoreTestCase from xmodule.modulestore.tests.django_utils import ModuleStoreTestCase, SharedModuleStoreTestCase
...@@ -178,13 +179,12 @@ class ShoppingCartViewsTests(SharedModuleStoreTestCase, XssTestMixin): ...@@ -178,13 +179,12 @@ class ShoppingCartViewsTests(SharedModuleStoreTestCase, XssTestMixin):
""" """
Adds a course mode to the test course. Adds a course mode to the test course.
""" """
mode = CourseModeFactory.create() return CourseModeFactory(
mode.course_id = self.course.id course_id=self.course.id,
mode.min_price = min_price min_price=min_price,
mode.mode_slug = mode_slug mode_slug=mode_slug,
mode.expiration_date = expiration_date expiration_date=expiration_date,
mode.save() )
return mode
def add_course_to_user_cart(self, course_key): def add_course_to_user_cart(self, course_key):
""" """
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment