diff --git a/lms/djangoapps/shoppingcart/tests/test_views.py b/lms/djangoapps/shoppingcart/tests/test_views.py index ef9251c20e..1b5f4667ad 100644 --- a/lms/djangoapps/shoppingcart/tests/test_views.py +++ b/lms/djangoapps/shoppingcart/tests/test_views.py @@ -25,7 +25,7 @@ from mock import patch, Mock import ddt from common.test.utils import XssTestMixin -from xmodule.modulestore.tests.django_utils import ModuleStoreTestCase +from xmodule.modulestore.tests.django_utils import SharedModuleStoreTestCase, ModuleStoreTestCase from xmodule.modulestore.tests.factories import CourseFactory from student.roles import CourseSalesAdminRole from util.date_utils import get_default_time_display @@ -66,7 +66,21 @@ postpay_mock = Mock() @patch.dict('django.conf.settings.FEATURES', {'ENABLE_PAID_COURSE_REGISTRATION': True}) @ddt.ddt -class ShoppingCartViewsTests(ModuleStoreTestCase, XssTestMixin): +class ShoppingCartViewsTests(SharedModuleStoreTestCase, XssTestMixin): + @classmethod + def setUpClass(cls): + super(ShoppingCartViewsTests, cls).setUpClass() + cls.course = CourseFactory.create(org='MITx', number='999', display_name='Robot Super Course') + cls.course_key = cls.course.id + + verified_course = CourseFactory.create(org='org', number='test', display_name='Test Course') + cls.verified_course_key = verified_course.id + + xss_course = CourseFactory.create(org='xssorg', number='test', display_name='') + cls.xss_course_key = xss_course.id + + cls.testing_course = CourseFactory.create(org='edX', number='888', display_name='Testing Super Course') + def setUp(self): super(ShoppingCartViewsTests, self).setUp() @@ -80,8 +94,6 @@ class ShoppingCartViewsTests(ModuleStoreTestCase, XssTestMixin): self.coupon_code = 'abcde' self.reg_code = 'qwerty' self.percentage_discount = 10 - self.course = CourseFactory.create(org='MITx', number='999', display_name='Robot Super Course') - self.course_key = self.course.id self.course_mode = CourseMode(course_id=self.course_key, mode_slug="honor", mode_display_name="honor cert", @@ -90,19 +102,12 @@ class ShoppingCartViewsTests(ModuleStoreTestCase, XssTestMixin): # Saving another testing course mode self.testing_cost = 20 - self.testing_course = CourseFactory.create(org='edX', number='888', display_name='Testing Super Course') self.testing_course_mode = CourseMode(course_id=self.testing_course.id, mode_slug="honor", mode_display_name="testing honor cert", min_price=self.testing_cost) self.testing_course_mode.save() - verified_course = CourseFactory.create(org='org', number='test', display_name='Test Course') - self.verified_course_key = verified_course.id - - xss_course = CourseFactory.create(org='xssorg', number='test', display_name='') - self.xss_course_key = xss_course.id - self.cart = Order.get_cart_for_user(self.user) self.addCleanup(patcher.stop) @@ -1361,19 +1366,23 @@ class ShoppingCartViewsTests(ModuleStoreTestCase, XssTestMixin): ) -class ReceiptRedirectTest(ModuleStoreTestCase): +class ReceiptRedirectTest(SharedModuleStoreTestCase): """Test special-case redirect from the receipt page. """ COST = 40 PASSWORD = 'password' + @classmethod + def setUpClass(cls): + super(ReceiptRedirectTest, cls).setUpClass() + cls.course = CourseFactory.create() + cls.course_key = cls.course.id + def setUp(self): super(ReceiptRedirectTest, self).setUp() self.user = UserFactory.create() self.user.set_password(self.PASSWORD) self.user.save() - self.course = CourseFactory.create() - self.course_key = self.course.id self.course_mode = CourseMode( course_id=self.course_key, mode_slug="verified", @@ -1382,7 +1391,6 @@ class ReceiptRedirectTest(ModuleStoreTestCase): ) self.course_mode.save() self.cart = Order.get_cart_for_user(self.user) - self.client.login( username=self.user.username, password=self.PASSWORD @@ -1429,7 +1437,6 @@ class ShoppingcartViewsClosedEnrollment(ModuleStoreTestCase): Test suite for ShoppingcartViews Course Enrollments Closed or not """ def setUp(self): - super(ShoppingcartViewsClosedEnrollment, self).setUp() self.user = UserFactory.create() self.user.set_password('password') @@ -1560,10 +1567,16 @@ class ShoppingcartViewsClosedEnrollment(ModuleStoreTestCase): @patch.dict('django.conf.settings.FEATURES', {'ENABLE_PAID_COURSE_REGISTRATION': True}) -class RegistrationCodeRedemptionCourseEnrollment(ModuleStoreTestCase): +class RegistrationCodeRedemptionCourseEnrollment(SharedModuleStoreTestCase): """ Test suite for RegistrationCodeRedemption Course Enrollments """ + @classmethod + def setUpClass(cls): + super(RegistrationCodeRedemptionCourseEnrollment, cls).setUpClass() + cls.course = CourseFactory.create(org='MITx', number='999', display_name='Robot Super Course') + cls.course_key = cls.course.id + def setUp(self, **kwargs): super(RegistrationCodeRedemptionCourseEnrollment, self).setUp() @@ -1571,8 +1584,6 @@ class RegistrationCodeRedemptionCourseEnrollment(ModuleStoreTestCase): self.user.set_password('password') self.user.save() self.cost = 40 - self.course = CourseFactory.create(org='MITx', number='999', display_name='Robot Super Course') - self.course_key = self.course.id self.course_mode = CourseMode(course_id=self.course_key, mode_slug="honor", mode_display_name="honor cert", @@ -1735,7 +1746,7 @@ class RedeemCodeEmbargoTests(UrlResetMixin, ModuleStoreTestCase): @ddt.ddt -class DonationViewTest(ModuleStoreTestCase): +class DonationViewTest(SharedModuleStoreTestCase): """Tests for making a donation. These tests cover both the single-item purchase flow, @@ -1745,6 +1756,11 @@ class DonationViewTest(ModuleStoreTestCase): DONATION_AMOUNT = "23.45" PASSWORD = "password" + @classmethod + def setUpClass(cls): + super(DonationViewTest, cls).setUpClass() + cls.course = CourseFactory.create(display_name="Test Course") + def setUp(self): """Create a test user and order. """ super(DonationViewTest, self).setUp() @@ -1766,8 +1782,7 @@ class DonationViewTest(ModuleStoreTestCase): self._assert_receipt_contains("tax purposes") def test_donation_for_course_receipt(self): - # Create a test course and donate to it - self.course = CourseFactory.create(display_name="Test Course") + # Donate to our course self._donate(self.DONATION_AMOUNT, course_id=self.course.id) # Verify the receipt page @@ -1891,10 +1906,18 @@ class DonationViewTest(ModuleStoreTestCase): return reverse("shoppingcart.views.show_receipt", kwargs={"ordernum": order_id}) -class CSVReportViewsTest(ModuleStoreTestCase): +class CSVReportViewsTest(SharedModuleStoreTestCase): """ Test suite for CSV Purchase Reporting """ + @classmethod + def setUpClass(cls): + super(CSVReportViewsTest, cls).setUpClass() + cls.course = CourseFactory.create(org='MITx', number='999', display_name='Robot Super Course') + cls.course_key = cls.course.id + verified_course = CourseFactory.create(org='org', number='test', display_name='Test Course') + cls.verified_course_key = verified_course.id + def setUp(self): super(CSVReportViewsTest, self).setUp() @@ -1902,8 +1925,6 @@ class CSVReportViewsTest(ModuleStoreTestCase): self.user.set_password('password') self.user.save() self.cost = 40 - self.course = CourseFactory.create(org='MITx', number='999', display_name='Robot Super Course') - self.course_key = self.course.id self.course_mode = CourseMode(course_id=self.course_key, mode_slug="honor", mode_display_name="honor cert", @@ -1914,9 +1935,7 @@ class CSVReportViewsTest(ModuleStoreTestCase): mode_display_name="verified cert", min_price=self.cost) self.course_mode2.save() - verified_course = CourseFactory.create(org='org', number='test', display_name='Test Course') - self.verified_course_key = verified_course.id self.cart = Order.get_cart_for_user(self.user) self.dl_grp = Group(name=settings.PAYMENT_REPORT_GENERATOR_GROUP) self.dl_grp.save()