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
9b24735c
Commit
9b24735c
authored
May 06, 2016
by
Clinton Blackburn
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Credit test cleanup
Removed a lot of duplicate code! ECOM-4379
parent
51715b9e
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
33 additions
and
35 deletions
+33
-35
openedx/core/djangoapps/credit/tests/test_api.py
+16
-14
openedx/core/djangoapps/credit/tests/test_signals.py
+17
-21
No files found.
openedx/core/djangoapps/credit/tests/test_api.py
View file @
9b24735c
...
@@ -371,7 +371,15 @@ class CreditRequirementApiTests(CreditApiTestBase):
...
@@ -371,7 +371,15 @@ class CreditRequirementApiTests(CreditApiTestBase):
eligibilities
=
api
.
get_eligibilities_for_user
(
"staff"
)
eligibilities
=
api
.
get_eligibilities_for_user
(
"staff"
)
self
.
assertEqual
(
eligibilities
,
[])
self
.
assertEqual
(
eligibilities
,
[])
def
assert_grade_requirement_status
(
self
,
expected_status
,
expected_order
):
""" Assert the status and order of the grade requirement. """
req_status
=
api
.
get_credit_requirement_status
(
self
.
course_key
,
'staff'
,
namespace
=
"grade"
,
name
=
"grade"
)
self
.
assertEqual
(
req_status
[
0
][
"status"
],
expected_status
)
self
.
assertEqual
(
req_status
[
0
][
"order"
],
expected_order
)
return
req_status
def
test_set_credit_requirement_status
(
self
):
def
test_set_credit_requirement_status
(
self
):
username
=
"staff"
self
.
add_credit_course
()
self
.
add_credit_course
()
requirements
=
[
requirements
=
[
{
{
...
@@ -395,40 +403,34 @@ class CreditRequirementApiTests(CreditApiTestBase):
...
@@ -395,40 +403,34 @@ class CreditRequirementApiTests(CreditApiTestBase):
self
.
assertEqual
(
len
(
course_requirements
),
2
)
self
.
assertEqual
(
len
(
course_requirements
),
2
)
# Initially, the status should be None
# Initially, the status should be None
req_status
=
api
.
get_credit_requirement_status
(
self
.
course_key
,
"staff"
,
namespace
=
"grade"
,
name
=
"grade"
)
self
.
assert_grade_requirement_status
(
None
,
0
)
self
.
assertEqual
(
req_status
[
0
][
"status"
],
None
)
self
.
assertEqual
(
req_status
[
0
][
"order"
],
0
)
# Set the requirement to "satisfied" and check that it's actually set
# Set the requirement to "satisfied" and check that it's actually set
api
.
set_credit_requirement_status
(
"staff"
,
self
.
course_key
,
"grade"
,
"grade"
)
api
.
set_credit_requirement_status
(
username
,
self
.
course_key
,
"grade"
,
"grade"
)
req_status
=
api
.
get_credit_requirement_status
(
self
.
course_key
,
"staff"
,
namespace
=
"grade"
,
name
=
"grade"
)
self
.
assert_grade_requirement_status
(
'satisfied'
,
0
)
self
.
assertEqual
(
req_status
[
0
][
"status"
],
"satisfied"
)
self
.
assertEqual
(
req_status
[
0
][
"order"
],
0
)
# Set the requirement to "failed" and check that it's actually set
# Set the requirement to "failed" and check that it's actually set
api
.
set_credit_requirement_status
(
"staff"
,
self
.
course_key
,
"grade"
,
"grade"
,
status
=
"failed"
)
api
.
set_credit_requirement_status
(
username
,
self
.
course_key
,
"grade"
,
"grade"
,
status
=
"failed"
)
req_status
=
api
.
get_credit_requirement_status
(
self
.
course_key
,
"staff"
,
namespace
=
"grade"
,
name
=
"grade"
)
self
.
assert_grade_requirement_status
(
'failed'
,
0
)
self
.
assertEqual
(
req_status
[
0
][
"status"
],
"failed"
)
self
.
assertEqual
(
req_status
[
0
][
"order"
],
0
)
req_status
=
api
.
get_credit_requirement_status
(
self
.
course_key
,
"staff"
)
req_status
=
api
.
get_credit_requirement_status
(
self
.
course_key
,
"staff"
)
self
.
assertEqual
(
req_status
[
0
][
"status"
],
"failed"
)
self
.
assertEqual
(
req_status
[
0
][
"status"
],
"failed"
)
self
.
assertEqual
(
req_status
[
0
][
"order"
],
0
)
self
.
assertEqual
(
req_status
[
0
][
"order"
],
0
)
# make sure the 'order' on the 2nd requi
emtn
is set correctly (aka 1)
# make sure the 'order' on the 2nd requi
rement
is set correctly (aka 1)
self
.
assertEqual
(
req_status
[
1
][
"status"
],
None
)
self
.
assertEqual
(
req_status
[
1
][
"status"
],
None
)
self
.
assertEqual
(
req_status
[
1
][
"order"
],
1
)
self
.
assertEqual
(
req_status
[
1
][
"order"
],
1
)
# Set the requirement to "declined" and check that it's actually set
# Set the requirement to "declined" and check that it's actually set
api
.
set_credit_requirement_status
(
api
.
set_credit_requirement_status
(
"staff"
,
self
.
course_key
,
username
,
self
.
course_key
,
"reverification"
,
"reverification"
,
"i4x://edX/DemoX/edx-reverification-block/assessment_uuid"
,
"i4x://edX/DemoX/edx-reverification-block/assessment_uuid"
,
status
=
"declined"
status
=
"declined"
)
)
req_status
=
api
.
get_credit_requirement_status
(
req_status
=
api
.
get_credit_requirement_status
(
self
.
course_key
,
self
.
course_key
,
"staff"
,
username
,
namespace
=
"reverification"
,
namespace
=
"reverification"
,
name
=
"i4x://edX/DemoX/edx-reverification-block/assessment_uuid"
name
=
"i4x://edX/DemoX/edx-reverification-block/assessment_uuid"
)
)
...
...
openedx/core/djangoapps/credit/tests/test_signals.py
View file @
9b24735c
...
@@ -2,24 +2,23 @@
...
@@ -2,24 +2,23 @@
Tests for minimum grade requirement status
Tests for minimum grade requirement status
"""
"""
import
pytz
import
ddt
import
ddt
import
pytz
from
datetime
import
timedelta
,
datetime
from
datetime
import
timedelta
,
datetime
from
nose.plugins.attrib
import
attr
from
unittest
import
skipUnless
from
django.conf
import
settings
from
django.conf
import
settings
from
django.test.client
import
RequestFactory
from
django.test.client
import
RequestFactory
from
unittest
import
skipUnless
from
nose.plugins.attrib
import
attr
from
student.tests.factories
import
UserFactory
from
xmodule.modulestore.tests.django_utils
import
ModuleStoreTestCase
from
xmodule.modulestore.tests.factories
import
CourseFactory
from
openedx.core.djangoapps.credit.api
import
(
from
openedx.core.djangoapps.credit.api
import
(
set_credit_requirements
,
get_credit_requirement_status
set_credit_requirements
,
get_credit_requirement_status
)
)
from
openedx.core.djangoapps.credit.models
import
CreditCourse
,
CreditProvider
from
openedx.core.djangoapps.credit.models
import
CreditCourse
,
CreditProvider
from
openedx.core.djangoapps.credit.signals
import
listen_for_grade_calculation
from
openedx.core.djangoapps.credit.signals
import
listen_for_grade_calculation
from
student.tests.factories
import
UserFactory
from
xmodule.modulestore.tests.django_utils
import
ModuleStoreTestCase
from
xmodule.modulestore.tests.factories
import
CourseFactory
@attr
(
'shard_2'
)
@attr
(
'shard_2'
)
...
@@ -67,20 +66,23 @@ class TestMinGradedRequirementStatus(ModuleStoreTestCase):
...
@@ -67,20 +66,23 @@ class TestMinGradedRequirementStatus(ModuleStoreTestCase):
# Add a single credit requirement (final grade)
# Add a single credit requirement (final grade)
set_credit_requirements
(
self
.
course
.
id
,
requirements
)
set_credit_requirements
(
self
.
course
.
id
,
requirements
)
def
assert_requirement_status
(
self
,
grade
,
due_date
,
expected_status
):
""" Verify the user's credit requirement status is as expected after simulating a grading calculation. """
listen_for_grade_calculation
(
None
,
self
.
user
.
username
,
{
'percent'
:
grade
},
self
.
course
.
id
,
due_date
)
req_status
=
get_credit_requirement_status
(
self
.
course
.
id
,
self
.
request
.
user
.
username
,
'grade'
,
'grade'
)
self
.
assertEqual
(
req_status
[
0
][
'status'
],
expected_status
)
@ddt.data
(
@ddt.data
(
(
0.6
,
VALID_DUE_DATE
),
(
0.6
,
VALID_DUE_DATE
),
(
0.52
,
VALID_DUE_DATE
),
(
0.52
,
VALID_DUE_DATE
),
(
0.70
,
EXPIRED_DUE_DATE
),
(
0.70
,
EXPIRED_DUE_DATE
),
)
)
@ddt.unpack
@ddt.unpack
def
test_min_grade_requirement_with_valid_grade
(
self
,
grade
_achieved
,
due_date
):
def
test_min_grade_requirement_with_valid_grade
(
self
,
grade
,
due_date
):
"""Test with valid grades. Deadline date does not effect in case
"""Test with valid grades. Deadline date does not effect in case
of valid grade.
of valid grade.
"""
"""
self
.
assert_requirement_status
(
grade
,
due_date
,
'satisfied'
)
listen_for_grade_calculation
(
None
,
self
.
user
.
username
,
{
'percent'
:
grade_achieved
},
self
.
course
.
id
,
due_date
)
req_status
=
get_credit_requirement_status
(
self
.
course
.
id
,
self
.
request
.
user
.
username
,
'grade'
,
'grade'
)
self
.
assertEqual
(
req_status
[
0
][
"status"
],
'satisfied'
)
@ddt.data
(
@ddt.data
(
(
0.50
,
None
),
(
0.50
,
None
),
...
@@ -88,16 +90,10 @@ class TestMinGradedRequirementStatus(ModuleStoreTestCase):
...
@@ -88,16 +90,10 @@ class TestMinGradedRequirementStatus(ModuleStoreTestCase):
(
0.40
,
VALID_DUE_DATE
),
(
0.40
,
VALID_DUE_DATE
),
)
)
@ddt.unpack
@ddt.unpack
def
test_min_grade_requirement_failed_grade_valid_deadline
(
self
,
grade
_achieved
,
due_date
):
def
test_min_grade_requirement_failed_grade_valid_deadline
(
self
,
grade
,
due_date
):
"""Test with failed grades and deadline is still open or not defined."""
"""Test with failed grades and deadline is still open or not defined."""
self
.
assert_requirement_status
(
grade
,
due_date
,
None
)
listen_for_grade_calculation
(
None
,
self
.
user
.
username
,
{
'percent'
:
grade_achieved
},
self
.
course
.
id
,
due_date
)
req_status
=
get_credit_requirement_status
(
self
.
course
.
id
,
self
.
request
.
user
.
username
,
'grade'
,
'grade'
)
self
.
assertEqual
(
req_status
[
0
][
"status"
],
None
)
def
test_min_grade_requirement_failed_grade_expired_deadline
(
self
):
def
test_min_grade_requirement_failed_grade_expired_deadline
(
self
):
"""Test with failed grades and deadline expire"""
"""Test with failed grades and deadline expire"""
self
.
assert_requirement_status
(
0.22
,
self
.
EXPIRED_DUE_DATE
,
'failed'
)
listen_for_grade_calculation
(
None
,
self
.
user
.
username
,
{
'percent'
:
0.22
},
self
.
course
.
id
,
self
.
EXPIRED_DUE_DATE
)
req_status
=
get_credit_requirement_status
(
self
.
course
.
id
,
self
.
request
.
user
.
username
,
'grade'
,
'grade'
)
self
.
assertEqual
(
req_status
[
0
][
"status"
],
'failed'
)
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