def test_assign_roles(self): """ Verify that method `assign_organization_role' assign course-user-roles except CourseTeam role for the organization against a course. """ self.assertFalse(self.course2.course_user_roles.all()) # create default roles for organization factories.OrganizationUserRoleFactory( role=PublisherUserRole.ProjectCoordinator, organization=self.org_extension_2.organization) factories.OrganizationUserRoleFactory( role=PublisherUserRole.MarketingReviewer, organization=self.org_extension_2.organization) factories.OrganizationUserRoleFactory( role=PublisherUserRole.CourseTeam, organization=self.org_extension_2.organization) self.course2.assign_organization_role( self.org_extension_2.organization) self.assertEqual(len(self.course2.course_user_roles.all()), 2) self.assertNotIn(PublisherUserRole.CourseTeam, self.course2.course_user_roles.all())
def test_only_org_roles(self): """ Verify that view only returns results for the given org. """ factories.OrganizationUserRoleFactory(role=self.pub_slug) response = self.query() self.assertExpectedRoles(response) # new role above won't be included
def test_role_param(self): """ Verify that view accepts a role query param. """ factories.OrganizationUserRoleFactory(organization=self.organization, role=self.pub_slug) factories.OrganizationUserRoleFactory(organization=self.organization, role=self.pub_slug) factories.OrganizationUserRoleFactory(organization=self.organization, role=self.pm_slug) # Single role response = self.query(param='role=%s' % self.pm_slug) self.assertExpectedRoles(response, [self.pm_slug]) # Two roles response = self.query(param=f'role={self.pm_slug},{self.pub_slug}') self.assertExpectedRoles(response, [self.pm_slug, self.pub_slug, self.pub_slug])
def setUp(self): super().setUp() self.user = UserFactory.create(username="******", password=USER_PASSWORD) self.client.login(username=self.user.username, password=USER_PASSWORD) self.internal_user_group = Group.objects.get( name=INTERNAL_USER_GROUP_NAME) self.user.groups.add(self.internal_user_group) self.pc_slug = InternalUserRole.ProjectCoordinator self.pm_slug = InternalUserRole.PartnerManager self.pub_slug = InternalUserRole.Publisher self.role = factories.OrganizationUserRoleFactory(user=self.user, role=self.pc_slug) self.organization = self.role.organization
def test_published(self): person = PersonFactory() org = OrganizationFactory() primary = DiscoveryCourseRunFactory(key=self.course_run.lms_course_id, staff=[person], status=CourseRunStatus.Unpublished, announcement=None, course__partner=self.partner, end=None, enrollment_end=None) second = DiscoveryCourseRunFactory(course=primary.course, status=CourseRunStatus.Published, end=None, enrollment_end=None, start=(primary.start + datetime.timedelta(days=1))) third = DiscoveryCourseRunFactory(course=primary.course, status=CourseRunStatus.Published, end=datetime.datetime(2010, 1, 1, tzinfo=UTC), enrollment_end=None) primary.course.authoring_organizations.add(org) self.course.organizations.add(org) ensure_draft_world(DiscoveryCourse.objects.get(pk=primary.course.pk)) pc = UserFactory() factories.CourseUserRoleFactory(course=self.course, role=PublisherUserRole.ProjectCoordinator, user=pc) factories.OrganizationUserRoleFactory(organization=org, role=InternalUserRole.ProjectCoordinator, user=pc) self.mock_api_client() lookup_value = getattr(primary, self.publisher.unique_field) self.mock_node_retrieval(self.publisher.node_lookup_field, lookup_value) lookup_value = getattr(third, self.publisher.unique_field) self.mock_node_retrieval(self.publisher.node_lookup_field, lookup_value) self.mock_get_redirect_form() self.mock_add_redirect() self.course_run.course_run_state.name = CourseRunStateChoices.Approved self.course_run.course_run_state.change_state(CourseRunStateChoices.Published, self.user, self.site) primary.refresh_from_db() second.refresh_from_db() third.refresh_from_db() self.assertIsNotNone(primary.announcement) self.assertEqual(primary.status, CourseRunStatus.Published) self.assertEqual(second.status, CourseRunStatus.Published) # doesn't change end=None runs self.assertEqual(third.status, CourseRunStatus.Unpublished) # does change archived runs # Check email was sent (only one - from old publisher, not new publisher flow) assert len(mail.outbox) == 1 message = mail.outbox[0] self.assertTrue(message.subject.startswith('Publication complete: ')) self.assertEqual(message.to, [self.user.email]) self.assertEqual(message.cc, [pc.email])
def setUp(self): super(OrganizationUserRoleTests, self).setUp() self.org_user_role = factories.OrganizationUserRoleFactory(role=PublisherUserRole.ProjectCoordinator)
def setUp(self): super().setUp() self.org_user_role = factories.OrganizationUserRoleFactory(role=InternalUserRole.ProjectCoordinator)