Commit c6760463 by Chris Dodge

adding exporting of tabs and custom_tags. Also added unit tests

parent 8720d1ac
......@@ -8,6 +8,8 @@ from django.core.urlresolvers import reverse
from path import path
from tempfile import mkdtemp
import json
from fs.osfs import OSFS
from student.models import Registration
from django.contrib.auth.models import User
......@@ -430,6 +432,28 @@ class ContentStoreTest(TestCase):
# export out to a tempdir
export_to_xml(ms, cs, location, root_dir, 'test_export')
# check for static tabs
fs = OSFS(root_dir / 'test_export')
self.assertTrue(fs.exists('tabs'))
static_tabs_query_loc = Location('i4x', location.org, location.course, 'static_tab', None)
static_tabs = ms.get_items(static_tabs_query_loc)
for static_tab in static_tabs:
fs = OSFS(root_dir / 'test_export/tabs')
self.assertTrue(fs.exists(static_tab.location.name + '.html'))
# check for custom_tags
fs = OSFS(root_dir / 'test_export')
self.assertTrue(fs.exists('custom_tags'))
custom_tags_query_loc = Location('i4x', location.org, location.course, 'custom_tag_template', None)
custom_tags = ms.get_items(custom_tags_query_loc)
for custom_tag in custom_tags:
fs = OSFS(root_dir / 'test_export/custom_tags')
self.assertTrue(fs.exists(custom_tag.location.name))
# remove old course
delete_course(ms, cs, location)
......
......@@ -17,4 +17,26 @@ def export_to_xml(modulestore, contentstore, course_location, root_dir, course_d
# export the static assets
contentstore.export_all_for_course(course_location, root_dir + '/' + course_dir + '/static/')
# export the static tabs
static_tabs_query_loc = Location('i4x', course_location.org, course_location.course, 'static_tab', None)
static_tabs = modulestore.get_items(static_tabs_query_loc)
if len(static_tabs) > 0:
tab_dir = export_fs.makeopendir('tabs')
for tab in static_tabs:
with tab_dir.open(tab.location.name + '.html', 'w') as tab_file:
tab_file.write(tab.definition['data'].encode('utf8'))
# export custom tags
custom_tags_query_loc = Location('i4x', course_location.org, course_location.course, 'custom_tag_template', None)
custom_tags = modulestore.get_items(custom_tags_query_loc)
if len(custom_tags) > 0:
tab_dir = export_fs.makeopendir('custom_tags')
for tag in custom_tags:
with tab_dir.open(tag.location.name, 'w') as tag_file:
tag_file.write(tag.definition['data'].encode('utf8'))
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment