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
a204cacd
Commit
a204cacd
authored
Apr 03, 2015
by
Nimisha Asthagiri
Browse files
Options
Browse Files
Download
Plain Diff
Merge pull request #7561 from edx/mobile/PLAT-520
PLAT-520 Fix Asset store import of null values.
parents
e62e6b4c
d9d4a007
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
23 additions
and
10 deletions
+23
-10
cms/djangoapps/contentstore/views/tests/test_videos.py
+5
-5
cms/djangoapps/contentstore/views/videos.py
+3
-2
common/lib/xmodule/xmodule/assetstore/__init__.py
+3
-3
common/lib/xmodule/xmodule/assetstore/tests/test_asset_xml.py
+12
-0
No files found.
cms/djangoapps/contentstore/views/tests/test_videos.py
View file @
a204cacd
...
...
@@ -289,12 +289,12 @@ class VideosHandlerTestCase(VideoUploadTestMixin, CourseTestCase):
headers
=
{
"Content-Type"
:
file_info
[
"content_type"
]}
)
# Ensure asset store was updated
self
.
assertIsNotNone
(
modulestore
()
.
find_asset_metadata
(
self
.
course
.
id
.
make_asset_key
(
VIDEO_ASSET_TYPE
,
video_id
)
)
# Ensure asset store was updated and the created_by field was set
asset_metadata
=
modulestore
()
.
find_asset_metadata
(
self
.
course
.
id
.
make_asset_key
(
VIDEO_ASSET_TYPE
,
video_id
)
)
self
.
assertIsNotNone
(
asset_metadata
)
self
.
assertEquals
(
asset_metadata
.
created_by
,
self
.
user
.
id
)
# Ensure VAL was updated
val_info
=
get_video_info
(
video_id
)
...
...
cms/djangoapps/contentstore/views/videos.py
View file @
a204cacd
...
...
@@ -334,8 +334,9 @@ def videos_post(course, request):
)
# persist edx_video_id as uploaded through this course
video_meta_data
=
AssetMetadata
(
course
.
id
.
make_asset_key
(
VIDEO_ASSET_TYPE
,
edx_video_id
))
modulestore
()
.
save_asset_metadata
(
video_meta_data
,
request
.
user
.
id
)
user_id
=
request
.
user
.
id
video_meta_data
=
AssetMetadata
(
course
.
id
.
make_asset_key
(
VIDEO_ASSET_TYPE
,
edx_video_id
),
created_by
=
user_id
)
modulestore
()
.
save_asset_metadata
(
video_meta_data
,
user_id
)
# persist edx_video_id in VAL
create_video
({
...
...
common/lib/xmodule/xmodule/assetstore/__init__.py
View file @
a204cacd
...
...
@@ -195,6 +195,9 @@ class AssetMetadata(object):
elif
tag
==
'locked'
:
# Boolean.
value
=
True
if
value
==
"true"
else
False
elif
value
==
'None'
:
# None.
value
=
None
elif
tag
in
(
'created_on'
,
'edited_on'
):
# ISO datetime.
value
=
dateutil
.
parser
.
parse
(
value
)
...
...
@@ -204,9 +207,6 @@ class AssetMetadata(object):
elif
tag
==
'fields'
:
# Dictionary.
value
=
json
.
loads
(
value
)
elif
value
==
'None'
:
# None.
value
=
None
setattr
(
self
,
tag
,
value
)
@contract
(
node
=
'AssetElement'
)
...
...
common/lib/xmodule/xmodule/assetstore/tests/test_asset_xml.py
View file @
a204cacd
...
...
@@ -57,6 +57,18 @@ class TestAssetXml(unittest.TestCase):
new_value
=
getattr
(
new_asset_md
,
attr
)
self
.
assertEqual
(
orig_value
,
new_value
)
def
test_export_with_None_value
(
self
):
"""
Export and import a single AssetMetadata to XML with a None created_by field, without causing an exception.
"""
asset_md
=
AssetMetadata
(
self
.
course_id
.
make_asset_key
(
'asset'
,
'none_value'
),
created_by
=
None
,
)
asset
=
etree
.
Element
(
"asset"
)
asset_md
.
to_xml
(
asset
)
asset_md
.
from_xml
(
asset
)
def
test_export_all_assets_to_xml
(
self
):
"""
Export all AssetMetadatas to XML and verify the structure and fields.
...
...
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