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
1565cd5b
Commit
1565cd5b
authored
Jan 18, 2013
by
Deena Wang
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Test cases for lms/djangoapps/courseware/module_render in test_module_render
parent
3ff31892
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
164 additions
and
0 deletions
+164
-0
lms/djangoapps/courseware/tests/test_module_render.py
+164
-0
No files found.
lms/djangoapps/courseware/tests/test_module_render.py
0 → 100644
View file @
1565cd5b
from
unittest
import
TestCase
import
logging
from
mock
import
MagicMock
,
patch
import
json
import
factory
from
django.http
import
Http404
,
HttpResponse
,
HttpRequest
from
django.conf
import
settings
from
django.contrib.auth.models
import
User
from
django.test.client
import
Client
from
django.conf
import
settings
from
courseware.models
import
StudentModule
from
xmodule.modulestore.exceptions
import
ItemNotFoundError
from
xmodule.modulestore
import
Location
import
courseware.module_render
as
render
class
Stub
:
def
__init__
(
self
):
pass
class
ModuleRenderTestCase
(
TestCase
):
def
setUp
(
self
):
self
.
location
=
[
'tag'
,
'org'
,
'course'
,
'category'
,
'name'
]
def
test_toc_for_course
(
self
):
mock_course
=
MagicMock
()
mock_course
.
id
=
'dummy'
mock_course
.
location
=
Location
(
self
.
location
)
mock_course
.
get_children
.
return_value
=
[]
mock_user
=
MagicMock
()
mock_user
.
is_authenticated
.
return_value
=
False
self
.
assertIsNone
(
render
.
toc_for_course
(
mock_user
,
'dummy'
,
mock_course
,
'dummy'
,
'dummy'
))
def
test_get_module
(
self
):
self
.
assertIsNone
(
render
.
get_module
(
'dummyuser'
,
None
,
\
'invalid location'
,
None
,
None
))
def
test__get_module
(
self
):
mock_user
=
MagicMock
()
mock_user
.
is_authenticated
.
return_value
=
True
location
=
[
'tag'
,
'org'
,
'course'
,
'category'
,
'name'
]
#render._get_module(mock_user,
def
test_get_instance_module
(
self
):
mock_user
=
MagicMock
()
mock_user
.
is_authenticated
.
return_value
=
False
self
.
assertIsNone
(
render
.
get_instance_module
(
'dummy'
,
mock_user
,
'dummy'
,
'dummy'
))
mock_user_2
=
MagicMock
()
mock_user_2
.
is_authenticated
.
return_value
=
True
mock_module
=
MagicMock
()
mock_module
.
descriptor
.
stores_state
=
False
self
.
assertIsNone
(
render
.
get_instance_module
(
'dummy'
,
mock_user_2
,
mock_module
,
'dummy'
))
def
test_get_shared_instance_module
(
self
):
## class MockUserFactory(factory.Factory):
## FACTORY_FOR = MagicMock
## is_authenticated.return_value =
mock_user
=
MagicMock
(
User
)
mock_user
.
is_authenticated
.
return_value
=
False
self
.
assertIsNone
(
render
.
get_shared_instance_module
(
'dummy'
,
mock_user
,
'dummy'
,
'dummy'
))
mock_user_2
=
MagicMock
(
User
)
mock_user_2
.
is_authenticated
.
return_value
=
True
mock_module
=
MagicMock
()
mock_module
.
shared_state_key
=
'key'
self
.
assertIsInstance
(
render
.
get_shared_instance_module
(
'dummy'
,
mock_user
,
mock_module
,
'dummy'
),
StudentModule
)
def
test_xqueue_callback
(
self
):
mock_request
=
MagicMock
()
mock_request
.
POST
.
copy
.
return_value
=
{}
# 339
self
.
assertRaises
(
Http404
,
render
.
xqueue_callback
,
mock_request
,
'dummy'
,
'dummy'
,
'dummy'
,
'dummy'
)
mock_request_2
=
MagicMock
()
xpackage
=
{
'xqueue_header'
:
json
.
dumps
({}),
'xqueue_body'
:
'Message from grader'
}
mock_request_2
.
POST
.
copy
.
return_value
=
xpackage
# 342
self
.
assertRaises
(
Http404
,
render
.
xqueue_callback
,
mock_request_2
,
'dummy'
,
'dummy'
,
'dummy'
,
'dummy'
)
mock_request_3
=
MagicMock
()
xpackage_2
=
{
'xqueue_header'
:
json
.
dumps
({
'lms_key'
:
'secretkey'
}),
'xqueue_body'
:
'Message from grader'
}
mock_request_3
.
POST
.
copy
.
return_value
=
xpackage_2
## self.assertRaises(Http404, render.xqueue_callback, mock_request_3,
## 'dummy', 0, 'dummy', 'dummy')
# continue later
def
test_modx_dispatch
(
self
):
self
.
assertRaises
(
Http404
,
render
.
modx_dispatch
,
'dummy'
,
'dummy'
,
'invalid Location'
,
'dummy'
)
mock_request
=
MagicMock
()
mock_request
.
FILES
.
keys
.
return_value
=
[
'file_id'
]
mock_request
.
FILES
.
getlist
.
return_value
=
[
'file'
]
*
(
settings
.
MAX_FILEUPLOADS_PER_INPUT
+
1
)
self
.
assertEquals
(
render
.
modx_dispatch
(
mock_request
,
'dummy'
,
self
.
location
,
'dummy'
)
.
content
,
json
.
dumps
({
'success'
:
'Submission aborted! Maximum
%
d files may be submitted at once'
%
\
settings
.
MAX_FILEUPLOADS_PER_INPUT
}))
mock_request_2
=
MagicMock
()
mock_request_2
.
FILES
.
keys
.
return_value
=
[
'file_id'
]
inputfile
=
Stub
()
inputfile
.
size
=
1
+
settings
.
STUDENT_FILEUPLOAD_MAX_SIZE
inputfile
.
name
=
'name'
filelist
=
[
inputfile
]
mock_request_2
.
FILES
.
getlist
.
return_value
=
filelist
self
.
assertEquals
(
render
.
modx_dispatch
(
mock_request_2
,
'dummy'
,
self
.
location
,
'dummy'
)
.
content
,
json
.
dumps
({
'success'
:
'Submission aborted! Your file "
%
s" is too large (max size:
%
d MB)'
%
\
(
inputfile
.
name
,
settings
.
STUDENT_FILEUPLOAD_MAX_SIZE
/
(
1000
**
2
))}))
mock_request_3
=
MagicMock
()
mock_request_3
.
POST
.
copy
.
return_value
=
{}
inputfile_2
=
Stub
()
inputfile_2
.
size
=
1
inputfile_2
.
name
=
'name'
self
.
assertRaises
(
ItemNotFoundError
,
render
.
modx_dispatch
,
mock_request_3
,
'dummy'
,
self
.
location
,
'toy'
)
# Deadend
def
test_preview_chemcalc
(
self
):
mock_request
=
MagicMock
()
mock_request
.
method
=
'notGET'
self
.
assertRaises
(
Http404
,
render
.
preview_chemcalc
,
mock_request
)
mock_request_2
=
MagicMock
()
mock_request_2
.
method
=
'GET'
mock_request_2
.
GET
.
get
.
return_value
=
None
self
.
assertEquals
(
render
.
preview_chemcalc
(
mock_request_2
)
.
content
,
json
.
dumps
({
'preview'
:
''
,
'error'
:
'No formula specified.'
}))
mock_request_3
=
MagicMock
()
mock_request_3
.
method
=
'GET'
# Test fails because chemcalc.render_to_html always parses strings?
mock_request_3
.
GET
.
get
.
return_value
=
unicode
(
'
\x12
400'
,
errors
=
"strict"
)
## self.assertEquals(render.preview_chemcalc(mock_request_3).content,
## json.dumps({'preview':'',
## 'error':"Couldn't parse formula: formula"}))
##
mock_request_3
=
MagicMock
()
mock_request_3
.
method
=
'GET'
mock_request_3
.
GET
.
get
.
return_value
=
Stub
()
self
.
assertEquals
(
render
.
preview_chemcalc
(
mock_request_3
)
.
content
,
json
.
dumps
({
'preview'
:
''
,
'error'
:
"Error while rendering preview"
}))
def
test_get_score_bucket
(
self
):
self
.
assertEquals
(
render
.
get_score_bucket
(
0
,
10
),
'incorrect'
)
self
.
assertEquals
(
render
.
get_score_bucket
(
1
,
10
),
'partial'
)
self
.
assertEquals
(
render
.
get_score_bucket
(
10
,
10
),
'correct'
)
# get_score_bucket calls error cases 'incorrect'
self
.
assertEquals
(
render
.
get_score_bucket
(
11
,
10
),
'incorrect'
)
self
.
assertEquals
(
render
.
get_score_bucket
(
-
1
,
10
),
'incorrect'
)
class
MagicMockFactory
(
factory
.
Factory
):
FACTORY_FOR
=
MagicMock
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