Commit cb4c7125 by Cliff Dyer Committed by GitHub

Merge pull request #12964 from edx/adam/merge-release-to-rc

Adam/merge release to rc
parents 0aceb231 2e095e15
...@@ -2,6 +2,8 @@ ...@@ -2,6 +2,8 @@
Test the Studio help links. Test the Studio help links.
""" """
from flaky import flaky
from .base_studio_test import StudioCourseTest from .base_studio_test import StudioCourseTest
from ...pages.studio.index import DashboardPage from ...pages.studio.index import DashboardPage
from ...pages.studio.utils import click_studio_help, studio_help_links from ...pages.studio.utils import click_studio_help, studio_help_links
...@@ -10,6 +12,7 @@ from ...pages.studio.utils import click_studio_help, studio_help_links ...@@ -10,6 +12,7 @@ from ...pages.studio.utils import click_studio_help, studio_help_links
class StudioHelpTest(StudioCourseTest): class StudioHelpTest(StudioCourseTest):
"""Tests for Studio help.""" """Tests for Studio help."""
@flaky # TODO: TNL-4954
def test_studio_help_links(self): def test_studio_help_links(self):
"""Test that the help links are present and have the correct content.""" """Test that the help links are present and have the correct content."""
page = DashboardPage(self.browser) page = DashboardPage(self.browser)
......
...@@ -5,6 +5,7 @@ Tests for UserPartitionTransformer. ...@@ -5,6 +5,7 @@ Tests for UserPartitionTransformer.
from collections import namedtuple from collections import namedtuple
import ddt import ddt
from nose.plugins.attrib import attr from nose.plugins.attrib import attr
import string
from openedx.core.djangoapps.course_groups.partition_scheme import CohortPartitionScheme from openedx.core.djangoapps.course_groups.partition_scheme import CohortPartitionScheme
from openedx.core.djangoapps.course_groups.tests.helpers import CohortFactory, config_course_cohorts from openedx.core.djangoapps.course_groups.tests.helpers import CohortFactory, config_course_cohorts
...@@ -25,7 +26,7 @@ class UserPartitionTestMixin(object): ...@@ -25,7 +26,7 @@ class UserPartitionTestMixin(object):
""" """
TRANSFORMER_CLASS_TO_TEST = UserPartitionTransformer TRANSFORMER_CLASS_TO_TEST = UserPartitionTransformer
def setup_groups_partitions(self, num_user_partitions=1, num_groups=4): def setup_groups_partitions(self, num_user_partitions=1, num_groups=4, active=True):
""" """
Sets up groups and user partitions for testing. Sets up groups and user partitions for testing.
""" """
...@@ -42,7 +43,8 @@ class UserPartitionTestMixin(object): ...@@ -42,7 +43,8 @@ class UserPartitionTestMixin(object):
name='Partition ' + unicode(user_partition_num), name='Partition ' + unicode(user_partition_num),
description='This is partition ' + unicode(user_partition_num), description='This is partition ' + unicode(user_partition_num),
groups=self.groups, groups=self.groups,
scheme=CohortPartitionScheme scheme=CohortPartitionScheme,
active=active,
) )
user_partition.scheme.name = "cohort" user_partition.scheme.name = "cohort"
self.user_partitions.append(user_partition) self.user_partitions.append(user_partition)
...@@ -72,15 +74,16 @@ class UserPartitionTransformerTestCase(UserPartitionTestMixin, CourseStructureTe ...@@ -72,15 +74,16 @@ class UserPartitionTransformerTestCase(UserPartitionTestMixin, CourseStructureTe
""" """
UserPartitionTransformer Test UserPartitionTransformer Test
""" """
def setUp(self): def setup_partitions_and_course(self, active=True):
""" """
Setup course structure and create user for user partition Setup course structure and create user for user partition
transformer test. transformer test.
Args:
active: boolean representing if the user partitions are
active or not
""" """
super(UserPartitionTransformerTestCase, self).setUp()
# Set up user partitions and groups. # Set up user partitions and groups.
self.setup_groups_partitions() self.setup_groups_partitions(active=active)
self.user_partition = self.user_partitions[0] self.user_partition = self.user_partitions[0]
# Build course. # Build course.
...@@ -89,7 +92,9 @@ class UserPartitionTransformerTestCase(UserPartitionTestMixin, CourseStructureTe ...@@ -89,7 +92,9 @@ class UserPartitionTransformerTestCase(UserPartitionTestMixin, CourseStructureTe
self.course = self.blocks['course'] self.course = self.blocks['course']
# Enroll user in course. # Enroll user in course.
CourseEnrollmentFactory.create(user=self.user, course_id=self.course.id, is_active=True) CourseEnrollmentFactory.create(
user=self.user, course_id=self.course.id, is_active=True
)
# Set up cohorts. # Set up cohorts.
self.setup_cohorts(self.course) self.setup_cohorts(self.course)
...@@ -199,6 +204,7 @@ class UserPartitionTransformerTestCase(UserPartitionTestMixin, CourseStructureTe ...@@ -199,6 +204,7 @@ class UserPartitionTransformerTestCase(UserPartitionTestMixin, CourseStructureTe
) )
@ddt.unpack @ddt.unpack
def test_transform(self, group_id, expected_blocks): def test_transform(self, group_id, expected_blocks):
self.setup_partitions_and_course()
if group_id: if group_id:
cohort = self.partition_cohorts[self.user_partition.id - 1][group_id - 1] cohort = self.partition_cohorts[self.user_partition.id - 1][group_id - 1]
add_user_to_cohort(cohort, self.user.username) add_user_to_cohort(cohort, self.user.username)
...@@ -213,6 +219,27 @@ class UserPartitionTransformerTestCase(UserPartitionTestMixin, CourseStructureTe ...@@ -213,6 +219,27 @@ class UserPartitionTransformerTestCase(UserPartitionTestMixin, CourseStructureTe
self.get_block_key_set(self.blocks, *expected_blocks) self.get_block_key_set(self.blocks, *expected_blocks)
) )
def test_transform_on_inactive_partition(self):
"""
Tests UserPartitionTransformer for inactive UserPartition.
"""
self.setup_partitions_and_course(active=False)
# we expect to find all blocks because the UserPartitions are all
# inactive
expected_blocks = ('course',) + tuple(string.ascii_uppercase[:15])
trans_block_structure = get_course_blocks(
self.user,
self.course.location,
self.transformers,
)
self.assertSetEqual(
set(trans_block_structure.get_block_keys()),
self.get_block_key_set(self.blocks, *expected_blocks)
)
@attr('shard_3') @attr('shard_3')
@ddt.ddt @ddt.ddt
......
...@@ -42,7 +42,11 @@ class UserPartitionTransformer(FilteringTransformerMixin, BlockStructureTransfor ...@@ -42,7 +42,11 @@ class UserPartitionTransformer(FilteringTransformerMixin, BlockStructureTransfor
# Because user partitions are course-wide, only store data for # Because user partitions are course-wide, only store data for
# them on the root block. # them on the root block.
root_block = block_structure.get_xblock(block_structure.root_block_usage_key) root_block = block_structure.get_xblock(block_structure.root_block_usage_key)
user_partitions = getattr(root_block, 'user_partitions', []) or [] user_partitions = [
user_partition
for user_partition in getattr(root_block, 'user_partitions', [])
if user_partition.active
]
block_structure.set_transformer_data(cls, 'user_partitions', user_partitions) block_structure.set_transformer_data(cls, 'user_partitions', user_partitions)
# If there are no user partitions, this transformation is a # If there are no user partitions, this transformation is a
......
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