Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
E
edx-analytics-data-api-client
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
OpenEdx
edx-analytics-data-api-client
Commits
4d934a78
Commit
4d934a78
authored
Jan 12, 2015
by
Clinton Blackburn
Browse files
Options
Browse Files
Download
Plain Diff
Merge pull request #11 from edx/problems
Added support for course problems endpoint
parents
b12ac07b
2e2affe3
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
27 additions
and
37 deletions
+27
-37
analyticsclient/course.py
+10
-0
analyticsclient/module.py
+0
-17
analyticsclient/tests/test_course.py
+15
-2
analyticsclient/tests/test_module.py
+1
-17
setup.py
+1
-1
No files found.
analyticsclient/course.py
View file @
4d934a78
...
...
@@ -94,3 +94,13 @@ class Course(object):
path
=
'courses/{0}/recent_activity/?activity_type={1}'
.
format
(
self
.
course_id
,
activity_type
)
return
self
.
client
.
get
(
path
,
data_format
=
data_format
)
def
problems
(
self
,
data_format
=
DF
.
JSON
):
"""
Get the problems for the course.
Arguments:
data_format (str): Format in which data should be returned
"""
path
=
'courses/{0}/problems/'
.
format
(
self
.
course_id
)
return
self
.
client
.
get
(
path
,
data_format
=
data_format
)
analyticsclient/module.py
View file @
4d934a78
import
analyticsclient.constants.data_format
as
DF
from
analyticsclient.exceptions
import
InvalidRequestError
class
Module
(
object
):
...
...
@@ -29,22 +28,6 @@ class Module(object):
return
self
.
client
.
get
(
path
,
data_format
=
data_format
)
def
submission_counts
(
self
,
module_ids
,
data_format
=
DF
.
JSON
):
"""
Get submission counts data for multiple modules.
Arguments:
module_ids (list[str]): IDs of modules for which data should be returned
data_format (str): Format in which to return data (default is JSON)
"""
if
not
module_ids
:
raise
InvalidRequestError
(
'At least one module ID must be supplied.'
)
module_ids
=
','
.
join
(
module_ids
)
path
=
'problems/submission_counts/?problem_ids={}'
.
format
(
module_ids
)
return
self
.
client
.
get
(
path
,
data_format
=
data_format
)
def
grade_distribution
(
self
,
data_format
=
DF
.
JSON
):
"""
Get grade distribution data for a module.
...
...
analyticsclient/tests/test_course.py
View file @
4d934a78
import
json
import
re
import
httpretty
import
re
from
analyticsclient.constants
import
activity_type
as
at
from
analyticsclient.constants
import
data_format
from
analyticsclient.constants
import
demographic
as
demo
from
analyticsclient.exceptions
import
NotFoundError
,
InvalidRequestError
from
analyticsclient.tests
import
ClientTestCase
...
...
@@ -134,3 +134,16 @@ class CoursesTests(ClientTestCase):
httpretty
.
register_uri
(
httpretty
.
GET
,
uri
,
body
=
'not-json'
)
self
.
course
.
enrollment
(
data_format
=
data_format
.
CSV
)
self
.
assertEquals
(
httpretty
.
last_request
()
.
headers
[
'Accept'
],
'text/csv'
)
@httpretty.activate
def
test_problems
(
self
):
body
=
[
{
'module_id'
:
'i4x://a/b/c'
}
]
uri
=
self
.
get_api_url
(
'courses/{0}/problems/'
.
format
(
self
.
course_id
))
httpretty
.
register_uri
(
httpretty
.
GET
,
uri
,
body
=
json
.
dumps
(
body
))
self
.
assertEqual
(
body
,
self
.
course
.
problems
())
analyticsclient/tests/test_module.py
View file @
4d934a78
import
json
import
httpretty
from
analyticsclient.exceptions
import
InvalidRequestError
from
analyticsclient.tests
import
ClientTestCase
...
...
@@ -95,19 +95,3 @@ class ModulesTests(ClientTestCase):
uri
=
self
.
get_api_url
(
'problems/{0}/grade_distribution/'
.
format
(
self
.
module_id
))
httpretty
.
register_uri
(
httpretty
.
GET
,
uri
,
body
=
json
.
dumps
(
body
))
self
.
assertEqual
(
body
,
self
.
module
.
grade_distribution
())
@httpretty.activate
def
test_submission_counts
(
self
):
self
.
assertRaises
(
InvalidRequestError
,
self
.
module
.
submission_counts
,
None
)
body
=
[
{
'module_id'
:
self
.
module_id
,
'total'
:
100
,
'correct'
:
80
}
]
uri
=
self
.
get_api_url
(
'problems/submission_counts/'
)
httpretty
.
register_uri
(
httpretty
.
GET
,
uri
,
body
=
json
.
dumps
(
body
))
self
.
assertEqual
(
body
,
self
.
module
.
submission_counts
([
self
.
module_id
]))
setup.py
View file @
4d934a78
...
...
@@ -2,7 +2,7 @@ from distutils.core import setup
setup
(
name
=
'edx-analytics-data-api-client'
,
version
=
'0.5.
0
'
,
version
=
'0.5.
1
'
,
packages
=
[
'analyticsclient'
],
url
=
'https://github.com/edx/edx-analytics-data-api-client'
,
description
=
'Client used to access edX analytics data warehouse'
,
...
...
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