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
e50ef39b
Commit
e50ef39b
authored
Jan 31, 2014
by
Julia Hansbrough
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Midcourse reverification: Events
parent
63a22ad0
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
58 additions
and
1 deletions
+58
-1
lms/djangoapps/verify_student/tests/test_views.py
+38
-0
lms/djangoapps/verify_student/views.py
+20
-1
No files found.
lms/djangoapps/verify_student/tests/test_views.py
View file @
e50ef39b
...
@@ -20,6 +20,8 @@ from django.conf import settings
...
@@ -20,6 +20,8 @@ from django.conf import settings
from
django.core.urlresolvers
import
reverse
from
django.core.urlresolvers
import
reverse
from
django.core.exceptions
import
ObjectDoesNotExist
from
django.core.exceptions
import
ObjectDoesNotExist
from
mock
import
sentinel
from
xmodule.modulestore.tests.factories
import
CourseFactory
from
xmodule.modulestore.tests.factories
import
CourseFactory
from
courseware.tests.tests
import
TEST_DATA_MONGO_MODULESTORE
from
courseware.tests.tests
import
TEST_DATA_MONGO_MODULESTORE
from
student.tests.factories
import
UserFactory
from
student.tests.factories
import
UserFactory
...
@@ -130,11 +132,33 @@ class TestMidCourseReverifyView(TestCase):
...
@@ -130,11 +132,33 @@ class TestMidCourseReverifyView(TestCase):
self
.
course_id
=
'Robot/999/Test_Course'
self
.
course_id
=
'Robot/999/Test_Course'
CourseFactory
.
create
(
org
=
'Robot'
,
number
=
'999'
,
display_name
=
'Test Course'
)
CourseFactory
.
create
(
org
=
'Robot'
,
number
=
'999'
,
display_name
=
'Test Course'
)
patcher
=
patch
(
'student.models.server_track'
)
self
.
mock_server_track
=
patcher
.
start
()
self
.
addCleanup
(
patcher
.
stop
)
crum_patcher
=
patch
(
'student.models.crum.get_current_request'
)
self
.
mock_get_current_request
=
crum_patcher
.
start
()
self
.
addCleanup
(
crum_patcher
.
stop
)
self
.
mock_get_current_request
.
return_value
=
sentinel
.
request
@patch
(
'verify_student.views.render_to_response'
,
render_mock
)
@patch
(
'verify_student.views.render_to_response'
,
render_mock
)
def
test_midcourse_reverify_get
(
self
):
def
test_midcourse_reverify_get
(
self
):
url
=
reverse
(
'verify_student_midcourse_reverify'
,
url
=
reverse
(
'verify_student_midcourse_reverify'
,
kwargs
=
{
"course_id"
:
self
.
course_id
})
kwargs
=
{
"course_id"
:
self
.
course_id
})
response
=
self
.
client
.
get
(
url
)
response
=
self
.
client
.
get
(
url
)
# Check that user entering the reverify flow was logged
self
.
mock_server_track
.
assert_called_once_with
(
sentinel
.
request
,
'edx.course.enrollment.reverify.started'
,
{
'user_id'
:
self
.
user
.
id
,
'course_id'
:
self
.
course_id
,
'mode'
:
"verified"
,
}
)
self
.
mock_server_track
.
reset_mock
()
self
.
assertEquals
(
response
.
status_code
,
200
)
self
.
assertEquals
(
response
.
status_code
,
200
)
((
_template
,
context
),
_kwargs
)
=
render_mock
.
call_args
((
_template
,
context
),
_kwargs
)
=
render_mock
.
call_args
self
.
assertFalse
(
context
[
'error'
])
self
.
assertFalse
(
context
[
'error'
])
...
@@ -143,7 +167,21 @@ class TestMidCourseReverifyView(TestCase):
...
@@ -143,7 +167,21 @@ class TestMidCourseReverifyView(TestCase):
def
test_midcourse_reverify_post_success
(
self
):
def
test_midcourse_reverify_post_success
(
self
):
window
=
MidcourseReverificationWindowFactory
(
course_id
=
self
.
course_id
)
window
=
MidcourseReverificationWindowFactory
(
course_id
=
self
.
course_id
)
url
=
reverse
(
'verify_student_midcourse_reverify'
,
kwargs
=
{
'course_id'
:
self
.
course_id
})
url
=
reverse
(
'verify_student_midcourse_reverify'
,
kwargs
=
{
'course_id'
:
self
.
course_id
})
response
=
self
.
client
.
post
(
url
,
{
'face_image'
:
','
})
response
=
self
.
client
.
post
(
url
,
{
'face_image'
:
','
})
# Check that submission event was logged
self
.
mock_server_track
.
assert_called_once_with
(
sentinel
.
request
,
'edx.course.enrollment.reverify.submitted'
,
{
'user_id'
:
self
.
user
.
id
,
'course_id'
:
self
.
course_id
,
'mode'
:
"verified"
,
}
)
self
.
mock_server_track
.
reset_mock
()
self
.
assertEquals
(
response
.
status_code
,
302
)
self
.
assertEquals
(
response
.
status_code
,
302
)
try
:
try
:
verification_attempt
=
SoftwareSecurePhotoVerification
.
objects
.
get
(
user
=
self
.
user
,
window
=
window
)
verification_attempt
=
SoftwareSecurePhotoVerification
.
objects
.
get
(
user
=
self
.
user
,
window
=
window
)
...
...
lms/djangoapps/verify_student/views.py
View file @
e50ef39b
...
@@ -6,6 +6,8 @@ import json
...
@@ -6,6 +6,8 @@ import json
import
logging
import
logging
import
decimal
import
decimal
import
datetime
import
datetime
import
crum
from
track.views
import
server_track
from
pytz
import
UTC
from
pytz
import
UTC
from
edxmako.shortcuts
import
render_to_response
from
edxmako.shortcuts
import
render_to_response
...
@@ -39,6 +41,10 @@ from .exceptions import WindowExpiredException
...
@@ -39,6 +41,10 @@ from .exceptions import WindowExpiredException
log
=
logging
.
getLogger
(
__name__
)
log
=
logging
.
getLogger
(
__name__
)
EVENT_NAME_USER_ENTERED_MIDCOURSE_REVERIFY_VIEW
=
'edx.course.enrollment.reverify.started'
EVENT_NAME_USER_SUBMITTED_MIDCOURSE_REVERIFY
=
'edx.course.enrollment.reverify.submitted'
EVENT_NAME_USER_REVERIFICATION_REVIEWED_BY_SOFTWARESECURE
=
'edx.course.enrollment.reverify.reviewed'
class
VerifyView
(
View
):
class
VerifyView
(
View
):
@method_decorator
(
login_required
)
@method_decorator
(
login_required
)
...
@@ -251,6 +257,13 @@ def results_callback(request):
...
@@ -251,6 +257,13 @@ def results_callback(request):
"Result {} not understood. Known results: PASS, FAIL, SYSTEM FAIL"
.
format
(
result
)
"Result {} not understood. Known results: PASS, FAIL, SYSTEM FAIL"
.
format
(
result
)
)
)
# If this is a reverification, log an event
if
attempt
.
window
:
course_id
=
window
.
course_id
course
=
course_from_id
(
course_id
)
course_enrollment
=
CourseEnrollment
.
get_or_create_enrollment
(
attempt
.
user
,
course_id
)
course_enrollment
.
emit_event
(
EVENT_NAME_USER_REVERIFICATION_REVIEWED_BY_SOFTWARESECURE
)
return
HttpResponse
(
"OK!"
)
return
HttpResponse
(
"OK!"
)
...
@@ -345,6 +358,9 @@ class MidCourseReverifyView(View):
...
@@ -345,6 +358,9 @@ class MidCourseReverifyView(View):
display this view
display this view
"""
"""
course
=
course_from_id
(
course_id
)
course
=
course_from_id
(
course_id
)
course_enrollment
=
CourseEnrollment
.
get_or_create_enrollment
(
request
.
user
,
course_id
)
course_enrollment
.
update_enrollment
(
mode
=
"verified"
)
course_enrollment
.
emit_event
(
EVENT_NAME_USER_ENTERED_MIDCOURSE_REVERIFY_VIEW
)
context
=
{
context
=
{
"user_full_name"
:
request
.
user
.
profile
.
name
,
"user_full_name"
:
request
.
user
.
profile
.
name
,
"error"
:
False
,
"error"
:
False
,
...
@@ -353,8 +369,8 @@ class MidCourseReverifyView(View):
...
@@ -353,8 +369,8 @@ class MidCourseReverifyView(View):
"course_org"
:
course
.
display_org_with_default
,
"course_org"
:
course
.
display_org_with_default
,
"course_num"
:
course
.
display_number_with_default
,
"course_num"
:
course
.
display_number_with_default
,
"reverify"
:
True
,
"reverify"
:
True
,
}
}
return
render_to_response
(
"verify_student/midcourse_photo_reverification.html"
,
context
)
return
render_to_response
(
"verify_student/midcourse_photo_reverification.html"
,
context
)
@method_decorator
(
login_required
)
@method_decorator
(
login_required
)
...
@@ -376,6 +392,9 @@ class MidCourseReverifyView(View):
...
@@ -376,6 +392,9 @@ class MidCourseReverifyView(View):
attempt
.
save
()
attempt
.
save
()
attempt
.
submit
()
attempt
.
submit
()
course_enrollment
=
CourseEnrollment
.
get_or_create_enrollment
(
request
.
user
,
course_id
)
course_enrollment
.
update_enrollment
(
mode
=
"verified"
)
course_enrollment
.
emit_event
(
EVENT_NAME_USER_SUBMITTED_MIDCOURSE_REVERIFY
)
return
HttpResponseRedirect
(
reverse
(
'verify_student_midcourse_reverification_confirmation'
))
return
HttpResponseRedirect
(
reverse
(
'verify_student_midcourse_reverification_confirmation'
))
except
WindowExpiredException
:
except
WindowExpiredException
:
...
...
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