Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
E
edx-platform
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
edx
edx-platform
Commits
6dfc2f88
Commit
6dfc2f88
authored
Jul 06, 2016
by
Adam
Committed by
GitHub
Jul 06, 2016
Browse files
Options
Browse Files
Download
Plain Diff
Merge pull request #12938 from edx/patch/2016-07-06
filter inactive user partitions in user partition transformer.
parents
faadafee
92ed01ef
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
39 additions
and
8 deletions
+39
-8
lms/djangoapps/course_blocks/transformers/tests/test_user_partitions.py
+34
-7
lms/djangoapps/course_blocks/transformers/user_partitions.py
+5
-1
No files found.
lms/djangoapps/course_blocks/transformers/tests/test_user_partitions.py
View file @
6dfc2f88
...
...
@@ -5,6 +5,7 @@ Tests for UserPartitionTransformer.
from
collections
import
namedtuple
import
ddt
from
nose.plugins.attrib
import
attr
import
string
from
openedx.core.djangoapps.course_groups.partition_scheme
import
CohortPartitionScheme
from
openedx.core.djangoapps.course_groups.tests.helpers
import
CohortFactory
,
config_course_cohorts
...
...
@@ -25,7 +26,7 @@ class UserPartitionTestMixin(object):
"""
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.
"""
...
...
@@ -42,7 +43,8 @@ class UserPartitionTestMixin(object):
name
=
'Partition '
+
unicode
(
user_partition_num
),
description
=
'This is partition '
+
unicode
(
user_partition_num
),
groups
=
self
.
groups
,
scheme
=
CohortPartitionScheme
scheme
=
CohortPartitionScheme
,
active
=
active
,
)
user_partition
.
scheme
.
name
=
"cohort"
self
.
user_partitions
.
append
(
user_partition
)
...
...
@@ -72,15 +74,16 @@ class UserPartitionTransformerTestCase(UserPartitionTestMixin, CourseStructureTe
"""
UserPartitionTransformer Test
"""
def
set
Up
(
self
):
def
set
up_partitions_and_course
(
self
,
active
=
True
):
"""
Setup course structure and create user for user partition
transformer test.
Args:
active: boolean representing if the user partitions are
active or not
"""
super
(
UserPartitionTransformerTestCase
,
self
)
.
setUp
()
# Set up user partitions and groups.
self
.
setup_groups_partitions
()
self
.
setup_groups_partitions
(
active
=
active
)
self
.
user_partition
=
self
.
user_partitions
[
0
]
# Build course.
...
...
@@ -89,7 +92,9 @@ class UserPartitionTransformerTestCase(UserPartitionTestMixin, CourseStructureTe
self
.
course
=
self
.
blocks
[
'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.
self
.
setup_cohorts
(
self
.
course
)
...
...
@@ -199,6 +204,7 @@ class UserPartitionTransformerTestCase(UserPartitionTestMixin, CourseStructureTe
)
@ddt.unpack
def
test_transform
(
self
,
group_id
,
expected_blocks
):
self
.
setup_partitions_and_course
()
if
group_id
:
cohort
=
self
.
partition_cohorts
[
self
.
user_partition
.
id
-
1
][
group_id
-
1
]
add_user_to_cohort
(
cohort
,
self
.
user
.
username
)
...
...
@@ -213,6 +219,27 @@ class UserPartitionTransformerTestCase(UserPartitionTestMixin, CourseStructureTe
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'
)
@ddt.ddt
...
...
lms/djangoapps/course_blocks/transformers/user_partitions.py
View file @
6dfc2f88
...
...
@@ -42,7 +42,11 @@ class UserPartitionTransformer(BlockStructureTransformer):
# Because user partitions are course-wide, only store data for
# them on the root block.
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
)
# If there are no user partitions, this transformation is a
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment