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
98b2e753
Commit
98b2e753
authored
Aug 12, 2015
by
Jonathan Piacenti
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Fix bok_choy tests for discussion.
parent
6af4af51
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
19 additions
and
36 deletions
+19
-36
common/test/acceptance/tests/discussion/test_discussion.py
+13
-29
lms/djangoapps/django_comment_client/base/views.py
+1
-2
lms/djangoapps/django_comment_client/forum/tests.py
+2
-2
lms/djangoapps/django_comment_client/forum/views.py
+0
-2
lms/djangoapps/django_comment_client/utils.py
+3
-1
No files found.
common/test/acceptance/tests/discussion/test_discussion.py
View file @
98b2e753
...
...
@@ -6,6 +6,7 @@ import datetime
from
pytz
import
UTC
from
uuid
import
uuid4
from
nose.plugins.attrib
import
attr
from
common.test.acceptance.tests.discussion.helpers
import
BaseDiscussionTestCase
from
..helpers
import
UniqueCourseTest
from
...pages.lms.auto_auth
import
AutoAuthPage
...
...
@@ -112,22 +113,17 @@ class DiscussionResponsePaginationTestMixin(BaseDiscussionMixin):
@attr
(
'shard_1'
)
class
DiscussionTabSingleThreadTest
(
UniqueCourseTest
,
DiscussionResponsePaginationTestMixin
):
class
DiscussionTabSingleThreadTest
(
BaseDiscussionTestCase
,
DiscussionResponsePaginationTestMixin
):
"""
Tests for the discussion page displaying a single thread
"""
def
setUp
(
self
):
super
(
DiscussionTabSingleThreadTest
,
self
)
.
setUp
()
self
.
discussion_id
=
"test_discussion_{}"
.
format
(
uuid4
()
.
hex
)
# Create a course to register for
CourseFixture
(
**
self
.
course_info
)
.
install
()
AutoAuthPage
(
self
.
browser
,
course_id
=
self
.
course_id
)
.
visit
()
def
setup_thread_page
(
self
,
thread_id
):
self
.
thread_page
=
DiscussionTabSingleThreadPage
(
self
.
browser
,
self
.
course_id
,
thread_id
)
# pylint:disable=W0201
self
.
thread_page
=
self
.
create_single_thread_page
(
thread_id
)
# pylint: disable=attribute-defined-outside-init
self
.
thread_page
.
visit
()
def
test_marked_answer_comments
(
self
):
...
...
@@ -153,23 +149,17 @@ class DiscussionTabSingleThreadTest(UniqueCourseTest, DiscussionResponsePaginati
@attr
(
'shard_1'
)
class
DiscussionCommentDeletionTest
(
UniqueCourseTest
):
class
DiscussionCommentDeletionTest
(
BaseDiscussionTestCase
):
"""
Tests for deleting comments displayed beneath responses in the single thread view.
"""
def
setUp
(
self
):
super
(
DiscussionCommentDeletionTest
,
self
)
.
setUp
()
# Create a course to register for
CourseFixture
(
**
self
.
course_info
)
.
install
()
def
setup_user
(
self
,
roles
=
[]):
roles_str
=
','
.
join
(
roles
)
self
.
user_id
=
AutoAuthPage
(
self
.
browser
,
course_id
=
self
.
course_id
,
roles
=
roles_str
)
.
visit
()
.
get_user_id
()
def
setup_view
(
self
):
view
=
SingleThreadViewFixture
(
Thread
(
id
=
"comment_deletion_test_thread"
))
view
=
SingleThreadViewFixture
(
Thread
(
id
=
"comment_deletion_test_thread"
,
commentable_id
=
self
.
discussion_id
))
view
.
addResponse
(
Response
(
id
=
"response1"
),
[
Comment
(
id
=
"comment_other_author"
,
user_id
=
"other"
),
Comment
(
id
=
"comment_self_author"
,
user_id
=
self
.
user_id
)])
...
...
@@ -178,7 +168,7 @@ class DiscussionCommentDeletionTest(UniqueCourseTest):
def
test_comment_deletion_as_student
(
self
):
self
.
setup_user
()
self
.
setup_view
()
page
=
DiscussionTabSingleThreadPage
(
self
.
browser
,
self
.
course_id
,
"comment_deletion_test_thread"
)
page
=
self
.
create_single_thread_page
(
"comment_deletion_test_thread"
)
page
.
visit
()
self
.
assertTrue
(
page
.
is_comment_deletable
(
"comment_self_author"
))
self
.
assertTrue
(
page
.
is_comment_visible
(
"comment_other_author"
))
...
...
@@ -188,7 +178,7 @@ class DiscussionCommentDeletionTest(UniqueCourseTest):
def
test_comment_deletion_as_moderator
(
self
):
self
.
setup_user
(
roles
=
[
'Moderator'
])
self
.
setup_view
()
page
=
DiscussionTabSingleThreadPage
(
self
.
browser
,
self
.
course_id
,
"comment_deletion_test_thread"
)
page
=
self
.
create_single_thread_page
(
"comment_deletion_test_thread"
)
page
.
visit
()
self
.
assertTrue
(
page
.
is_comment_deletable
(
"comment_self_author"
))
self
.
assertTrue
(
page
.
is_comment_deletable
(
"comment_other_author"
))
...
...
@@ -197,23 +187,17 @@ class DiscussionCommentDeletionTest(UniqueCourseTest):
@attr
(
'shard_1'
)
class
DiscussionCommentEditTest
(
UniqueCourseTest
):
class
DiscussionCommentEditTest
(
BaseDiscussionTestCase
):
"""
Tests for editing comments displayed beneath responses in the single thread view.
"""
def
setUp
(
self
):
super
(
DiscussionCommentEditTest
,
self
)
.
setUp
()
# Create a course to register for
CourseFixture
(
**
self
.
course_info
)
.
install
()
def
setup_user
(
self
,
roles
=
[]):
roles_str
=
','
.
join
(
roles
)
self
.
user_id
=
AutoAuthPage
(
self
.
browser
,
course_id
=
self
.
course_id
,
roles
=
roles_str
)
.
visit
()
.
get_user_id
()
def
setup_view
(
self
):
view
=
SingleThreadViewFixture
(
Thread
(
id
=
"comment_edit_test_thread"
))
view
=
SingleThreadViewFixture
(
Thread
(
id
=
"comment_edit_test_thread"
,
commentable_id
=
self
.
discussion_id
))
view
.
addResponse
(
Response
(
id
=
"response1"
),
[
Comment
(
id
=
"comment_other_author"
,
user_id
=
"other"
),
Comment
(
id
=
"comment_self_author"
,
user_id
=
self
.
user_id
)])
...
...
@@ -228,7 +212,7 @@ class DiscussionCommentEditTest(UniqueCourseTest):
def
test_edit_comment_as_student
(
self
):
self
.
setup_user
()
self
.
setup_view
()
page
=
DiscussionTabSingleThreadPage
(
self
.
browser
,
self
.
course_id
,
"comment_edit_test_thread"
)
page
=
self
.
create_single_thread_page
(
"comment_edit_test_thread"
)
page
.
visit
()
self
.
assertTrue
(
page
.
is_comment_editable
(
"comment_self_author"
))
self
.
assertTrue
(
page
.
is_comment_visible
(
"comment_other_author"
))
...
...
@@ -238,7 +222,7 @@ class DiscussionCommentEditTest(UniqueCourseTest):
def
test_edit_comment_as_moderator
(
self
):
self
.
setup_user
(
roles
=
[
"Moderator"
])
self
.
setup_view
()
page
=
DiscussionTabSingleThreadPage
(
self
.
browser
,
self
.
course_id
,
"comment_edit_test_thread"
)
page
=
self
.
create_single_thread_page
(
"comment_edit_test_thread"
)
page
.
visit
()
self
.
assertTrue
(
page
.
is_comment_editable
(
"comment_self_author"
))
self
.
assertTrue
(
page
.
is_comment_editable
(
"comment_other_author"
))
...
...
@@ -248,7 +232,7 @@ class DiscussionCommentEditTest(UniqueCourseTest):
def
test_cancel_comment_edit
(
self
):
self
.
setup_user
()
self
.
setup_view
()
page
=
DiscussionTabSingleThreadPage
(
self
.
browser
,
self
.
course_id
,
"comment_edit_test_thread"
)
page
=
self
.
create_single_thread_page
(
"comment_edit_test_thread"
)
page
.
visit
()
self
.
assertTrue
(
page
.
is_comment_editable
(
"comment_self_author"
))
original_body
=
page
.
get_comment_body
(
"comment_self_author"
)
...
...
@@ -260,7 +244,7 @@ class DiscussionCommentEditTest(UniqueCourseTest):
"""Only one editor should be visible at a time within a single response"""
self
.
setup_user
(
roles
=
[
"Moderator"
])
self
.
setup_view
()
page
=
DiscussionTabSingleThreadPage
(
self
.
browser
,
self
.
course_id
,
"comment_edit_test_thread"
)
page
=
self
.
create_single_thread_page
(
"comment_edit_test_thread"
)
page
.
visit
()
self
.
assertTrue
(
page
.
is_comment_editable
(
"comment_self_author"
))
self
.
assertTrue
(
page
.
is_comment_editable
(
"comment_other_author"
))
...
...
lms/djangoapps/django_comment_client/base/views.py
View file @
98b2e753
...
...
@@ -23,9 +23,8 @@ from edx_notifications.lib.publisher import (
get_notification_type
)
from
edx_notifications.data
import
NotificationMessage
from
openedx.core.djangoapps.course_groups.cohorts
import
get_cohort_
id
,
is_commentable_cohorted
,
get_cohort_
by_id
from
openedx.core.djangoapps.course_groups.cohorts
import
get_cohort_by_id
from
openedx.core.djangoapps.course_groups.tasks
import
publish_course_group_notification_task
from
openedx.core.djangoapps.course_groups.models
import
CourseUserGroup
import
django_comment_client.settings
as
cc_settings
from
django_comment_client.utils
import
(
add_courseware_context
,
...
...
lms/djangoapps/django_comment_client/forum/tests.py
View file @
98b2e753
...
...
@@ -327,8 +327,8 @@ class SingleThreadQueryCountTestCase(ModuleStoreTestCase):
@ddt.data
(
# old mongo with cache
(
ModuleStoreEnum
.
Type
.
mongo
,
1
,
6
,
4
,
12
,
7
),
(
ModuleStoreEnum
.
Type
.
mongo
,
50
,
6
,
4
,
12
,
7
),
(
ModuleStoreEnum
.
Type
.
mongo
,
1
,
8
,
6
,
12
,
7
),
(
ModuleStoreEnum
.
Type
.
mongo
,
50
,
8
,
6
,
12
,
7
),
# split mongo: 3 queries, regardless of thread response size.
(
ModuleStoreEnum
.
Type
.
split
,
1
,
3
,
3
,
12
,
7
),
(
ModuleStoreEnum
.
Type
.
split
,
50
,
3
,
3
,
12
,
7
),
...
...
lms/djangoapps/django_comment_client/forum/views.py
View file @
98b2e753
...
...
@@ -364,7 +364,6 @@ def single_thread(request, course_key, discussion_id, thread_id):
)
except
cc
.
utils
.
CommentClientRequestError
as
e
:
if
e
.
status_code
==
404
:
print
"Can't find it!"
raise
Http404
raise
...
...
@@ -398,7 +397,6 @@ def single_thread(request, course_key, discussion_id, thread_id):
add_courseware_context
(
threads
,
course
,
request
.
user
)
for
thread
in
threads
:
add_thread_group_name
(
thread
,
course_key
)
# patch for backward compatibility with comments service
if
"pinned"
not
in
thread
:
thread
[
"pinned"
]
=
False
...
...
lms/djangoapps/django_comment_client/utils.py
View file @
98b2e753
...
...
@@ -70,7 +70,9 @@ def get_accessible_discussion_modules(course, user, include_all=False): # pylin
Return a list of all valid discussion modules in this course that
are accessible to the given user.
"""
all_modules
=
modulestore
()
.
get_items
(
course
.
id
,
qualifiers
=
{
'category'
:
'discussion'
})
discussion_modules
=
modulestore
()
.
get_items
(
course
.
id
,
qualifiers
=
{
'category'
:
'discussion'
})
discussion_xblocks
=
modulestore
()
.
get_items
(
course
.
id
,
qualifiers
=
{
'category'
:
'discussion-forum'
})
all_modules
=
discussion_modules
+
discussion_xblocks
def
has_required_keys
(
module
):
for
key
in
(
'discussion_id'
,
'discussion_category'
,
'discussion_target'
):
...
...
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