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 ...@@ -8,6 +8,8 @@ from django.core.urlresolvers import reverse
from path import path from path import path
from tempfile import mkdtemp from tempfile import mkdtemp
import json import json
from fs.osfs import OSFS
from student.models import Registration from student.models import Registration
from django.contrib.auth.models import User from django.contrib.auth.models import User
...@@ -430,6 +432,28 @@ class ContentStoreTest(TestCase): ...@@ -430,6 +432,28 @@ class ContentStoreTest(TestCase):
# export out to a tempdir # export out to a tempdir
export_to_xml(ms, cs, location, root_dir, 'test_export') 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 # remove old course
delete_course(ms, cs, location) delete_course(ms, cs, location)
......
...@@ -17,4 +17,26 @@ def export_to_xml(modulestore, contentstore, course_location, root_dir, course_d ...@@ -17,4 +17,26 @@ def export_to_xml(modulestore, contentstore, course_location, root_dir, course_d
# export the static assets # export the static assets
contentstore.export_all_for_course(course_location, root_dir + '/' + course_dir + '/static/') 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