def setUp(self):
        super(ChangeCourseRunStateViewTests, self).setUp()
        self.seat = factories.SeatFactory(type=Seat.VERIFIED, price=2)
        self.course_run = self.seat.course_run

        self.run_state = factories.CourseRunStateFactory(name=CourseRunStateChoices.Draft, course_run=self.course_run)
        self.course_state = factories.CourseStateFactory(
            name=CourseStateChoices.Approved, course=self.course_run.course
        )
        self.user = UserFactory()
        self.user.groups.add(Group.objects.get(name=INTERNAL_USER_GROUP_NAME))

        self.change_state_url = reverse('publisher:api:change_course_run_state', kwargs={'pk': self.run_state.id})

        self.client.login(username=self.user.username, password=USER_PASSWORD)

        language_tag = LanguageTag(code='te-st', name='Test Language')
        language_tag.save()
        self.course_run.transcript_languages.add(language_tag)
        self.course_run.language = language_tag
        self.course_run.lms_course_id = 'course-v1:edX+DemoX+Demo_Course'
        self.course_run.course.organizations.add(OrganizationFactory())
        self.course_run.save()

        self.course_run.staff.add(PersonFactory())

        toggle_switch('enable_publisher_email_notifications', True)
 def setUpClass(cls):
     super(CourseStateTests, cls).setUpClass()
     cls.course_state = factories.CourseStateFactory(name=CourseStateChoices.Draft)
     cls.user = UserFactory()
     factories.CourseUserRoleFactory(
         course=cls.course_state.course, role=PublisherUserRole.CourseTeam, user=cls.user
     )
    def test_course_team_status(self):
        """
        Verify that course_team_status returns right statuses.
        """
        course_state = factories.CourseStateFactory(
            owner_role=PublisherUserRole.CourseTeam)
        self._assert_course_run_status(course_state.course_team_status,
                                       'In Draft since',
                                       course_state.owner_role_modified)

        self._change_state_and_owner(course_state)
        self._assert_course_run_status(course_state.course_team_status,
                                       'Submitted on',
                                       course_state.owner_role_modified)

        course_state.marketing_reviewed = True
        course_state.change_owner_role(PublisherUserRole.CourseTeam)
        self._assert_course_run_status(course_state.course_team_status,
                                       'In Review since',
                                       course_state.owner_role_modified)

        course_state.approved()
        course_state.save()
        self._assert_course_run_status(course_state.course_team_status,
                                       'Reviewed on',
                                       course_state.owner_role_modified)
    def test_internal_user_status(self):
        course_state = factories.CourseStateFactory(owner_role=PublisherUserRole.CourseTeam)
        assert course_state.internal_user_status == 'N/A'

        self._change_state_and_owner(course_state)
        assert course_state.internal_user_status == 'Awaiting Marketing Review'

        course_state.marketing_reviewed = True
        course_state.change_owner_role(PublisherUserRole.CourseTeam)
        assert course_state.internal_user_status == 'Approved by Marketing'
    def test_course_team_status(self):
        course_state = factories.CourseStateFactory(owner_role=PublisherUserRole.CourseTeam)
        assert course_state.course_team_status == 'Draft'

        self._change_state_and_owner(course_state)
        assert course_state.course_team_status == 'Submitted for Marketing Review'

        course_state.marketing_reviewed = True
        course_state.change_owner_role(PublisherUserRole.CourseTeam)
        assert course_state.course_team_status == 'Awaiting Course Team Review'

        course_state.approved()
        course_state.save()
        assert course_state.course_team_status == 'Approved by Course Team'
    def setUp(self):
        super(SEOReviewEmailTests, self).setUp()
        self.user = UserFactory()
        self.course_state = factories.CourseStateFactory()
        self.course = self.course_state.course
        self.course.organizations.add(OrganizationFactory())
        factories.CourseUserRoleFactory(course=self.course,
                                        role=PublisherUserRole.CourseTeam,
                                        user=self.user)
        self.legal_user = UserFactory()
        self.legal_user.groups.add(
            Group.objects.get(name=LEGAL_TEAM_GROUP_NAME))

        UserAttributeFactory(user=self.user, enable_email_notification=True)
Example #7
0
    def setUpClass(cls):
        super(CourseRunStateTests, cls).setUpClass()
        cls.seat = factories.SeatFactory(type=Seat.VERIFIED, price=100)
        cls.course_run_state = factories.CourseRunStateFactory(
            course_run=cls.seat.course_run, name=CourseRunStateChoices.Draft)
        cls.course_run = cls.course_run_state.course_run
        cls.course = cls.course_run.course
        cls.user = UserFactory()

        factories.CourseStateFactory(name=CourseStateChoices.Approved,
                                     course=cls.course)
        factories.CourseUserRoleFactory(course=cls.course_run.course,
                                        role=PublisherUserRole.CourseTeam,
                                        user=cls.user)
        factories.CourseUserRoleFactory(
            course=cls.course_run.course,
            role=PublisherUserRole.MarketingReviewer,
            user=UserFactory())
    def setUp(self):
        super(ChangeCourseStateViewTests, self).setUp()
        self.course_state = factories.CourseStateFactory(name=CourseStateChoices.Draft)
        self.user = UserFactory()
        self.user.groups.add(Group.objects.get(name=INTERNAL_USER_GROUP_NAME))

        self.course = self.course_state.course
        self.course.image = make_image_file('test_banner.jpg')
        self.course.save()

        self.organization_extension = factories.OrganizationExtensionFactory()
        self.course.organizations.add(self.organization_extension.organization)
        factories.UserAttributeFactory(user=self.user, enable_email_notification=True)
        toggle_switch('enable_publisher_email_notifications', True)

        self.change_state_url = reverse('publisher:api:change_course_state', kwargs={'pk': self.course_state.id})

        self.client.login(username=self.user.username, password=USER_PASSWORD)
    def test_internal_user_status(self):
        """
        Verify that internal_user_status returns right statuses.
        """
        course_state = factories.CourseStateFactory(
            owner_role=PublisherUserRole.CourseTeam)
        self._assert_course_run_status(course_state.internal_user_status,
                                       'n/a', '')

        self._change_state_and_owner(course_state)
        self._assert_course_run_status(course_state.internal_user_status,
                                       'In Review since',
                                       course_state.owner_role_modified)

        course_state.marketing_reviewed = True
        course_state.change_owner_role(PublisherUserRole.CourseTeam)
        self._assert_course_run_status(course_state.internal_user_status,
                                       'Reviewed on',
                                       course_state.owner_role_modified)
 def setUp(self):
     super(CourseMarkAsReviewedEmailTests, self).setUp()
     self.user = UserFactory()
     self.course_state = factories.CourseStateFactory()
 def setUp(self):
     super(SendForReviewEmailTests, self).setUp()
     self.user = UserFactory()
     self.course_state = factories.CourseStateFactory()