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
5e475c87
Commit
5e475c87
authored
Sep 25, 2013
by
cahrens
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Code review feedback.
parent
6dce7f29
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
19 additions
and
22 deletions
+19
-22
cms/djangoapps/contentstore/features/common.py
+5
-7
cms/djangoapps/contentstore/features/course-team.py
+6
-7
cms/djangoapps/contentstore/features/upload.py
+8
-8
No files found.
cms/djangoapps/contentstore/features/common.py
View file @
5e475c87
...
@@ -18,8 +18,6 @@ logger = getLogger(__name__)
...
@@ -18,8 +18,6 @@ logger = getLogger(__name__)
from
terrain.browser
import
reset_data
from
terrain.browser
import
reset_data
TEST_ROOT
=
settings
.
COMMON_TEST_DATA_ROOT
TEST_ROOT
=
settings
.
COMMON_TEST_DATA_ROOT
PASSWORD
=
'test'
EMAIL_EXTENSION
=
'@edx.org'
@step
(
'I (?:visit|access|open) the Studio homepage$'
)
@step
(
'I (?:visit|access|open) the Studio homepage$'
)
...
@@ -315,18 +313,18 @@ def other_user_login(step, name):
...
@@ -315,18 +313,18 @@ def other_user_login(step, name):
def
fill_login_form
():
def
fill_login_form
():
login_form
=
world
.
browser
.
find_by_css
(
'form#login_form'
)
login_form
=
world
.
browser
.
find_by_css
(
'form#login_form'
)
login_form
.
find_by_name
(
'email'
)
.
fill
(
name
+
EMAIL_EXTENSION
)
login_form
.
find_by_name
(
'email'
)
.
fill
(
name
+
'@edx.org'
)
login_form
.
find_by_name
(
'password'
)
.
fill
(
PASSWORD
)
login_form
.
find_by_name
(
'password'
)
.
fill
(
"test"
)
login_form
.
find_by_name
(
'submit'
)
.
click
()
login_form
.
find_by_name
(
'submit'
)
.
click
()
world
.
retry_on_exception
(
fill_login_form
)
world
.
retry_on_exception
(
fill_login_form
)
assert_true
(
world
.
is_css_present
(
'.new-course-button'
))
assert_true
(
world
.
is_css_present
(
'.new-course-button'
))
world
.
scenario_dict
[
'USER'
]
=
get_user_by_email
(
name
+
EMAIL_EXTENSION
)
world
.
scenario_dict
[
'USER'
]
=
get_user_by_email
(
name
+
'@edx.org'
)
@step
(
u'the user "([^"]*)" exists( as a course (admin|staff member|is_staff))?$'
)
@step
(
u'the user "([^"]*)" exists( as a course (admin|staff member|is_staff))?$'
)
def
create_other_user
(
_step
,
name
,
has_extra_perms
,
role_name
):
def
create_other_user
(
_step
,
name
,
has_extra_perms
,
role_name
):
email
=
name
+
EMAIL_EXTENSION
email
=
name
+
'@edx.org'
user
=
create_studio_user
(
uname
=
name
,
password
=
PASSWORD
,
email
=
email
)
user
=
create_studio_user
(
uname
=
name
,
password
=
"test"
,
email
=
email
)
if
has_extra_perms
:
if
has_extra_perms
:
if
role_name
==
"is_staff"
:
if
role_name
==
"is_staff"
:
user
.
is_staff
=
True
user
.
is_staff
=
True
...
...
cms/djangoapps/contentstore/features/course-team.py
View file @
5e475c87
...
@@ -2,7 +2,6 @@
...
@@ -2,7 +2,6 @@
#pylint: disable=W0621
#pylint: disable=W0621
from
lettuce
import
world
,
step
from
lettuce
import
world
,
step
from
common
import
EMAIL_EXTENSION
from
auth.authz
import
get_course_groupname_for_role
,
get_user_by_email
from
auth.authz
import
get_course_groupname_for_role
,
get_user_by_email
from
nose.tools
import
assert_true
,
assert_in
# pylint: disable=E0611
from
nose.tools
import
assert_true
,
assert_in
# pylint: disable=E0611
...
@@ -21,7 +20,7 @@ def add_other_user(_step, name):
...
@@ -21,7 +20,7 @@ def add_other_user(_step, name):
world
.
wait
(
0.5
)
world
.
wait
(
0.5
)
email_css
=
'input#user-email-input'
email_css
=
'input#user-email-input'
world
.
css_fill
(
email_css
,
name
+
EMAIL_EXTENSION
)
world
.
css_fill
(
email_css
,
name
+
'@edx.org'
)
if
world
.
is_firefox
():
if
world
.
is_firefox
():
world
.
trigger_event
(
email_css
)
world
.
trigger_event
(
email_css
)
confirm_css
=
'form.create-user button.action-primary'
confirm_css
=
'form.create-user button.action-primary'
...
@@ -31,7 +30,7 @@ def add_other_user(_step, name):
...
@@ -31,7 +30,7 @@ def add_other_user(_step, name):
@step
(
u'I delete "([^"]*)" from the course team'
)
@step
(
u'I delete "([^"]*)" from the course team'
)
def
delete_other_user
(
_step
,
name
):
def
delete_other_user
(
_step
,
name
):
to_delete_css
=
'.user-item .item-actions a.remove-user[data-id="{email}"]'
.
format
(
to_delete_css
=
'.user-item .item-actions a.remove-user[data-id="{email}"]'
.
format
(
email
=
"{0}{1}"
.
format
(
name
,
EMAIL_EXTENSION
))
email
=
"{0}{1}"
.
format
(
name
,
'@edx.org'
))
world
.
css_click
(
to_delete_css
)
world
.
css_click
(
to_delete_css
)
# confirm prompt
# confirm prompt
# need to wait for the animation to be done, there isn't a good success condition that won't work both on latest chrome and jenkins
# need to wait for the animation to be done, there isn't a good success condition that won't work both on latest chrome and jenkins
...
@@ -52,7 +51,7 @@ def other_delete_self(_step):
...
@@ -52,7 +51,7 @@ def other_delete_self(_step):
@step
(
u'I make "([^"]*)" a course team admin'
)
@step
(
u'I make "([^"]*)" a course team admin'
)
def
make_course_team_admin
(
_step
,
name
):
def
make_course_team_admin
(
_step
,
name
):
admin_btn_css
=
'.user-item[data-email="{email}"] .user-actions .add-admin-role'
.
format
(
admin_btn_css
=
'.user-item[data-email="{email}"] .user-actions .add-admin-role'
.
format
(
email
=
name
+
EMAIL_EXTENSION
)
email
=
name
+
'@edx.org'
)
world
.
css_click
(
admin_btn_css
)
world
.
css_click
(
admin_btn_css
)
...
@@ -61,7 +60,7 @@ def remove_course_team_admin(_step, outer_capture, name):
...
@@ -61,7 +60,7 @@ def remove_course_team_admin(_step, outer_capture, name):
if
outer_capture
==
"myself"
:
if
outer_capture
==
"myself"
:
email
=
world
.
scenario_dict
[
"USER"
]
.
email
email
=
world
.
scenario_dict
[
"USER"
]
.
email
else
:
else
:
email
=
name
+
EMAIL_EXTENSION
email
=
name
+
'@edx.org'
admin_btn_css
=
'.user-item[data-email="{email}"] .user-actions .remove-admin-role'
.
format
(
admin_btn_css
=
'.user-item[data-email="{email}"] .user-actions .remove-admin-role'
.
format
(
email
=
email
)
email
=
email
)
world
.
css_click
(
admin_btn_css
)
world
.
css_click
(
admin_btn_css
)
...
@@ -82,7 +81,7 @@ def see_course(_step, do_not_see, gender='self'):
...
@@ -82,7 +81,7 @@ def see_course(_step, do_not_see, gender='self'):
@step
(
u'"([^"]*)" should( not)? be marked as an admin'
)
@step
(
u'"([^"]*)" should( not)? be marked as an admin'
)
def
marked_as_admin
(
_step
,
name
,
not_marked_admin
):
def
marked_as_admin
(
_step
,
name
,
not_marked_admin
):
flag_css
=
'.user-item[data-email="{email}"] .flag-role.flag-role-admin'
.
format
(
flag_css
=
'.user-item[data-email="{email}"] .flag-role.flag-role-admin'
.
format
(
email
=
name
+
EMAIL_EXTENSION
)
email
=
name
+
'@edx.org'
)
if
not_marked_admin
:
if
not_marked_admin
:
assert
world
.
is_css_not_present
(
flag_css
)
assert
world
.
is_css_not_present
(
flag_css
)
else
:
else
:
...
@@ -120,7 +119,7 @@ def can_make_course_admin(_step, can_not_make_admin, outer_capture, name):
...
@@ -120,7 +119,7 @@ def can_make_course_admin(_step, can_not_make_admin, outer_capture, name):
if
outer_capture
==
"myself"
:
if
outer_capture
==
"myself"
:
email
=
world
.
scenario_dict
[
"USER"
]
.
email
email
=
world
.
scenario_dict
[
"USER"
]
.
email
else
:
else
:
email
=
name
+
EMAIL_EXTENSION
email
=
name
+
'@edx.org'
add_button_css
=
'.user-item[data-email="{email}"] .add-admin-role'
.
format
(
email
=
email
)
add_button_css
=
'.user-item[data-email="{email}"] .add-admin-role'
.
format
(
email
=
email
)
if
can_not_make_admin
:
if
can_not_make_admin
:
assert
world
.
is_css_not_present
(
add_button_css
)
assert
world
.
is_css_not_present
(
add_button_css
)
...
...
cms/djangoapps/contentstore/features/upload.py
View file @
5e475c87
...
@@ -14,7 +14,7 @@ TEST_ROOT = settings.COMMON_TEST_DATA_ROOT
...
@@ -14,7 +14,7 @@ TEST_ROOT = settings.COMMON_TEST_DATA_ROOT
ASSET_NAMES_CSS
=
'td.name-col > span.title > a.filename'
ASSET_NAMES_CSS
=
'td.name-col > span.title > a.filename'
@step
(
u'I go to the files and uploads page'
)
@step
(
u'I go to the files and uploads page
$
'
)
def
go_to_uploads
(
_step
):
def
go_to_uploads
(
_step
):
menu_css
=
'li.nav-course-courseware'
menu_css
=
'li.nav-course-courseware'
uploads_css
=
'li.nav-course-courseware-uploads a'
uploads_css
=
'li.nav-course-courseware-uploads a'
...
@@ -121,7 +121,7 @@ def modify_upload(_step, file_name):
...
@@ -121,7 +121,7 @@ def modify_upload(_step, file_name):
_write_test_file
(
file_name
,
new_text
)
_write_test_file
(
file_name
,
new_text
)
@step
(
u'I (lock|unlock) "([^"]*)"'
)
@step
(
u'I (lock|unlock) "([^"]*)"
$
'
)
def
lock_unlock_file
(
_step
,
_lock_state
,
file_name
):
def
lock_unlock_file
(
_step
,
_lock_state
,
file_name
):
index
=
get_index
(
file_name
)
index
=
get_index
(
file_name
)
assert
index
!=
-
1
assert
index
!=
-
1
...
@@ -129,19 +129,19 @@ def lock_unlock_file(_step, _lock_state, file_name):
...
@@ -129,19 +129,19 @@ def lock_unlock_file(_step, _lock_state, file_name):
world
.
css_click
(
lock_css
,
index
=
index
)
world
.
css_click
(
lock_css
,
index
=
index
)
@step
(
u'Then "([^"]*)" is (locked|unlocked)'
)
@step
(
u'Then "([^"]*)" is (locked|unlocked)
$
'
)
def
verify_lock_unlock_file
(
_step
,
file_name
,
lock_state
):
def
verify_lock_unlock_file
(
_step
,
file_name
,
lock_state
):
index
=
get_index
(
file_name
)
index
=
get_index
(
file_name
)
assert
index
!=
-
1
assert
index
!=
-
1
lock_css
=
"a.lock-asset-button"
lock_css
=
"a.lock-asset-button"
text
=
(
world
.
css_find
(
lock_css
)[
index
])
.
text
text
=
world
.
css_text
(
lock_css
,
index
=
index
)
if
lock_state
==
"locked"
:
if
lock_state
==
"locked"
:
assert_equal
(
"Unlock this asset"
,
text
)
assert_equal
(
"Unlock this asset"
,
text
)
else
:
else
:
assert_equal
(
"Lock this asset"
,
text
)
assert_equal
(
"Lock this asset"
,
text
)
@step
(
u'I have opened a course with a (locked|unlocked) asset "([^"]*)"'
)
@step
(
u'I have opened a course with a (locked|unlocked) asset "([^"]*)"
$
'
)
def
open_course_with_locked
(
step
,
lock_state
,
file_name
):
def
open_course_with_locked
(
step
,
lock_state
,
file_name
):
step
.
given
(
'I have opened a new course in studio'
)
step
.
given
(
'I have opened a new course in studio'
)
step
.
given
(
'I go to the files and uploads page'
)
step
.
given
(
'I go to the files and uploads page'
)
...
@@ -152,7 +152,7 @@ def open_course_with_locked(step, lock_state, file_name):
...
@@ -152,7 +152,7 @@ def open_course_with_locked(step, lock_state, file_name):
step
.
given
(
'I reload the page'
)
step
.
given
(
'I reload the page'
)
@step
(
u'Then the asset "([^"]*)" is (viewable|protected)'
)
@step
(
u'Then the asset "([^"]*)" is (viewable|protected)
$
'
)
def
view_asset
(
_step
,
file_name
,
status
):
def
view_asset
(
_step
,
file_name
,
status
):
url
=
'/c4x/MITx/999/asset/'
+
file_name
url
=
'/c4x/MITx/999/asset/'
+
file_name
if
status
==
'viewable'
:
if
status
==
'viewable'
:
...
@@ -168,7 +168,7 @@ def view_asset(_step, file_name, status):
...
@@ -168,7 +168,7 @@ def view_asset(_step, file_name, status):
assert
error_thrown
assert
error_thrown
@step
(
u'Then the asset "([^"]*)" can be clicked from the asset index'
)
@step
(
u'Then the asset "([^"]*)" can be clicked from the asset index
$
'
)
def
click_asset_from_index
(
step
,
file_name
):
def
click_asset_from_index
(
step
,
file_name
):
# This is not ideal, but I'm having trouble with the middleware not having
# This is not ideal, but I'm having trouble with the middleware not having
# the same user in the request when I hit the URL directly.
# the same user in the request when I hit the URL directly.
...
@@ -188,7 +188,7 @@ def _verify_body_text():
...
@@ -188,7 +188,7 @@ def _verify_body_text():
world
.
wait_for
(
verify_text
)
world
.
wait_for
(
verify_text
)
@step
(
'I see a confirmation that the file was deleted'
)
@step
(
'I see a confirmation that the file was deleted
$
'
)
def
i_see_a_delete_confirmation
(
_step
):
def
i_see_a_delete_confirmation
(
_step
):
alert_css
=
'#notification-confirmation'
alert_css
=
'#notification-confirmation'
assert
world
.
is_css_present
(
alert_css
)
assert
world
.
is_css_present
(
alert_css
)
...
...
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